提示:如需转载,请注明原始出处
前言
数传使用的是P900,下面为简单的1对2通信。使用前提已经配置好Mavros以及APM。
一、找到apm.launch
在APM目录下,找到apm.launch,当然也可以新建一个新的launch文件。
roscd mavros
cd launch
sudo gedit apm.launch
二、修改launch
注意修改default="/dev/ttyUSB0:230400,由于我的是数传,所以是USB0,后边的是波特率,要与小车的波特率保持一致:
注意生成多个集群需要用group
注意在真车使用数传电台进行通信的时候QGC串口与ID与launch里边错位。
<launch>
<!-- vim: set ft=xml noet : -->
<!-- example launch script for ArduPilot based FCU's -->
<!-- rover_0 -->
<group ns="rover_0">
<!-- MAVROS and vehicle configs -->
<arg name="ID" value="0"/>
<arg name="fcu_url" default="/dev/ttyUSB0:230400" />
<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"/> <!-- MAVROS -->
<!-- MAVROS -->
<include file="$(find mavros)/launch/apm.launch">
<arg name="fcu_url" value="$(arg fcu_url)"/>
<arg name="tgt_system" value="$(eval 1 + arg('ID'))"/>
<arg name="tgt_component" value="1"/>
<arg name="respawn_mavros" value="$(arg respawn_mavros)"/> <!-- MAVROS -->
</include>
</group>
<!-- rover_1 -->
<group ns="rover_1">
<!-- MAVROS and vehicle configs -->
<arg name="ID" value="1"/>
<arg name="fcu_url" default="/dev/ttyUSB0:230400" />
<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_mavros1" default="false"/> <!-- MAVROS -->
<!-- MAVROS -->
<include file="$(find mavros)/launch/apm.launch">
<arg name="fcu_url" value="$(arg fcu_url)"/>
<arg name="tgt_system" value="$(eval 1 + arg('ID'))"/>
<arg name="tgt_component" value="1"/>
<arg name="respawn_mavros" value="$(arg respawn_mavros1)"/> <!-- MAVROS -->
</include>
</group>
</launch>
总结
一定要仔细阅读源代码,了解底层原理,特在此记录一下。