- 本教程来自:Nav2中文网
- Nav2交流社区:https://fishros.org.cn/forum
- ROS2/Nav2千人交流群:(QQ)139707339
- 更多精彩教程请关注微信公众号:鱼香ROS
- 欢迎添加机器人小伊微信,解锁机器人学习特殊服务
- 概述
- 必要条件
- 教程指南
本文件阐述了如何使用Nav2与SLAM。下面的步骤向ROS 2用户展示了如何生成占据栅格图并使用Nav2来移动他们的机器人。本教程适用于仿真机器人和物理机器人,但在此将在物理机器人上完成。 [校准@混沌无形]
前完成本教程,如果你刚接触ROS Navigation2,极力推荐完成 入门 。 [校准@混沌无形]
在本教程中,我们将使用SLAM工具箱。更多信息可以在 ROSCon talk for SLAM Toolbox 中找到 [待校准@1344]
要求您必须安装Navigation2、Turtlebot3和SLAM工具箱。如果你没有安装它们,请遵循 入门 。 [待校准@1345]
SLAM工具箱可以通过以下方式安装: [待校准@1346]
sudo apt install ros--slam-toolbox
[待校准@1347]
或通过以下方式从工作区中的源编译: [校准@混沌无形]
git clone -b -devel git@github.com:stevemacenski/slam_toolbox.git
[校准@混沌无形]
对于本教程,我们将使用turtlebot3。如果你有其他机器人,请用你的机器人专用接口替换。通常,这包括URDF的机器人状态发布者,仿真或物理机器人接口、控制器和安全节点等。 [校准@混沌无形]
在本教程中,每当您打开新终端时,请先运行以下命令。 [待校准@1267]
source /opt/ros//setup.bash
[待校准@1268]export TURTLEBOT3_MODEL=waffle
[待校准@1269]
启动机器人界面和机器人状态发布者, [校准@混沌无形]
ros2 launch turtlebot3_bringup robot.launch.py
[待校准@1353]
在没有nav2_amcl和nav2_map_server的情况下启动导航。假设SLAM节点将发布到/map话题并提供map->odom转换。 [校准@混沌无形]
ros2 launch nav2_bringup navigation_launch.py
[待校准@1356]
调出你选择的SLAM实现。确保提供map->odom变换和/map话题。运行Rviz添加要可视化的话题,如/map, /tf, /laserscan等。本教程,我们将使用 SLAM Toolbox 。 [校准@混沌无形]
ros2 launch slam_toolbox online_async_launch.py
[待校准@1359]
通过RViz或ROS 2命令行界面请求目标来移动机器人,即: [校准@混沌无形]
ros2 topic pub /goal_pose geometry_msgs/PoseStamped "{header: {stamp: {sec: 0}, frame_id: 'map'}, pose: {position: {x: 0.2, y: 0.0, z: 0.0}, orientation: {w: 1.0}}}"
你应该看到地图现场更新!保存此地图文件: [校准@混沌无形]
ros2 run nav2_map_server map_saver_cli -f ~/map
[待校准@1363]
如果你只想在运行SLAM在turtlebot3开始沙箱世界,我们也提供简易方式使SLAM作为启动配置。而不是单独启动接口,导航,SLAM,你可以继续使用 tb3_simulation_launch.py
带 slam
配置设置为true。我们提供上述说明假定您想运行SLAM自己机器人会分离仿真/机器人接口和导航启动文件组合 tb3_simulation_launch.py
而言容易测试。 [校准@小鱼]
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=True
- 本文主要校准贡献:混沌无形
- 本文遵循知识共享协议,禁止未授权商用转载