Download env/kitchen/kitchen_util.py from ducido/diffusion_policy_gbc: direct link, hf CLI and curl.
- Browser
- Download file 1.85 kB
-
https://huggingface.co/ducido/diffusion_policy_gbc/resolve/main/env/kitchen/kitchen_util.py
- Command line
-
hf download hf://ducido/diffusion_policy_gbc/env/kitchen/kitchen_util.py
-
curl -L -o kitchen_util.py https://huggingface.co/ducido/diffusion_policy_gbc/resolve/main/env/kitchen/kitchen_util.py
1.85 kB
| import struct | |
| import numpy as np | |
| def parse_mjl_logs(read_filename, skipamount): | |
| with open(read_filename, mode='rb') as file: | |
| fileContent = file.read() | |
| headers = struct.unpack('iiiiiii', fileContent[:28]) | |
| nq = headers[0] | |
| nv = headers[1] | |
| nu = headers[2] | |
| nmocap = headers[3] | |
| nsensordata = headers[4] | |
| nuserdata = headers[5] | |
| name_len = headers[6] | |
| name = struct.unpack(str(name_len) + 's', fileContent[28:28+name_len])[0] | |
| rem_size = len(fileContent[28 + name_len:]) | |
| num_floats = int(rem_size/4) | |
| dat = np.asarray(struct.unpack(str(num_floats) + 'f', fileContent[28+name_len:])) | |
| recsz = 1 + nq + nv + nu + 7*nmocap + nsensordata + nuserdata | |
| if rem_size % recsz != 0: | |
| print("ERROR") | |
| else: | |
| dat = np.reshape(dat, (int(len(dat)/recsz), recsz)) | |
| dat = dat.T | |
| time = dat[0,:][::skipamount] - 0*dat[0, 0] | |
| qpos = dat[1:nq + 1, :].T[::skipamount, :] | |
| qvel = dat[nq+1:nq+nv+1,:].T[::skipamount, :] | |
| ctrl = dat[nq+nv+1:nq+nv+nu+1,:].T[::skipamount,:] | |
| mocap_pos = dat[nq+nv+nu+1:nq+nv+nu+3*nmocap+1,:].T[::skipamount, :] | |
| mocap_quat = dat[nq+nv+nu+3*nmocap+1:nq+nv+nu+7*nmocap+1,:].T[::skipamount, :] | |
| sensordata = dat[nq+nv+nu+7*nmocap+1:nq+nv+nu+7*nmocap+nsensordata+1,:].T[::skipamount,:] | |
| userdata = dat[nq+nv+nu+7*nmocap+nsensordata+1:,:].T[::skipamount,:] | |
| data = dict(nq=nq, | |
| nv=nv, | |
| nu=nu, | |
| nmocap=nmocap, | |
| nsensordata=nsensordata, | |
| name=name, | |
| time=time, | |
| qpos=qpos, | |
| qvel=qvel, | |
| ctrl=ctrl, | |
| mocap_pos=mocap_pos, | |
| mocap_quat=mocap_quat, | |
| sensordata=sensordata, | |
| userdata=userdata, | |
| logName = read_filename | |
| ) | |
| return data | |