MuJoCo仿真中的两轮平衡小车项目【问题集合】
今天在GITHUB上发现一个开源项目:Self balancing robot simulation in MuJoCo
在复现时遇到了一些问题,特此记录!
首先是git项目:
git clone https://github.com/lachlanhurst/balance-robot-mujoco-sim.git
cd balance-robot-mujoco-sim
运行:
python src/simulation/simulate_robot.py
遇到报错:
Traceback (most recent call last):
File "src/simulation/simulate_robot.py", line 6, in <module>
from PySide6.QtWidgets import (
ModuleNotFoundError: No module named 'PySide6'
解决方案:
pip install PySide6
再次运行,遇到如下报错:
这个错误表明你的系统缺少 xcb-cursor0
或 libxcb-cursor0
库,导致 Qt 无法加载 xcb
平台插件。xcb
是 Qt 在 Linux 系统上用于图形显示的默认插件,缺少相关依赖会导致程序无法启动。
解决方案:安装 xcb-cursor0
或 libxcb-cursor0
sudo apt update
sudo apt install libxcb-cursor0
再次运行,遇到报错:
Traceback (most recent call last):
File "src/simulation/simulate_robot.py", line 274, in <module>
w = Window()
File "src/simulation/simulate_robot.py", line 166, in __init__
self.model = mujoco.MjModel.from_xml_path(str(pathlib.Path(__file__).parent.joinpath('scene.xml')))
ValueError: XML Error: Schema violation: unrecognized attribute: 'actuatorfrcrange'
Element 'joint', line 0
这个错误表明你的 MuJoCo XML 文件中存在模式(schema)违规问题。具体来说,错误是由于在 <joint>
元素中使用了不被识别的属性 'actuatorfrcrange'
。MuJoCo 的 XML 模式中并没有定义 'actuatorfrcrange'
这个属性,因此会抛出错误。
解决方案:'actuatorfrcrange'
是误写的属性,可以将其修正为合法的属性:‘range’
并在修改range参数这行的最后添加:limited="true"
最后还会遇到python包的导入问题:
添加:
import numpy as np
import math
如下图所示:
最后,再次运行:
python src/simulation/simulate_robot.py
发现如下界面出现,则成功复现:
可以开始在mujoco仿真环境中玩耍平衡小车了!!!
参考:
https://github.com/lachlanhurst/balance-robot-mujoco-sim