这是一个基于ROS2的机械臂仿真项目,包含了机械臂的URDF模型、Gazebo仿真以及RViz可视化功能。项目已经从ROS1迁移到ROS2,并针对Gazebo仿真进行了优化。
/DM_ARM
├── config/ # 配置文件
├── launch/ # ROS2启动文件
│ ├── display.launch.py # 用于RViz可视化
│ ├── gazebo.launch.py # 用于Gazebo仿真
│ └── urdf.rviz # RViz配置文件
├── meshes/ # 3D模型文件
├── textures/ # 纹理文件
├── urdf/ # URDF模型文件
│ └── DM_ARM.urdf # 机械臂的URDF描述
├── CMakeLists.txt # 编译配置文件
├── package.xml # 包信息文件
└── README.md # 本文件
- Ubuntu 22.04或更高版本
- ROS2 Humble或更高版本
- Gazebo
# 创建工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
# 将项目链接或复制到工作空间
ln -s /path/to/DM_ARM .
# 或者
cp -r /path/to/DM_ARM .# 进入工作空间
cd ~/ros2_ws
# 设置ROS2环境
source /opt/ros/humble/setup.bash
# 编译项目
colcon build --symlink-install
# 设置工作空间环境
source install/setup.bash# 设置环境
cd ~/ros2_ws
source /opt/ros/humble/setup.bash
source install/setup.bash
# 启动Gazebo仿真
ros2 launch dm_arm gazebo.launch.py# 设置环境
cd ~/ros2_ws
source /opt/ros/humble/setup.bash
source install/setup.bash
# 启动RViz可视化
ros2 launch dm_arm display.launch.py-
URDF模型调整:机械臂的质量参数已经调整为原始值的十分之一,以提高在Gazebo中的稳定性。如果仿真中出现不稳定的情况,可以考虑进一步调整质量和惯性参数。
-
Joint2旋转:Joint2的rpy参数已设置为
3.14159 -1.5708 0,使link2绕x轴(红色轴)旋转180度,以解决link2初始位置的问题。 -
RViz配置:如果在RViz中看不到模型,请确保:
- Fixed Frame设置为"base_link"
- RobotModel显示已启用
- 尝试使用joint_state_publisher_gui移动关节
- 检查mesh文件路径是否正确
-
Gazebo警告:启动Gazebo时可能会看到关于root link惯性的警告,这是正常的,不影响仿真功能。如果需要解决,可以添加一个额外的dummy link作为root link。
-
XML编码声明:URDF文件中已删除XML编码声明,以避免在Gazebo中加载模型时出现问题。如果修改URDF文件,请不要添加XML编码声明。
-
Gazebo无法启动:确保没有其他Gazebo实例在运行。可以使用以下命令关闭所有Gazebo进程:
killall -9 gzserver gzclient gazebo
-
模型加载失败:检查URDF文件中的路径是否正确,特别是mesh文件的路径。
-
编译错误:确保已安装所有依赖项:
sudo apt install ros-humble-gazebo-ros ros-humble-joint-state-publisher-gui ros-humble-robot-state-publisher ros-humble-rviz2
-
控制器集成:可以添加控制器配置,实现机械臂的运动控制。
-
轨迹规划:集成MoveIt2进行轨迹规划和碰撞检测。
-
传感器集成:添加相机、力传感器等,增强仿真功能。
-
用户界面:开发专用的用户界面,简化操作。