关于gazebo多机器人仿真中gazebo_ros2_control加载命名空间冲突的问题
-
最近在尝试加载多个两轮差速机器人时遇到了一个问题,即后加载的机器人的一系列插件会使用前一个机器人的命名空间,但是两个机器人在单独启动时插件加载的命名空间又没有任何问题,在社区里看到相关帖子比较少,于是想做一个解决方法的补充
问题现象:机器人2在机器人1命名空间中加载gazebo_ros2_control以及其他插件
日志[gzserver-2] [INFO] [1744168646.462309211] [robot2.robot2_depth_camera]: Publishing camera info to [/robot2/robot2_camera_sensor/camera_info] [gzserver-2] [INFO] [1744168646.463970408] [robot2.robot2_depth_camera]: Publishing depth camera info to [/robot2/robot2_camera_sensor/depth/camera_info] [gzserver-2] [INFO] [1744168646.465389132] [robot2.robot2_depth_camera]: Publishing pointcloud to [/robot2/robot2_camera_sensor/points] [gzserver-2] [INFO] [1744168654.723570427] [robot2.robot2_gazebo_ros2_control]: Loading controller_manager [gzserver-2] [INFO] [1744168654.798027031] [robot2.robot2_gazebo_ros2_control]: Loaded gazebo_ros2_control. gzserver-2] [INFO] [1744098864.914506685] [robot1.robot2_gazebo_ros2_control]: Starting gazebo_ros2_control plugin in namespace: /robot1 [gzserver-2] [INFO] [1744098864.914661147] [robot1.robot2_gazebo_ros2_control]: Starting gazebo_ros2_control plugin in ros 2 node: robot2_gazebo_ros2_control [gzserver-2] [INFO] [1744098864.959177895] [robot1.robot2_gazebo_ros2_control]: connected to service!! robot_state_publisher [gzserver-2] [INFO] [1744098864.963382484] [robot1.robot2_gazebo_ros2_control]: Received urdf from param server, parsing...
原因:gazebo_ros2_control功能包的问题,在22年就已经有人在gazebo_ros2_control提出过这个问题且现在维护者已经修复了这个问题
https://github.com/ros-controls/gazebo_ros2_control/issues/127
解决方法:重新下载gazebo_ros2_control进行手动安装,记得根据对应版本选择对应分支
安装方法:https://blog.csdn.net/m0_60346726/article/details/132858862
项目地址:https://github.com/jlg-autonomy-team/gazebo_ros2_control感谢
santidad D.A.Y的帖子,该解决方法是在
https://fishros.org.cn/forum/topic/2777/ros2-humble下使用gazebo仿真多个机器人
上进行的补充