ArduPilot开源代码之Companion Computers简单分析
- 1. 源由
- 2. 伴机系统
- 2.1 APSync
- 2.2 DroneKit
- 2.3 FlytOS
- 2.4 Maverick
- 2.5 ROS
- 2.6 Rpanion-server
- 3. 总结
- 4. 参考资料
1. 源由
从稳定性,社区群体,以及开源方式的角度看,Ardupilot是不错的选择之一。
主要有以下几个特点:
- 【操控性】手动
- 【稳定性】自动导航
- 【安全性】异常场景
- 【普及性】社区受众群体广泛
为了更好的实现智能飞行,就需要融合传感和空间感知技术。这些内容显然并非当前任意一个飞控软件能解决的,更多依赖计算能力更强大的伴机电脑系统。
在入手companion computer之前,就Ardupilot生态圈内部提供的几个伴机方案进行研习和分析。
伴机电脑就选个手边简单的板子吧,主要还是分析软件这块内容。!
2. 伴机系统
- APSync
- DroneKit
- FlytOS
- Maverick
- ROS
- Rpanion-server
注:这里仅根据companion computer提供的信息进行简单分析。
2.1 APSync
【1】APSync介绍
【2】APSync代码
- WiFi电传
- WiFi Access Point
- UDP Telemetry (port:14550)
- Log Download Script
- WEB配置
- View and modify parameters
- View sensor information and trigger some calibrations
- Modify the Wifi access point name and password
- View and download log files if they are stored on the companion computer
URL http://10.0.1.128
- 视频传输
video stream
http://10.0.1.128:8000
从上面特性看,更像一个摄像头+电传模块的功能集成。
2.2 DroneKit
【1】DroneKit介绍
【2】DroneKit代码
该开发工具主要应用python编程,支持Ardupilot的MAVLink接口,详见:API资料
- Connect to a vehicle (or multiple vehicles) from a script
- Get and set vehicle state/telemetry and parameter information.
- Receive asynchronous notification of state changes.
- Guide a UAV to specified position (GUIDED mode).
- Send arbitrary custom messages to control UAV movement and other hardware (GUIDED mode).
- Create and manage waypoint missions (AUTO mode).
- Override RC channel settings.
2.3 FlytOS
【1】FlytOS介绍
该系统方案分析了众多应用场景,从行业应用的角度做了平台整合。
显然,这个是商业运作,开源代码是木有的,呵呵。
2.4 Maverick
【1】 Maverick介绍
【2】Maverick代码
该系统从功能角度来说很多:
- Downloadable, ready to flash, ready to fly images for Raspberry Pi (all models), NVidia Tegra TX1/TX2, Up (Up, Squared, Core), Odroid XU4, Intel Joule
- Downloadable VM image for developers in OVA (Open Virtual Appliance) and Parallels formats, should run in VirtualBox, VMware, Parallels etc
- Permissive MIT licensing, absolute minimum restrictions on opensource or commercial usage
- Ability to bootstrap from any donor/vendor OS (only Debian/Ubuntu based OS supported so far, but possible to support any base OS) and create custom images
- Single ‘maverick’ command provides system/network info, self updating, system configuration, service control
- Self-contained, consistent software environments and versions across different platforms
- Automatic detection and configuration of platform hardware and peripherals
- Easy modular network configuration including managed wireless, monitor/injection, Host Access Point, Avahi, Dnsmasq, DHCP client/server, wifibroadcast
- Built-in security, firewall, antivirus, scanners
- Selective, modular Mavlink proxy, Dronekit and MAVROS configuration, supports MAVProxy, mavlink-router, cmavnode
- Rich web-based IDE (Integrated Development Environment) - Cloud9
- Full SITL environment with separate mavlink proxy, dronekit and MAVROS instances
- Extensive consistent software components installed on all platforms - ROS Kinetic/Lunar, ROS2, Tensorflow 1.3, OpenCV 3.4, Gstreamer 1.12.4, FPV video (visiond, camera-streaming-daemon), Orb_slam2, RTABMAP, Aruco
- ArduPllot development environment, compiled ArduPilot for SITL, everything necessary setup to compile and upload to Flight Controllers direct from companion computer
- PX4 development environment, compiled PX4 for SITL, everything necessary setup to compile and upload to Flight Controllers direct from companion computer
- Vision functions - automatic detection and configuration of attached digital cameras for FPV (visiond), Precision Landing with vision_landing, experimental collision avoidance with RealSense depth cameras, Thermal Image streaming with Seek Thermal and Flir One devices, experimental SLAM components ORB_SLAM2 and RTABMAP
但是从整体架构上不难看出围绕MAVLink/ROS/Vision在做数据分析,是一个整合的系统。
注:最近一次更新Nov 12, 2021,感觉有点缺少维护了。
2.5 ROS
【1】ROS介绍
【2】ROS代码
ROS(Robot Operating System)是机器人操作系统。因为SLAM (Simultaneous Localization and Mapping)/Vision等传感器和空间定位技术的应用,随着MAVROS组件的发展,现在这块非常热门。
这里不多做介绍,其系统也是非常庞大的。
2.6 Rpanion-server
【1】Rpanion-server介绍
【2】Rpanion-server代码
- Flight Controller telemetry routing to udp outputs
- Video Streaming via an RTSP server
- Network configuration
- NTRIP Streaming
- Logging (tlog and bin logs)
该服务是基于node.js开发的,其最终应用的还是MAVLink与飞控通信。鉴于其SBC可以做视频RTSP服务,因此可以进行相关视频图像流处理。
3. 总结
从上述几个Ardupilot伴机电脑上常用的软件来看,考虑如下:
- 不考虑商业软件(学习研究角度)
- 从不同的维度考虑
- 应用角度:SLAM/Vision/SensorFusion
- 飞控技术:MAVLink API
- 仿真角度:SITL in Gazebo
4. 参考资料
【1】Ardupilot-APSync
【2】Ardupilot-DroneKit
【3】Ardupilot-FlytOS
【4】goodrobots-Maverick
【5】Ardupilot-ROS
【6】Ardupilot-Rpanion-server