4.实验的全流程操作。(4.2 Nav2自主导航【控制器用的是Ardupilot开源飞控】)
首先,请仔细阅读(只是我的个人经验,可能有误),说明我的情况:我刚开始使用的ROS2版本为humble,机载计算机为树莓派5,ubuntu系统用的是24.04(树莓派5只能安装24.04),但是ubuntu24.04由于版本对应有误却不能直接二进制安装ROS2(humble),所以我源码安装编译ROS2(humble)和Navigtaion2软件包,但在我实际运行Navigation时却总是运行失
首先,请仔细阅读(只是我的个人经验,可能有误),说明我的情况:我刚开始使用的ROS2版本为humble,机载计算机为树莓派5,ubuntu系统用的是24.04(树莓派5只能安装24.04),但是ubuntu24.04由于版本对应有误却不能直接二进制安装ROS2(humble),所以我源码安装编译ROS2(humble)和Navigtaion2软件包,但在我实际运行Navigation时却总是运行失败,具体情况请看我的Gitee的这个链接的评论区里有我的一些经验(https://gitee.com/zbrover/nav2_zbrover/issues/ICHFCF);所以不得不使用可以在ubuntu24.04上二进制安装的ROS2版本(jazzy),这个Navigation2就运行成功了。
做这个实验使用的ROS小机器看这个链接:https://blog.csdn.net/weixin_56545636/article/details/154115839?sharetype=blogdetail&sharerId=154115839&sharerefer=PC&sharesource=weixin_56545636&spm=1011.2480.3001.8118
因为小机器使用ArduPilot飞控来采集传感器数据,所以有一点需要声明,由于在室内原因,只使用霍尔编码器和IMU来做定位,没有GPS,在定位坐标系上,由于使用ArduPilot的ap/pose话题(https://ardupilot.org/dev/docs/ros2-interfaces.html),ap/pose使用的坐标系为ENU坐标系,所以ROS小机器在放置初始姿态的时候,车头朝东,保证ENU-XYZ这俩坐标系的方向一致。
使用流程
启动雷达
~/sllidar_ws$ . install/setup.bash
地面站连接ArduPilot飞控并将其切换为guided 模式,还需要在地图上设置home和EKF origin here直到小车在地图上出现。
检查雷达连接树莓派的USB口的名字是否正确,雷达的frame_id是否在urdf上发布?(urdf在我的odom_zuzhuang软件包里面发布,urdf包含laser_link)
~/sllidar_ws$ ros2 launch sllidar_ros2 sllidar_s2_launch.py serial_port:=/dev/ttyUSB1 frame_id:=laser_link
启动DDS(micro_ros)通信ArduPilot飞控板和树莓派上的ROS
启动地面站
~$ mavproxy.py --master=/dev/ttyUSB2 --baudrate 460800
启动micro_ros_agent(将单片机(在这里我的是ArduPilot控制板)收集到的传感器信息转换为ROS消息),实际在我的ArduPilot固件编译的时候开启了DDS通信(待填坑。。。。。)。
关于micro_ros的理解,参考这篇文章:https://blog.csdn.net/Dr_chaser/article/details/148408492

启动micro_ros_agent
~/microros_ws$ . install/setup.bash
~/ardupilot_ws4.5.6/src/ardupilot/libraries/AP_DDS$ ros2 run micro_ros_agent micro_ros_agent serial -b 115200 -r dds_xrce_profile.xml -D /dev/ttyUSB0
在mavproxy窗口reboot重启mavproxy,激活DDS通信


ros2 topic list或者echo看一下是否已经发布DDS话题和话题内的数据数据是否一致
需要在地面站设置初始位置,ap/pose 才可以出来数据,并且 E 为 x 正,N 为 y 正。已经实验,就是这样。

启动odom_zuzhuang程序
/pi_extra_pkgs$ ros2 launch odom_zuzhuang odomzuzhuang_launch_2.py offset_x:=0.0 offset_y:=0.0
虚拟机启动rviz
这个rviz初始文件就是原来官方的一个,我只不过给他复制到我的文件夹里面了
~/ws01_topic/src/rviz2_nav2_defualt$ rviz2 -d nav2_default_view.rviz use_sim_time:=false
启动 Navigation2导航程序
~/pi_extra_pkgs$ ros2 launch zbrover_nav2 nav2_zbrover_dds.launch.py use_sim_time:=false
更多推荐





所有评论(0)