警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
设置机器人模拟(点火凉亭)
目标 使用 Ignition Gazebo 和 ROS 2 启动模拟
辅导水平: 高级
时间 20 分钟
先决条件
首先要安装 ROS 2 和 Ignition Gazebo。您有两种选择:
从 deb 软件包安装要查看哪些版本可从 deb 软件包中安装,请查看以下内容 桌.
根据资料来源进行编译:
任务
1 启动模拟
在本演示中,您将在 Ignition Gazebo 中模拟一个简单的差分驱动机器人。您将使用 Ignition Gazebo 示例中定义的一个名为 visualize_lidar.sdf.要运行此示例,应在终端中执行以下命令:
ign gazebo -v 4 -r visualize_lidar.sdf

模拟运行时,您可以使用 点燃
命令行工具:
ign topic -l
/时钟
/gazebo/resource_paths
/gui/camera/pose
/gui/record_video/stats
/model/vehicle_blue/odometry
/model/vehicle_blue/tf
/stats
/world/diff_drive/clock
/world/diff_drive/dynamic_pose/info
/world/diff_drive/pose/info
/world/diff_drive/scene/deletion
/world/diff_drive/scene/info
/world/diff_drive/state
/world/diff_drive/stats
由于您尚未启动 ROS 2 节点,因此来自 玫瑰2 主题 清单
应该没有任何机器人主题:
ros2 主题列表
/parameter_events
/rosout
2 配置 ROS 2
要将我们的模拟与 ROS 2 进行通信,需要使用一个名为 玫瑰桥
.该软件包提供了一个网络桥接器,可以在 ROS 2 和 Ignition Transport 之间交换信息。输入
sudo apt-get install ros-galactic-ros-ign-bridge
现在你已经准备好启动从 ROS 到 Ignition 的桥接器了。特别是要为以下主题创建一个桥接器 /model/vehicle_blue/cmd_vel
:
source /opt/ros/galactic/setup.bash
ros2 run ros_ign_bridge parameter_bridge /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]ignition.msgs.Twist
有关 玫瑰桥
请查看 阅读说明 .
桥接器运行后,机器人就能按照您的电机指令进行操作。有两个选项:
使用
玫瑰2 主题 酒吧
ros2 topic pub /model/vehicle_blue/cmd_vel geometry_msgs/Twist "linear: { x: 0.1 }";
扭转键盘
软件包。该节点从键盘上获取按键信息,并将其发布为 Twist 消息。您可以键入以下内容进行安装:
sudo apt-get install ros-galactic-teleop-twist-keyboard
默认主题
扭转键盘
正在发布的 Twist 消息是/cmd_vel
但您可以重新映射该主题,以使用桥接中使用的主题:source /opt/ros/galactic/setup.bash ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/model/vehicle_blue/cmd_vel 该节点从键盘上获取并发布按键信息 作为 Twist 信息。使用美式键盘布局时效果最佳。 --------------------------- 四处走动 u i o j k l m , . 要使用全局模式(扫射),请按住 shift 键: --------------------------- U I O J K L M < >; t:向上(+z) b : 向下 (-z) 其他:停止 q/z:最大速度增加/减少 10% w/x:仅将线性速度提高/降低 10 e/c:只增加/减少 10%的角速度 CTRL-C 退出 目前:速度 0.5 转向 1.0
3 在 ROS 中可视化激光雷达数据 2
差分驱动机器人有一个激光雷达。要将 Ignition 生成的数据发送到 ROS 2,需要启动另一个网桥。在这种情况下,激光雷达的数据将在点火传输主题中提供 /lidar2
,您将在桥接器中对其进行重新映射。该主题将在主题 /激光雷达扫描
:
source /opt/ros/galactic/setup.bash
ros2 run ros_ign_bridge parameter_bridge /lidar2@sensor_msgs/msg/LaserScan[ignition.msgs.LaserScan --ros-args -r /lidar2:=/laser_scan
要在 ROS 2 中可视化激光雷达的数据,可以使用 Rviz2:
source /opt/ros/galactic/setup.bash
rviz2
然后,您需要配置 固定的 画框
:

然后点击 "添加 "按钮,添加一个可视化激光雷达的显示屏:

现在,您应该可以在 Rviz2 中看到激光雷达的数据了:

摘要
在本教程中,您使用 Ignition Gazebo 启动了机器人仿真,使用致动器和传感器启动了桥梁,可视化了传感器的数据,并移动了差分驱动机器人。