【FishBot四驱v2】9.0.7. FishBot-Nav2导航测试
-
9.0.7. FishBot-Nav2导航测试
你好,我是小鱼。本节是FishBot上手的最后一节,真机的导航测试。
在开始之前你需要完成前面几章的内容,确保雷达以及里程计等信息的正确。如未完成请返回:https://fishros.org.cn/forum/topic/3466小鱼测试导航所用到的软硬件信息如下:
- FishBot基础版*1台
- 装有Ubuntu22.04和ROS2的Linux笔记本或台式机
一、下载与编译导航代码
打开终端,输入下面的指令。
git clone https://github.com/fishros/fishbot_nav.git --depth=1 cd fishbot_nav sudo apt install ros-$ROS_DISTRO-nav2-bringup ros-$ROS_DISTRO-joint-state-publisher ros-$ROS_DISTRO-robot-state-publisher colcon build
二、配置地图
在正式开始之前你需要将你之前建立好的地图导入进来,毕竟小鱼家的环境和你当前环境不同。
将地图文件复制到
fishbot_nav/src/fishbot_navigation2/maps
文件夹下。
接着修改launch文件fishbot_nav/src/fishbot_navigation2/launch/navigation2.launch.py
import os ... def generate_launch_description(): fishbot_navigation2_dir = get_package_share_directory('fishbot_navigation2') nav2_bringup_dir = get_package_share_directory('nav2_bringup') use_sim_time = LaunchConfiguration('use_sim_time', default='false') map_yaml_path = LaunchConfiguration('map',default=os.path.join(fishbot_navigation2_dir,'maps','你的地图名称.yaml')) ...
修改好后,再次编译
colcon build
三、启动雷达驱动与底盘驱动和里程计转TF模块
开两个终端,分别输入(后续该部分将集成至launch中则无需输入)
MicroROS
sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host registry.cn-hangzhou.aliyuncs.com/fishros/micro-ros-agent:humble udp4 --port 8888 -v4
雷达驱动,运行后选2
xhost + && sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged -v /tmp/.X11-unix:/tmp/.X11-unix --device /dev/snd -e DISPLAY=unix$DISPLAY -p 8889:8888 registry.cn-hangzhou.aliyuncs.com/fishros/fishbot_laser
bringup节点目前主要将odom话题转成tf并,并发布机器本体的tf广播
cd fishbot_nav source install/setup.bash ros2 launch fishbot_bringup bringup_quick.launch.py
五、导航测试
接着我们就可以启动导航了
source install/setup.bash ros2 launch fishbot_navigation2 navigation2.launch.py use_sim_time:=False
启动后如上图所示,地图被正常加载出来了
接着我们需要告诉nav2当前机器人在地图的哪个位置,点击Rviz2工具栏——2D Pose Estimate,然后在地图上点个目标点并选择方向
接着你将看到全局代价地图以及被地代价地图以及激光在地图上都标记出来了
此时你可以使用rviz2的工具栏中的Nav2 Goal发送一个目标点,然后观察机器人运动即可。
六、总结
本节是简单的介绍了如何使用FishBot进行导航,本节的结束意味着我们的开发教程的正式开始,接下来小鱼将从最基础的电路图讲起,带你一起从头实现机器人的导航。