block-quote On this pagechevron-down
copy Copy chevron-down
ROS 具有 Aruco 板检测功能的 ROS 本维基页面描述了如何设置能够实现室内自主飞行的系统。 该系统基于带有Raspberry Pi 3和Raspberry Pi相机模块v2的四轴飞行器。来自相机的图像用于计算树莓派上的姿势估计,并将结果作为MAVLink消息发送到飞行控制器。 相机是向下看的,在地板上有一个Aruco板,如下所示:
arrow-up-right
系统使用 ROSarrow-up-right 来完成它必须执行的所有任务。来自Raspberry Pi相机的图像由raspicam_nodearrow-up-right 捕获,姿势估计由aruco_gridboardarrow-up-right 的修改版本计算,并使用mavrosarrow-up-right 将相关消息发送到飞行控制器。所有这些ROS软件包以及我们稍后将看到的其他软件包都在Raspberry Pi 3上运行。
ROS节点raspicam_node发布相机/图像和相机/camera_info主题,节点aruco_gridboard订阅这些主题并向mavros/vision_pose/pose主题发布camera_pose消息,mavros将ROS消息翻译成MAVLink消息并发送到飞控。
在开始使用系统之前,SET_GPS_GLOBAL_ORIGIN消息和SET_HOME_POSITION随脚本arrow-up-right 一起发送。
四轴飞行器上的飞行控制器和Raspberry Pi 3通过串行端口连接,而Rapsberry Pi 3和台式PC通过WiFi连接。台式 PC 仅用于配置和可视化目的。来自 ROS 的 rvizarrow-up-right 用于在 PC 上进行可视化。
带有ArduCopter 160.3-dev的革命飞行控制器的小型四轴飞行器(7毫米)和以下相关参数:
Copy AHRS_EKF_TYPE 2
BRD_RTC_TYPES 2
EKF2_ENABLE 1
EKF3_ENABLE 0
EK2_GPS_TYPE 3
EK2_POSNE_M_NSE 0.1
EK2_VELD_M_NSE 0.1
EK2_VELNE_M_NSE 0.1
EK2_EXTNAV_DELAY 80
GPS_TYPE 0
COMPASS_USE 0
COMPASS_USE2 0
COMPASS_USE3 0
SERIAL1_BAUD 921 (the serial port used to connect to Raspberry Pi)
SERIAL1_PROTOCOL 2
SYSID_MYGCS 1 (to accept control from mavros)
VISO_TYPE 0 在四轴飞行器上有一个树莓派3(通过串行端口连接到飞行控制器)和一个树莓派相机
在Raspberry Pi上,有带有raspicam_node,aruco_gridboard和mavros软件包的ROS Kinetic。
编辑 /boot/config.txt 以在 /dev/ttyAMA0 上具有更高的串行速度(以 921600 波特连接)
编辑 mavros 配置文件 apm_config.yaml 以使用 MAVLink 的 SYSTEM_TIME 和 TIMESYNC 消息同步飞行控制器和配套计算机 (Raspberry Pi) 时钟,如本维基arrow-up-right 所示
安装 ros-kinetic-joy-teleop (sudo apt install ros-kinetic-joy-teleop) 并为您的操纵杆进行配置 - 我们使用操纵杆而不是RC,因为使用2.4GHz RC会干扰WiFi视频流。在 mavros 中有一个罗技 F710 操纵杆的配置文件,在aruco_gridboard包中,我们为 Xbox one 操纵杆添加了配置文件。
安装 mavros (sudo apt install ros-kinetic-mavros*)
创建一个Catkin工作区(在Raspberry Pi上,这不是必需的,因为它已经在Ubiquity Robotics图像中)
在PC上,您还必须运行您选择的GCS来配置四轴飞行器,查看遥测数据,查看MAVLink检查器,设置飞行模式并发出命令。所有这些事情也可以通过ROS消息和服务来完成,但这样可能会更容易。
现在要启动系统工作所需的所有节点,请在不同的术语上给出以下命令(或使用 CTRL+SHIFT+T 的选项卡) (在本例中,192.168.10.16 是 PC,192.168.10.10 是四轴飞行器上的树莓派)
选项卡1
选项卡2
选项卡3
选项卡4
选项卡5
此时应该可以看到 /mavros/vision_pose/pose 和 /mavros/local_position/pose,表示为 3 个轴,在 rviz 上,并将四轴飞行器与相机朝向 Aruco 板,您应该看到两个姿势彼此靠近。将GCS连接到四轴飞行器(tcp 192.168.10.10 2000),应该可以在地图上看到四轴飞行器,设置飞行模式并发出命令。
如果最后一点没问题,则可以在悬停模式下完成第一次测试,将四轴飞行器武装起来,起飞并使用操纵杆悬停在 Aruco 板上,然后降落。
最后一步(目前)是使用随附的脚本之一测试全自主飞行,为此打开另一个术语或选项卡
您应该看到四轴飞行器臂,起飞,沿着广场飞行并降落,如本页开头的视频所示。