智能赛技术实现前期综述

Author: zero

Date: 2024 - 03 - 14

参考资料

JCV-410 无人机参考使用说明书https://wiki.amovlab.com/static/pdf/JCV-410%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C.pdf

PX4 实战之旅 http://t.csdnimg.cn/U4nIy

多旋翼无人机进阶教程https://blog.csdn.net/oqqenvy12/article/details/70247988

PX4 官网 https://docs.px4.io/main/zh/config/gyroscope.html

硬件扫盲

● 结构:4旋翼X布局,410mm轴距;

  ● 飞控:Pixhawk6C开源飞控;

  ● 传感器: GPS模块;

  ● 动力组:无刷电机+1045螺旋桨;

  ● 飞行模式:手动、姿态、GPS定点;

基本无人机组成

整机图片

每台飞机搭配有如下设备,包括:

  • 人工智能无人机 Aviator 410
  • 遥控器
  • 4S航模电池及充电器
  • USB3.0读卡器
  • HDMI假负载
  • 香蕉头转XT60线
  • 无人机桨叶

此外,我们额外扩展的外设包括:

  • 键盘

  • 鼠标

  • 显示屏

核心硬件 与 通讯框架 解析

整体框架

1.机载处理器 (机载电脑 ==NUC==

机载处理器是整个无人机系统的核心,处理各种传感器信息进行定位与识别,是智能无人机的“大脑”

我们在飞机上使用的ubuntu18.04就是搭载在机载电脑上的操作系统。

NUC 是我们进行ssh联系的==“主机”==

我们自己的电脑使用nomachine通过ssh连接的主机,故称为==“从机”==

一切数据的check和指令的发送均通过nuc的终端实现

2.飞行控制器 ==飞控 FCU==

飞行控制器接收机载处理器发送来的位置,速度,加速度指令,经过控制器转化成四个螺旋桨电机的转速,控制飞机平衡姿态,完成任务,是智能无人机的“小脑”

PX4是由苏黎世联邦理工学院的计算机视觉与几何实验室的一个软硬件项目PIXHAWK演变而来,有"开源飞控之王"之称,目的在于为学术、爱好和工业团体提供一款低成本高性能的高端的自驾仪,PX4是专业的自动驾驶仪。它由来自工业界和学术界的世界级开发人员开发,并得到活跃的全球社区的支持,为各种载具提供支持。 PX4目前由Dronecode基金会进行支持和运行,遵循BSD协议,该协议允许将开源软件二次开发后用作商业用途。目前广泛应用于视觉导航、视觉避障、多机协同、目标跟踪等用途.

PX4的定位是:无人机领域的安卓

img

RC - 遥控

img

MavLink(Micro Air Vehicle Link)是一种用于小型无人载具的通信协议,于 2009 年首次发布。该协议广泛应用于地面站(Ground Control Station,GCS)与无人载具(Unmanned vehicles)之间的通信,同时也应用在载具内部子系统的内部通信中,协议以消息库的形式定义了参数传输的规则。MavLink 协议支持无人固定翼飞行器、无人旋翼飞行器、无人车辆等多种载具。

MAVLink通讯https://docs.px4.io/main/zh/middleware/mavlink.html

MAVLink是一个非常轻量化的消息协议,用于无人机之间的通信以及无人机机载设备之间的通信

PX4 使用 MAVLink 实现与 QGroundControl (或者其它地面站软件)的通讯交流,同时也将其用于整合飞控板与飞控板之外的无人机部件:伴随计算机、支持MAVLink 的摄像头等。

Mavros 包可以读取飞控反馈回来的各种数据,发送给 Ros 其他节点使用,也可以发布位置控制,速度控制,加速度控制指令

Mavlink模块负责 mavlink相关的参数设置,mavlink消息的解压和收取、mavlink消息的打包和发送。==这样使得我们如果想使用发过来的消息,直接去订阅相关的topic就行。== 由于Mavlink消息封装还是较为复杂、解包也需要一定的时间,所以对于一些需要低延时的命令可以不走Mavlink协议,==直接通过数传给飞控发送一些消息也可以,就是自己要在飞控端写接收的模块==

4. mavros 话题通讯

而 mavros 则是连接 ros 与 mavlink 之间的桥梁,是将 mavlink 协议翻译成 ros 可以读懂的 topic 的“翻译官”

自定义mavros通讯 及其他https://docs.px4.io/main/zh/ros/ros1.html

MAVROS基础知识和使用https://blog.csdn.net/caiqidong321/article/details/132013439

Mavros 包可以读取飞控反馈回来的各种数据,发送给 Ros 其他节点使用,也可以发布位置控制,速度控制,加速度控制指令

信息通讯

img

位置控制

话题信息

主题名称:/mavros/setpoint_position/local 发布坐标系:NED 坐标系 参数:geometry_msgs/PoseStamped Message

img

其中:

  • Point 指无人机的目标位置
    • x-------本地坐标系下前后位置,前为正,后为负 y-------本地坐标系下左右位置,左为正,右为负 z-------本地坐标系下高度位置,上为正,下为负
  • Quaternion orientation 无人机的目标姿态
    • x-----俯仰 y-----滚转 z,w-----两个参数共同组成偏航角

控制

  • 输入: 期望位置 当前位置
  • 输出: 期望姿态角

速度控制

主题名称:/mavros/setpoint_velocity/cmd_vel_unstamped 发布坐标系:NED 坐标系 参数:geometry_msgs/Twist

img

其中:

  • linear 含义: x-------本地坐标系下前后速度,前为正,后为负 y-------本地坐标系下左右速度,左为正,右为负 z-------本地坐标系下高度速度,上为正,下为负

  • angular: z轴为旋转轴

    z-------本地坐标系下旋转速度,左为正,右为负

内置自定义协议结构体

为了更直观的满足用户的控制需求,我们自定义了一套通信协议与 mavros 进行通讯 自定义协议结构体如下图所示:

comid---指令的 id,用于区分指令序列 command---指令类别 ◼ Move_ENU:ENU 坐标系下运动 ◼ Move_Body:机体坐标系下运动 ◼ Hold:悬停指令 ◼ Land:降落指令 ◼ Disarm:上锁指令 ◼ Failsafe_land:紧急降落 ◼ Custom:自定义

Sub_mode---子命令,指明该指令是速度还是位置指令 Pose_sp---位置指令 ◼ 0:x 方向 ◼ 1:y 方向 ◼ 2:z 方向 ⚫ Vel_sp---速度指令 ◼ 0:x 方向 ◼ 1:y 方向 ◼ 2:z 方向 ⚫ Yaw_sp---航向位置指令 ⚫ Yaw_rate_sp---转向速度指令

这样,用户就可以自由生成位置,速度,加速度指令,控制无人机运动而不用管它内部是怎么实现的,专注于任务和感知层面的研究

传感器

1. 光流

https://docs.px4.io/main/zh/sensor/optical_flow.html

Optical Flow uses a downward facing camera and a downward facing distance sensor for velocity estimation.

An Optical Flow setup requires a downward facing camera and a distance sensor (preferably a LiDAR). These can be connected via MAVLink, I2C or any other bus that supports the peripheral.

If connected to PX4 via MAVLink the Optical Flow device must publish to the OPTICAL_FLOW_RAD(opens new window) topic, and the distance sensor must publish to the DISTANCE_SENSOR(opens new window) topic.

img

2. T265

https://blog.csdn.net/crp997576280/article/details/109544456

3. 雷达

工作时,RPLIDAR A2 的测距核心将顺时针旋转, 实现对周围环境的360度全方位扫描测距检测,从而获得周围环境的轮廓图。

整机任务实现框架

所需设备及程序框架

任务

img

需求分析

1. 定位

(1)提供精准的飞机相对于世界坐标系的位置信息,包括两个维度:

​ 1) xy坐标,即无人机位于所处平面上、相对于原点的xy坐标

​ 2) z坐标,即高度信息

(2)同导航手沟通,确定对障碍物、门、最终降落区的坐标定位与识别

定位手需提出/整理==一套完整的定位方案==

定位设备: T265 or 激光雷达 or 光流

2. 导航

(1)基于定位基础上,无人机需要对飞行路线进行自动规划,包括:

​ 1)从起点出发到终点的全局路径规划

​ 2)对 避障 和 穿门 的自主规划实现

​ 3)在终点示意区的范围巡航

(2)同定位手沟通,确定对障碍物、门、最终降落区的坐标定位与识别

(3)同避障手沟通,实现飞行过程中的局部避障策略

导航手需提出导航算法,包括全局路径规划、局部路径规划和范围巡航方案

需整理运动控制和穿门的完整方案

3. 避障

(1)开发飞机的平稳快速避障策略

可能需要深入到飞机的控制学展开调研和避障代码设计

(2)负责飞机飞行过程中的稳定性和安全性,诸如平稳飞行和起飞降落保护

避障手需深入避障策略的算法核心,开发/应用稳定的避障方案

4. 视觉

(1)完成最终识别目标物的任务

完成任务要求,确定巡航的最终区域,抵达目标点位并识别目标物

(2)精准降落位置

无人机本体完全降落在降落区,投影在降落区框架内,实现精准降落

方案具体实现:==由各个飞手填写、完善==

整体规划

先完成整体方案

再优化运行速度精度

一个方向的工作做完之后投入到另外的工作中,作为一个团队行动