用于非 GPS 导航的制图师 SLAM
用于非 GPS 导航的制图师 SLAM¶
本页展示了如何使用RPLidarA2激光雷达设置ROS和谷歌制图师SLAM,为ArduPilot提供本地位置估计,以便它可以在没有GPS的情况下运行。
这些指令在用APSync闪存的NVidia TX2上进行了测试,然后按照此处所述安装了ROS和MAVROS。
注意
这些页面正在进行中
安装 RPLidar 和 Pixhawk¶
RPLidar 的方向应使其 USB 电缆线指向与飞行控制器上的箭头相同的方向。
USB 电缆应插入运行 ROS 的配套计算机上的 USB 端口。
检查 RPLidar 的串行端口¶
将 RPLidarA2 插入配套计算机。如果使用安装在AUVidea J2板上的TX120,请确保激光雷达已插入较低的USB端口。
ls -l /dev/tty*激光雷达应显示为 /dev/ttyUSB0 或 /dev/ttyACM0。
如果您键入“lsusb”,则设备还应列为“Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB 灯”
允许任何人通过输入以下两个命令之一从设备读取,具体取决于上面找到的串行端口
安装更多软件包¶
将 ROS 桌面安装完整:
或者安装这些单独的软件包中的每一个(此列表尚未完成):
创建卡特金工作区¶
在您的主目录中:
安装 RPLidar 节点¶
在工作区中安装 RPLidar 节点
安装谷歌制图师¶
安装更多软件包
使用 wstool 重新初始化工作区,然后合并 cartographer_ros.rosinstall 文件并获取依赖项的代码。
安装 proto3 和 deb 依赖项
将机器人姿势发布服务器包克隆到工作区中
使用您喜欢的编辑器(如“gedit”)创建cartographer_ros启动文件
将以下内容复制粘贴到文件中
使用我们最喜欢的编辑器(如“gedit”)创建制图师.lua脚本
将以下内容复制粘贴到文件中
注意
无需手动修改上述包,而是克隆此存储库并安装依赖项。
构建包¶
启动制图师¶
将RPLidarA2插入配套计算机,然后打开四个终端,每种终端类型:
然后在 1 号航站楼:
在 2 号航站楼:
在 3 号航站楼:
在 4 号航站楼:
按照与 ROS 连接页面上的说明启动 mavros,其中涉及运行如下命令:
配置 ArduPilot¶
使用地面站(即任务规划器)连接到飞行控制器,并检查是否设置了如下所示的参数:
AHRS_EKF_TYPE = 3 使用 EKF3
EK2_ENABLE = 0 禁用 EKF2
EK3_ENABLE = 1 以启用 EKF3
EK3_SRC1_POSXY = 6 将位置水平源设置为外部导航
EK3_SRC1_POSZ = 1 将位置垂直源设置为 Baro
EK3_SRC1_VELXY = 6 将速度水平源设置为外部导航
EK3_SRC1_VELZ = 6 将垂直速度源设置为外部导航
EK3_SRC1_YAW = 6 将偏航源设置为外部导航
GPS_TYPE = 0 禁用 GPS
VISO_TYPE = 1 启用视觉里程计
ARMING_CHECK = 388598(可选,禁用 GPS 检查)
更改上述任何值后,重新启动飞行控制器。
如果一切正常,视觉位置估计应该开始从ROS流入ArduPilot。这可以通过使用任务规划器(或类似工具)连接到飞行控制器并检查飞行数据屏幕的消息选项卡(左下角)来确认来自 EKF 的消息,如下所示:
使用任务规划器(或类似工具)转到“飞行数据”屏幕,右键单击地图,然后选择“在此处设置主页”>>“设置EKF原点”。车辆应立即出现在您单击的地图上。
测试¶
要确认ROS端工作正常,请键入以下命令,并显示制图师的位置估计的实时更新
Mission Planner的MAVLink检查器(按Ctrl-F,然后按“MAVLink检查器”按钮)可用于检查VISION_POSITION_ESTIMATE消息是否成功发送到飞行控制器
视频¶
注意
我们热衷于改进ArduPilot对ROS的支持,因此如果您发现问题(例如似乎不支持的命令),请在ArduPilot问题列表中报告它们,标题包含“ROS”,我们将尝试尽快解决这些问题。
Last updated


