ROS2-humble下使用gazebo仿真多个机器人
-
@FantaTerry 您好,感谢您的提问
我和您的构件思路不同,但是我发现您的robot_state_publisher只启动了一次。我的两个机械臂均有各自的robot_state_publisher用于发布机器人状态,也使用命名空间进行区分,我不确定启动一次是否可以无冲突调用,所以我进行了区分,以下是我的部分launch代码:
left_robot_state_publisher_node = Node( package='robot_state_publisher', executable='robot_state_publisher', namespace='/left_ur_ft', output='both', parameters=[{"use_sim_time": True}, left_robot_description], ) right_robot_state_publisher_node = Node( package='robot_state_publisher', executable='robot_state_publisher', namespace='/right_ur_ft', output='both', parameters=[{"use_sim_time": True}, right_robot_description], )
希望能够帮到您
-
@1393399898 您好,我最近也在做多机器人,请问您是怎么解决的
-
@1393399898 我也是遇到,第二个机器人的gazebo_ros2_control仍然使用第一个机器人的命名空间,我试过很多办法都没法解决
-
@guoshanqi 非常抱歉这么久才回复您
我使用的方式是在github下载ros2的包重新编译安装,不使用二进制安装,例如:control,controller,control_msgs,control_toolbox,gazebo_ros2_control等一系列包,除此之外,还有ur机械臂的包和realsense相机的包。这些包在几乎每周都在更新版本,而二进制安装的版本还是非常过时。
我将这些包直接编译安装在系统下(/opt/ros/humble),没有试过放在项目中,不确定放在项目中是否会成功。因此,这就改变了系统原有的依赖,可能会造成其他项目无法正常执行,因此在这之前请慎重考虑,使用二进制重新安装即可回退。我目前没有其他更好的解决方式
希望能够帮助到您
-
@1393399898 你好有具体解决教程吗我也是这个问题控制器明明已经区分空间但节点还是会重复
-
@wind2918 在项目代码方面没有什么改动,我是重新编译了ros2下的系统功能包,在之前已经介绍过这种方式的利弊,您可也翻阅一下。
造成这个问题的主要原因是:二进制安装(apt install)的ros2系统功能包(主要为controller_manager等)重复使用,这一点目前还无法通过修改自己的项目代码解决。但是在github中这部分已经进行了更新,二进制安装中还没有被更新,所以我们需要下载源码然后编译。我为了方便使用,将编译后的文件添加到了系统文件夹下(https://blog.csdn.net/m0_60346726/article/details/132858862)。
希望能够帮助到您
-
@1393399898 可以再发一下这个教程吗,这个显示打不开了,万分感谢
-
@wind2918 这个不是完整教程,这个只是将编译文件添加到系统文件夹下。完整操作你需要参考我之前发的回答,评估自己需要重新编译的功能包。以及安装时的注意事项
-
@1393399898 非常感谢你的帮助我现在已经解决了,这个问题困扰我很久
-
-
此回复已被删除!