Skip to content
aletty edited this page Apr 10, 2013 · 33 revisions
  1. labels Featured
ROS interface for Arducopter using Mavlink 1.0 interface.

Currently it supports controlling the arducopter by overriding the RC command, and it publishes all the sensor data.

Table of Contents

Building

  * Checkout repo
  * Checkout and build mavlink in the roscopter folder, or create a symlink to your existing mavlink build. The `roscopter/mavlink` folder should point to the built mavlink folder.
  * Mavlink can be checked-out from : git clone https://github.com/mavlink/mavlink.git
  * Build roscopter using `rosmake`.

Running

  * `--device` specifies the serial device. It could be `/dev/ACMx` or `/dev/ttyUSBx`. 
  * `--baudrate` specifies the baudrate. This should be 57600 if you are using XBee to talk to the APM, and 115200 if you are using a direct wired connection. 
  

Getting sensor data

Roscopter publishes sensor and other state data on the following topics:

  * /attitude : imu information
  * /gps :gps fix
  * /rc : value of current raw rc input
  * /state : shows wether the copter is armed or not, and the current mode 
  * /vfr_hud : airspeed, groundspeed, heading, throttle, alt, climb

Control

To enable control, run the roscopter node with --enable-control=true option.

Currently the only way of controlling the arducopter is by publishing to `/send_rc` topic. It takes raw RC channel values (between 1000-2000), and uses them to override the values received from the RC controller. To give control back to RC, publish 0 for the corresponding channel.

Arming/Disarming

Arming and disarming can be done by calling the `/arm` and `/disarm` services with no parameters.

Channels:

0 - return to RC

1 - roll

2 - pitch

3 - throttle

4 - yaw

5 - flight mode

6 - null

7 - low/high pwm

Clone this wiki locally