预计完成时间:3 分钟
Gazebo Sim 提供了 ros_gz_bridge 功能包,用于把 ROS2 与 Gazebo Sim 无缝连接起来。ros_gz_bridge 提供了一套网络通信机制,用于在 ROS2 和 Ignition Transport 之间交换消息。这使得 ROS2 与 Gazebo Sim 之间可以建立通信,并在两个消息系统之间双向传递数据和指令。
需要注意的是,这个桥接并不支持所有消息类型,目前只支持其中一部分。请查看这个链接,确认你的消息类型是否受支持。
根据通信需求不同,这个桥接既可以配置为双向,也可以配置为单向。
要启动桥接,请使用下面这条通用命令:
ros2 run ros_gz_bridge parameter_bridge /TOPIC_NAME@ROS_MSG_TYPE@IGN_MSG_TYPE
ros2 run ros_gz_bridge parameter_bridge 这条命令的作用,就是运行 ros_gz_bridge 功能包中的 parameter_bridge 程序。随后,你需要指定用于传输消息的话题 /TOPIC_NAME。第一个 @ 符号用于分隔话题名和消息类型;第一个 @ 后面是 ROS 消息类型,第二个 @ 后面是 Ignition 消息类型。
ROS 消息类型后面所接的符号,表示该话题桥接的方向。
[ 表示从 Ignition(Gazebo Sim)到 ROS 的桥接。] 表示从 ROS 到 Ignition(Gazebo Sim)的桥接。@ 表示双向桥接,也就是 ROS <---> IGN。下面来看看桥接是如何工作的。
接下来,创建一个新的话题 /chatter,用它来测试不同方向的桥接。
**注意:**
开始之前,请关闭并终止所有 web shell 中正在运行的任务。对所有活跃的 web shell 按下 Ctrl + C 以停止当前进程。
