用于非 GPS 导航的制图师 SLAM

用于非 GPS 导航的制图师 SLAM

本页展示了如何使用RPLidarA2激光雷达设置ROS和谷歌制图师SLAM,为ArduPilot提供本地位置估计,以便它可以在没有GPS的情况下运行。

这些指令在用APSync闪存的NVidia TX2上进行了测试,然后按照此处所述安装了ROS和MAVROS。

注意

这些页面正在进行中

安装 RPLidar 和 Pixhawk

../_images/ros-pixhawk-rplidara2-orientation.png

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

使用地面站(即任务规划器)连接到飞行控制器,并检查是否设置了如下所示的参数:

更改上述任何值后,重新启动飞行控制器。

如果一切正常,视觉位置估计应该开始从ROS流入ArduPilot。这可以通过使用任务规划器(或类似工具)连接到飞行控制器并检查飞行数据屏幕的消息选项卡(左下角)来确认来自 EKF 的消息,如下所示:

使用任务规划器(或类似工具)转到“飞行数据”屏幕,右键单击地图,然后选择“在此处设置主页”>>“设置EKF原点”。车辆应立即出现在您单击的地图上。

测试

要确认ROS端工作正常,请键入以下命令,并显示制图师的位置估计的实时更新

../_images/ros-cartographer-testing.png

Mission Planner的MAVLink检查器(按Ctrl-F,然后按“MAVLink检查器”按钮)可用于检查VISION_POSITION_ESTIMATE消息是否成功发送到飞行控制器

../_images/ros-cartographer-testing-mavlink-inspector.png

视频

注意

我们热衷于改进ArduPilot对ROS的支持,因此如果您发现问题(例如似乎不支持的命令),请在ArduPilot问题列表中报告它们,标题包含“ROS”,我们将尝试尽快解决这些问题。

Last updated