MavSDK&Mavros学习笔记
Introduction · MAVSDK Guide (mavlink.io)
GitHub - mavlink/MAVSDK源码
C++ · MAVSDK API reference paper)
GitHub - mavlink/MAVSDK-docs单独给doc做了个仓库而且还得编译才能看的docs,使用gitbook建立
GitHub - JonasVautherin/px4-gazebo-headless: An unofficial Ubuntu-based container building and running PX4 SITL (Software In The Loop) through gazebo.
MavSDK
Mavlink是Pixhawk的通讯协议,mavlink很简单。而MavSDK可以发送Mavlink信号到飞控然后控制飞控的工具包,就不再需要自己写mavlink了。MAVSDK 是跨平台的:Linux、macOS、Windows、Android 和 iOS。多语言的c++,swift,python,java,Go,JavaScript,CSharp,Rust。在使用时可以通过串口或者tcp或者udp建立连接然后就可以控制Pixhawk飞控。在此之前可以在Ubuntu下建立Pix的源码然后并创建模拟器,然后蓝mavsdk控制模拟器里的飞机进行控制。
安装
realease版本安装(再下载一份源码看看)
wget https://github.com/mavlink/MAVSDK/releases/download/v0.37.0/mavsdk_0.37.0_ubuntu20.04_amd64.deb
sudo dpkg -i mavsdk_0.37.0_ubuntu20.04_amd64.deb
示例程序的使用
Build and Try Example
git clone https://github.com/mavlink/MAVSDK.git --recursive
cd MAVSDK
cd examples
cd takeoff_and_land/
cmake -Bbuild -H.
cmake --build build -j4
Running an Example
build/takeoff_and_land udp://:14540
模拟器安装
Setting up a Developer Environment (Toolchain) | PX4 User Guide
docker快速安装
可以使用docker直接建立仿真环境,这里等我学会docker再说
基本安装
PX4 Docker Containers | PX4 User Guide
利用Ubuntu环境进行模拟而不是直接通过主板进行模拟,首先需要Pixhawk源码,地面站比如QGC(因为默认的 PX4 配置需要在起飞前连接地面控制),还需要一个模拟器,模拟器其实是Pixhawk源码中的一个tool,保存在toolchain文件夹里,在build是否就会产生一个模拟器,支持的模拟器比如
Simulation: jMAVSim SITL | 可通过命令行进行控制pxh> commander takeoff | make px4_sitl jmavsim |
---|
Simulation: Gazebo SITL | 可通过命令行进行控制 | make px4_sitl gazebo |
Simulation: ROS with Gazebo | 可通过命令行进行控制 | |
Simulation: [Airsim](Simulation: jMAVSim SITL) | | |
| | |
模拟器可以打开不同种类的飞机,只需要在make是否添加命令
Gazebo Simulation | PX4 User Guide对于如何修改模拟器中的风速等写的很详细
Vehicle | Command |
---|
Quadrotor四旋翼 | make px4_sitl gazebo |
Quadrotor with Optical Flow带光流的四旋翼 | make px4_sitl gazebo_iris_opt_flow |
3DR Solo (Quadrotor) | make px4_sitl gazebo_solo |
Typhoon H480 (Hexrotor) (supports video streaming) | make px4_sitl gazebo_typhoon_h480 |
Standard Plane | make px4_sitl gazebo_plane |
Standard Plane (with catapult launch) | make px4_sitl gazebo_plane_catapult |
Standard VTOL | make px4_sitl gazebo_standard_vtol |
Tailsitter VTOL | make px4_sitl gazebo_tailsitter |
Ackerman UGV (Rover) | make px4_sitl gazebo_rover |
Differential UGV (Rover) | make px4_sitl gazebo_r1_rover |
HippoCampus TUHH (UUV: Unmanned Underwater Vehicle) | make px4_sitl gazebo_uuv_hippocampus |
Boat (USV: Unmanned Surface Vehicle) | make px4_sitl gazebo_boat |
Cloudship (Airship) | make px4_sitl gazebo_cloudship |
Pixhawk源码的二次开发
编译NuttX / Pixhawk Based Boards上需要不同make命令
可以烧写到不同的平台上,比如最常见的Pixhawk,就需要用不同的make命令
- Holybro Pixhawk 6X (FMUv6X):
make px4_fmu-v6x_default
- Holybro Pixhawk 6C (FMUv6C):
make px4_fmu-v6c_default
- Holybro Pixhawk 5X (FMUv5X):
make px4_fmu-v5x_default
- Pixhawk 4 (FMUv5):
make px4_fmu-v5_default
- Pixhawk 4 Mini (FMUv5):
make px4_fmu-v5_default
- CUAV V5+ (FMUv5):
make px4_fmu-v5_default
- CUAV V5 nano (FMUv5):
make px4_fmu-v5_default
- Pixracer (FMUv4):
make px4_fmu-v4_default
- Pixhawk 3 Pro:
make px4_fmu-v4pro_default
- Pixhawk Mini:
make px4_fmu-v3_default
- Pixhawk 2 (Cube Black) (FMUv3):
make px4_fmu-v3_default
- mRo Pixhawk (FMUv3):
make px4_fmu-v3_default
(supports 2MB Flash) - Holybro pix32 (FMUv2):
make px4_fmu-v2_default
- Pixfalcon (FMUv2):
make px4_fmu-v2_default
- Dropix (FMUv2):
make px4_fmu-v2_default
- Pixhawk 1 (FMUv2):
make px4_fmu-v2_default
烧写
最后加一个upload,就自动通过usb烧写到板子里
make px4_fmu-v4_default upload
MavROS
同样是用mavlink进行通讯的一种方式,只不过是通过ros包的形式,订阅和发送信息,没啥意思
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)