簡體   English   中英

錯誤:ValueError:緩沖區的維數錯誤(預期為 1,得到 2)

[英]Error:ValueError: Buffer has wrong number of dimensions (expected 1, got 2)

我想打電話給 function:emptymatrix=np.zeros((sim.data.nv,sim.data.nv))
mujoco 中的 mjp.cymj._mj_fullM(model, emptymatrix, sim.data.qM) 這樣我就可以將稀疏慣性矩陣 M 轉換為完整矩陣,這樣我就可以計算扭矩但是我有這個錯誤:raceback(最后一次調用) : 文件“kuka.py”,第 58 行,在 mjp.cymj._mj_fullM(sim.model,emptymatrix,sim.data.qM) 文件“.local/lib/python3.8/site-packages/mujoco_py/generated/wrappers .pxi”,第 5061 行,在 mujoco_py.cymj._mj_fullM
ValueError:緩沖區的維數錯誤(預期為 1,得到 2)
如果有人可以幫助我,我將不勝感激。

mujoco_py 的mj_fullM實現期望您的emptymatrix矩陣是長度為 nv*nv 的向量,而不是方陣。

robosuite 中看到這些行:

mass_matrix = np.ndarray(shape=(len(self.sim.data.qvel) ** 2,), dtype=np.float64, order="C")
mujoco_py.cymj._mj_fullM(self.sim.model, mass_matrix, self.sim.data.qM)
mass_matrix = np.reshape(mass_matrix, (len(self.sim.data.qvel), len(self.sim.data.qvel)))
self.mass_matrix = mass_matrix[self.qvel_index, :][:, self.qvel_index]

如果您使用新的 MuJoCo python 綁定( pip install mujoco ), mujoco.mj_fullM會像您期望的那樣采用方陣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM