安装
依赖项1
2
3
4
5
6
7
8
9
10sudo apt install -y ros-jazzy-tf2*
rm ~/.config/ros.org/rqt_gui.ini
# 重启rqt,然后再rqt中plugin->visualization中可以看到到 tf tree
sudo apt-get install gazebo-ros-pkgs
sudo apt install -y ros-jazzy-navigation2
sudo apt install -y ros-jazzy-nav2-bringups
sudo apt install -y ros-jazzy-turtlebot3*
sudo apt install -y ros-jazzy-test-msgs ros-jazzy-geographic-msgs
下载jazzy分支的Navigation2
,一般能正常编译。
在Nav2存储库的根目录中运行doxygen
。它将生成一个包含文档的/doc/*
目录。文档的入口点在浏览器中是index.html。
注意 nav_msgs
的安装路径比较特殊: /opt/ros/jazzy/include/nav_msgs/nav_msgs
,不要去修改
运行 Nav2 框架
使用 turtlebot3: ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
不需要设置 export GZ_SIM_RESOURCE_PATH
- 手动控制:
ros2 run turtlebot3_teleop teleop_keyboard
- 建图程序:
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True
- 保存地图:
ros2 run nav2_map_server map_saver_cli -f test
- 导航程序:
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=maps/test.yaml
节点和话题
1 | /amcl |
速度输出是 /cmd_vel_smoothed
- 发布目标
1 | ros2 action send_goal /action_a2b_move plan_ctrl_msgs/action/ActionA2BMove '{start_pose: {header: {stamp: {sec: 0, nanosec: 0}, frame_id: "map"}, pose: {position: {x: 0, y: 0, z: 0}, orientation: {x: 0.0, y: 0.0, z: 0.0, w: 1.0}}}, goal_pose: {header: {stamp: {sec: 0, nanosec: 0}, frame_id: "map"}, pose: {position: {x: 1, y: 1, z: 0}, orientation: {x: 0.0, y: 0.0, z: 0.0, w: 1.0}}}, map_path: "/home/zzp/j36_project/map.yaml" }' |
问题
- 因为显卡的驱动问题,有时加载不出机器人的模型