文章目录
  • 前言
  • 一、概述
  • 二、开发环境搭建
  • 三、多旋翼MAVROS自主控制接口
  • 四、无人船(车)MAVROS自主控制接口
  • 五、二次开发基础
  • 六、控制LED灯
  • 七、自定义串口驱动
  • 八、Guided控制接口
  • 九、输出自定义PWM信号
  • 十、添加自定义MAVLINK消息和QGC通信
  • 十一、自定义日志
  • 十二、自定义参数


前言

ArduPilot是一个多功能和开源的自动驾驶系统,支持多种车辆类型:多旋翼、传统直升机、固定翼飞机、船只、潜水器、无人车等。其源代码是由一大群专业人士和爱好者开发。
官方wiki:
 https://ardupilot.org/ardupilot/ https://ardupilot.org/dev/

本教程主要是讲解基于ArduPilot固件的二次开发,适用于没有任何相关开发经验的朋友。

硬件:
超维USV-M系列无人船
pix2.4.8飞控

软件:
ArduPilot 4.4
QGC4.2

课程内容暂时包括下面这些,后面有空了会继续补充

一、概述

二、开发环境搭建

文档地址:

三、多旋翼MAVROS自主控制接口

源码地址:
  https://gitee.com/Mbot_admin/hyper-drone.git

四、无人船(车)MAVROS自主控制接口

源码地址:
  https://gitee.com/Mbot_admin/hyper-drone.git

先下载源码:

git clone https://gitee.com/Mbot_admin/hyper-drone.git
  • 1.

然后编译

cd hyper-drone/
source compile.sh
  • 1.
  • 2.

然后启动仿真,在ardupilot/Rover目录下执行:

../Tools/autotest/sim_vehicle.py -f rover
  • 1.

ArduPilot二次开发零基础教程_教程

打开仿真后,新建apm.launch如下:

<launch>
	<!-- vim: set ft=xml noet : -->
	<!-- example launch script for ArduPilot based FCU's -->

	<arg name="fcu_url" default="udp://127.0.0.1:14551@14555" />
	<arg name="gcs_url" default="" />
	<arg name="tgt_system" default="1" />
	<arg name="tgt_component" default="1" />
	<arg name="log_output" default="screen" />
	<arg name="fcu_protocol" default="v2.0" />
	<arg name="respawn_mavros" default="false" />

	<include file="$(find mavros)/launch/node.launch">
		<arg name="pluginlists_yaml" value="$(find mavros)/launch/apm_pluginlists.yaml" />
		<arg name="config_yaml" value="$(find mavros)/launch/apm_config.yaml" />

		<arg name="fcu_url" value="$(arg fcu_url)" />
		<arg name="gcs_url" value="$(arg gcs_url)" />
		<arg name="tgt_system" value="$(arg tgt_system)" />
		<arg name="tgt_component" value="$(arg tgt_component)" />
		<arg name="log_output" value="$(arg log_output)" />
		<arg name="fcu_protocol" value="$(arg fcu_protocol)" />
		<arg name="respawn_mavros" value="$(arg respawn_mavros)" />
	</include>
</launch>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

然后启动apm.launch

roslaunch apm.launch
  • 1.

启动成功后如下:

ArduPilot二次开发零基础教程_教程_02


然后启动guided控制节点:

在~/hyper-drone工作空间路径下打开终端执行:

source devel/setup.bash
rosrun apm_commd apm_commd_Rover
  • 1.
  • 2.

执行成功后打印如下:

ArduPilot二次开发零基础教程_自定义_03


仿真中的无人船(车)会自动切换到Guided模式,然后按指令自主的运动

ArduPilot二次开发零基础教程_Ardupilot_04

五、二次开发基础

六、控制LED灯

七、自定义串口驱动

八、Guided控制接口

九、输出自定义PWM信号

十、添加自定义MAVLINK消息和QGC通信

十一、自定义日志

十二、自定义参数