MuJoCo(Multi-Joint dynamics with Contact)是 Google DeepMind 開源的物理模擬引擎,常用於機器人控制與強化學習研究。

這篇文章記錄安裝時遇到的 MUJOCO_PATH 錯誤排解,以及用官方的 mujoco_menagerie 模型庫載入 UR5e 機械手臂,實際測試關節控制的效果。

執行安裝
pip install mujoco

但出現錯誤

          self.distribution.run_command(command)
        File "C:\Users\joker0820\AppData\Local\Temp\pip-build-env-ms9arrnm\overlay\Lib\site-packages\setuptools\dist.py", line 1107, in run_command
          super().run_command(command)
        File "C:\Users\joker0820\AppData\Local\Temp\pip-build-env-ms9arrnm\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 1019, in run_command
          cmd_obj.run()
        File "C:\Users\joker0820\AppData\Local\Temp\pip-build-env-ms9arrnm\overlay\Lib\site-packages\setuptools\_distutils\command\build.py", line 135, in run
          self.run_command(cmd_name)
        File "C:\Users\joker0820\AppData\Local\Temp\pip-build-env-ms9arrnm\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 341, in run_command
          self.distribution.run_command(command)
        File "C:\Users\joker0820\AppData\Local\Temp\pip-build-env-ms9arrnm\overlay\Lib\site-packages\setuptools\dist.py", line 1107, in run_command
          super().run_command(command)
        File "C:\Users\joker0820\AppData\Local\Temp\pip-build-env-ms9arrnm\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 1019, in run_command
          cmd_obj.run()
        File "<string>", line 154, in run
        File "<string>", line 168, in _find_mujoco
      RuntimeError: MUJOCO_PATH environment variable is not set
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for mujoco
Failed to build mujoco
error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> mujoco

那這邊強制從 PyPI 下載預編譯的版本,就不自行編譯
pip install mujoco --only-binary :all:

啓動 MuJoCo
python -m mujoco.viewer

可看到啓動畫面

25778-xyggk7h83l.png

到 repo 下載模型來測試

https://github.com/google-deepmind/mujoco_menagerie.git

進入目錄 universal_robots_ur5e 并且將 scene.xml 拖曳到 MuJoCo 編輯器内,加載后出現如下:

06059-mbd0411o0wo.png

在右側調整 elbow,則左側的模型會對應變動

90578-ctdqak9zrzk.png

而左側的 Reset 是重置回去初始狀態,而 Reload 則是會重播(某些模型會有初始播放動作)

33038-5oq9bmn55j.png

點了 Help 這邊會彈出操作選單説明

79388-4xsysbxk0ho.png

在右側可以看到

shoulder_pan_    4.27e-16
shoulder_lift_j  0.025
elbow_joint      0.00666
wrist_1_joint    -6.95e-05
wrist_2_joint    2.2e-06
wrist_3_joint    2.56e-17

代表了

shoulder_pan — 肩部左右旋轉(繞垂直軸)
shoulder_lift — 肩部抬升(大臂上下擺)
elbow — 肘關節
wrist_1/2/3 — 手腕三個旋轉軸

MuJoCo 本身只負責"物理世界",定義了物理結構,包含

  • 剛體(body)、關節(joint)、執行器(actuator)
  • 執行力矩上限、齒輪比、控制類型(位置/速度/力矩)
  • 碰撞集合體、摩擦係數、重力等參數

MuJoCo 引擎本身沒有獎勵機制、目標設定、成功/失敗等概念或目標設定

關於獎勵機制跟訓練後續會再加入額外文章進行説明

54459-a0zklc2h8z.png

無標籤

新增評論