文章目录前言第一章 ROS环境配置1.1 使用小鱼的一键安装指令安装ROS1.2 测试ROS第二章 MAVROS配置2.1 安装MAVROS2.2 配置USB权限2.3 启动MAVROS第三章 MID360网络与驱动配置3.1 设置上位机静态IP3.2 安装Livox-SDK23.3 安装livox_ros_driver23.4 修改MID360配置文件3.5 启动MID360第四章 Point-LIO配置4.1 安装Point-LIO4.2 启动Point-LIO第五章 Point-LIO位姿发送至PX45.1 设置位姿转发话题5.2 启动位姿转发节点第六章 PX4参数配置6.1 设置外部定位融合6.2 设置高度来源6.3 设置传感器安装位置6.4 设置GPS和气压计融合第七章 程序启动顺序前言px4固件型号 1.16.0飞控硬件选型Pixhawk 6cmini上位机软件Ubuntu20.04ROS1 noetic雷达Livox Mid-360s定位算法 Point-lio需要软件资源可加群下载无人机交流Q群1036883815对于基础的QGC地面站与遥控器配置请移步上一期教程第一章 ROS环境配置1.1 使用小鱼的一键安装指令安装ROS打开命令行运行鱼香ROS一键安装命令wgethttp://fishros.com/install-Ofishros.fishros随后跟随提示更换系统源并配置ROS、rosdepc即可1.2 测试ROS输入roscore第二章 MAVROS配置2.1 安装MAVROS输入sudoaptinstallros-noetic-mavros ros-noetic-mavros-extras安装GeographicLib数据sudo/opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh这一步时间可能会比较长2.2 配置USB权限输入sudousermod-aGdialout$USERreboot重启上位机后使用USB连接飞控type-c口查看设备ls/dev/ttyACM*正常情况下应该显示/dev/ttyACM02.3 启动MAVROS输入roslaunch mavros px4.launch fcu_url:/dev/ttyACM0:921600检查连接状态rostopicecho/mavros/state正常情况下应该显示connected: True第三章 MID360网络与驱动配置3.1 设置上位机静态IP打开网络设置找到连接MID360的有线网口将IPv4设置为手动IP地址[填写上位机IP一般可以填写192.168.1.50] 子网掩码255.255.255.0 网关留空 DNS留空更改完网络设置把雷达通过网口连接电脑测试连接ping[MID360的IP地址为192.168.1.1XXXX为雷达机身上SN码后两位]3.2 安装Livox-SDK2克隆我们的开源无人机控制平台gitclone https://gitee.com/edl-diana/multi.gitcdmulti编译Livox-SDK2cdmid360s_sdk/Livox_SDK2_v1.3.0/Livox_SDK2/mkdirbuildcdbuild cmake..make-jsudomakeinstall3.3 安装livox_ros_driver2输入cdmid360_ws/src/livox_ros_driver2/chmodx build.sh ./build.sh ROS13.4 修改MID360配置文件打开livox_ros_driver2/config/MID360s_config.json修改上位机IPMID360雷达IP其中雷达的IP为192.168.1.1XX后面两位数字是雷达机身SN码最后两位3.5 启动MID360输入roslaunch livox_ros_driver2 msg_MID360s.launch检查话题rostopic list rostopic hz /livox/lidar使用RViz查看点云rviz第四章 Point-LIO配置4.1 安装Point-LIO先安装一些依赖sudoaptupdatesudoaptinstall-ylibgoogle-glog-dev libgflags-dev返回工作空间编译cdpoint_wssource/opt/ros/noetic/setup.bashsource~/multi/mid360_ws/devel/setup.bash catkin_make -j$(nproc)4.2 启动Point-LIO我们的lio包默认雷达正装在飞机上即水平放置先启动MID360驱动roslaunch livox_ros_driver2 msg_MID360s.launch再启动Point-LIOroslaunch point_lio mapping_mid360.launch此时可以检查pointlio输出的里程计话题rostopicecho/aft_mapped_to_init第五章 Point-LIO位姿发送至PX45.1 设置位姿转发话题订阅Point-LIO里程计话题将位姿发布至/mavros/vision_pose/pose或者/mavros/odometry/out本文采用发布视觉坐标方法即发布 vision_pose 话题5.2 启动位姿转发节点在我们的开源工作空间 uav_ws/src/bridge/src 里预设了两种转发节点本文使用vins_to_mavros输入cdmulti/uav_ws/ catkin init catkin build bridge roslaunch bridge bridge.launch启动后终端内会实时刷新目前雷达输出位置和飞控EKF2融合后最终位置odom_to_mavros 节点是转发 /odometry/out 欢迎大家尝试使用第六章 PX4参数配置PX4参数需要使用QGC对QGC不了解的朋友可以看上一期教程6.1 设置外部定位融合进入QGC参数页面修改EKF2_EV_CTRL根据实际发送的数据选择融合水平位置垂直位置速度偏航角按照本文采用的 vins_to_mavros 节点应改为11即不融合速度6.2 设置高度来源修改EKF2_HGT_REF对于使用激光雷达的室内飞行无人机通常使用雷达定高度即改为 Vision6.3 设置传感器安装位置修改EKF2_EV_POS_X EKF2_EV_POS_Y EKF2_EV_POS_Z根据 FRD 坐标系填写MID360相对于无人机重心的位置单位是米比如雷达在飞控上10cm前5cm左4cmEKF2_EV_POS_X 0.05 EKF2_EV_POS_Y -0.04 EKF2_EV_POS_Z -0.106.4 设置GPS和气压计融合根据实际方案修改EKF2_GPS_CTRL EKF2_BARO_CTRL EKF2_MAG_TYPE SYS_HAS_GPS SYS_HAS_MAG SYS_HAS_BARO COM_ARM_WO_GPS按照室内雷达机的方案建议把以上参数全部关闭即只使用雷达进行定位所有参数修改完成后重启PX4飞控第七章 程序启动顺序依次启动MAVROS livox_ros_driver2 Point-LIO 位姿转发节点对应命令roscore roslaunch mavros px4.launch fcu_url:/dev/ttyACM0:921600 roslaunch livox_ros_driver2 msg_MID360s.launch roslaunch point_lio mapping_mid360.launch roslaunch bridge bridge.launch至此ROS、MAVROS、MID360、Point-LIO和PX4外部定位参数已经全部配置完成