最近更新时间:2025-10-13 15:30:20
MuJoCo:MuJoCo是一款通用物理引擎,旨在促进机器人技术、生物力学、图形动画、机器学习以及其他需要快速准确地模拟铰接式结构与环境交互的领域的研究和开发。MuJoCo 是一个带有 C API 的 C/C++ 库,面向研究人员和开发人员。运行时模拟模块经过优化,可最大程度地提升性能,并基于内置 XML 解析器和编译器预先分配的低级数据结构进行操作。用户使用原生 MJCF 场景描述语言定义模型。此外,还可以加载 URDF 模型文件。该库包含一个原生 GUI 的交互式可视化功能,并以 OpenGL 渲染。MuJoCo 可用于实现基于模型的计算,例如控制综合、状态估计、系统辨识、机构设计、通过逆动力学进行数据分析以及机器学习应用的并行采样。
Gazebo:Gazebo是ROS系统中最为常用的三维物理仿真平台,支持动力学引擎,可以实现高质量的图形渲染,不仅可以模拟机器人及周边环境,还可以加入摩擦力、弹性系数等物理属性。Gazebo仿真平台可以帮助验证机器人算法、优化机器人设计、测试机器人场景应用,为机器人开发提供更多可能。
MuJoCo
高精度动力学计算
轻量级与高效性
灵活的模型描述与配置
强化学习友好性
Gazebo
多机器人与复杂环境仿真
高保真传感器模拟
与 ROS(机器人操作系统)深度集成
可视化与调试工具
MuJoCo
机器人动力学与控制算法研究
强化学习(RL)训练
生物力学仿真
Gazebo
多机器人协作与群体智能
机器人感知与导航算法测试
工业机器人系统集成验证
机器人教学与培训
容器部署:
适用场景:适用于高弹性需求的业务,可以更方便的分配资源,支持即开即用。
使用步骤:需创建容器集群和资源池后新建开发任务,使用IDE和基于容器的远程访问工具启动仿真服务。
1.登录金山云,进入云服务器界面https://kec.console.ksyun.com/v2/#/kec
2.在右侧展示界面中,点击+新建,开一台GPU云服务器并关机(仅支持关机状态加入容器集群),选择存储配置时请确保GPU云服务器有足够的硬盘空间
3.跳转到容器服务,在右侧展示界面中,点击+新建集群,并配置以下信息
4.完成创建容器集群后,点击集群进入详情配置页面。在左侧导航栏点击节点并选择“+添加已有节点”
添加节点界面:
5.确保云主机镜像包含显卡驱动,GPU资源加入到集群后可能会重装系统,请重装ubuntu系统,重装后需要安装Nvidia显卡驱动:
sudo apt-get update
sudo apt install build-essential -y
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.163.01/NVIDIA-Linux-x86_64-550.163.01.run
chmod +x NVIDIA-Linux-x86_64-550.163.01.run
sudo ./NVIDIA-Linux-x86_64-550.163.01.run安装后重启宿主机,并确认驱动安装成功:
nvidia-smi6.安装重启后等待容器组件安装完成:
7.新建资源池,点击右侧+新建:
并配置以下信息:
8.分配GPU资源,用于后续具体任务。点击进入资源池队列管理,新建队列,并配置以下选项:
队列名称
队列管理员
队列成员
GPU配置
9.新建开发任务,选择仿真容器镜像(Gazebo请选择gazebo-harmonic-ros2-jazzy镜像,MuJoCo请选择mujoco3.3.4镜像),设置存储配置(可能需要),自定义服务打开4000端口并开启公网访问。宿主机需配置公网EIP,并且安全组出口需要开放IP协议。启动成功后,点击连接,通过web IDE任意方式连接到容器终端即可。
1.在终端执行/docker_config/entrypoint.sh启动kamsvnc远程桌面服务。(以Jupyter为例)
2.使用浏览器访问 https://<自定义服务公网IP>:4000 以连接远程桌面(推荐chrome),连接登录账号密码默认为root+kasmvncpasswd,登陆后即可远程使用仿真服务。
1.(选择gazebo-harmonic-ros2-jazzy镜像时)连接Gazebo仿真桌面后,打开终端输入gz sim打开Gazebo客户端。
2.点击运行官方示例,模拟机器人关节运动。
3.Gazebo镜像内置ros2 jazzy,可以尝试以下示例检测ros是否正常。
在一个终端中,运行 C++ :talker
ros2 run demo_nodes_cpp talker在第二个终端中,运行 Python :listener
ros2 run demo_nodes_py listener如果看到以下结果,listener能接受到talker发布的信息,说明ros能正常工作。
1.(选择mujoco3.3.4镜像)连接MuJoCo仿真桌面后,新建一个python脚本并添加以下内容用来加载MuJoCo自带的一个xml模型文件 humanoid.xml:
import mujoco
# 你的实际安装路径
model_path = '/root/mujoco-3.3.4/model/humanoid/humanoid.xml'
model = mujoco.MjModel.from_xml_path(model_path)
data = mujoco.MjData(model)
print(data)
# 调用计时API确保其他组件正常安装
for _ in range(1000): mujoco.mj_step(model, data)
print("Test done.")2.在终端运行示例:
python test.py
<mujoco._structs.MjData object at 0x7f4e78633370>
Test done.3.执行下面的命令运行仿真器:
/root/mujoco-3.3.4/bin/simulate /root/mujoco-3.3.4/model/humanoid/humanoid.xml4.运行后会弹出仿真器,此时需要确认以下几点是可用的:
(1)小人在没有干预的情况下逐渐躺到在地面;
(2)右侧打开 Control 面板拖动控制条,小人对应的关节是可动的;
纯净模式
