尝试dummy robot例程 [待校准@9496]
在这个例程中,我们展示了一个简单的机器人例程,它包含从发布联合状态到发布假激光数据到在RViz地图上可视化机器人模型的所有组件。 [待校准@9497]
Launch的例程 [待校准@9498]
我们假设您的ROS 2安装目录为 “~/ros2_ws”。请根据您的平台更改目录。 [待校准@9499]
为了启动例程,我们执行bringuplaunch文件的例程,我们将在下一节中详细解释。 [待校准@9500]
source ~/ros2_ws/install/setup.bash
ros2 launch dummy_robot_bringup dummy_robot_bringup.launch.py
您应该会在终端内看到一些类似以下内容的照片: [待校准@9501]
[INFO] [launch]: process[dummy_map_server-1]: started with pid [25812]
[INFO] [launch]: process[robot_state_publisher-2]: started with pid [25813]
[INFO] [launch]: process[dummy_joint_states-3]: started with pid [25814]
[INFO] [launch]: process[dummy_laser-4]: started with pid [25815]
Initialize urdf model from file: /home/mikael/work/ros2/bouncy_ws/install_debug_isolated/dummy_robot_bringup/share/dummy_robot_bringup/launch/single_rrbot.urdf
Parsing robot urdf xml string.
Link single_rrbot_link1 had 1 children
Link single_rrbot_link2 had 1 children
Link single_rrbot_link3 had 2 children
Link single_rrbot_camera_link had 0 children
Link single_rrbot_hokuyo_link had 0 children
got segment single_rrbot_camera_link
got segment single_rrbot_hokuyo_link
got segment single_rrbot_link1
got segment single_rrbot_link2
got segment single_rrbot_link3
got segment world
Adding fixed segment from world to single_rrbot_link1
Adding moving segment from single_rrbot_link1 to single_rrbot_link2
[INFO] [dummy_laser]: angle inc: 0.004363
[INFO] [dummy_laser]: scan size: 1081
[INFO] [dummy_laser]: scan time increment: 0.000028
Adding moving segment from single_rrbot_link2 to single_rrbot_link3
Adding fixed segment from single_rrbot_link3 to single_rrbot_camera_link
Adding fixed segment from single_rrbot_link3 to single_rrbot_hokuyo_link
如果你现在在下一个终端打开你的RViz,你会看到你的机器人。🎉 [待校准@9502]
$ source <ROS2_INSTALL_FOLDER>/setup.bash
$ rviz2
这开启了RViz2。假设您的dummy_robot_bringup仍然是launch,您现在可以添加TF显示插件并将全局帧配置为 world
。完成此操作后,您应该会看到类似的图片: [待校准@9503]
发生什么事了? [待校准@9504]
如果你仔细看看launch文件,我们会同时启动几个节点。 [待校准@9505]
dummy_map_server [待校准@9506]
虚拟激光 [待校准@9507]
dummy_joint_states [待校准@9508]
Robot_state_发布者 [待校准@9509]
前两个包相对简单。 dummy_map_server
不断发布带有定期更新的空地图。 dummy_laser
也会调用y; 发布虚拟的假激光扫描。 [待校准@9510]
[需手动修复的语法] dummy_joint_states
节点正在发布虚假的联合状态数据。当我们发布只有两个关节的简单RRbot时,此节点会发布这两个关节的关节状态值。 [待校准@9511]
[需手动修复的语法] robot_state_publisher
正在做真正有趣的工作。它解析给定的URDF文件,提取机器人模型并侦听传入的联合状态。有了这些信息,它发布了我们机器人的TF值,我们在RViz可视化。 [待校准@9512]
万岁! [待校准@9513]