roscopter

roscopter es un paquete de ROS que implementa un interfaz con Arducopter utilizando MAVLink 1.0. Permite controle el arducoptero sobreescribiendo el comando RC, y publicando todos lo datos del sensor (un paquete antiguo disponible aquí).

Compilando autopilot_bridge

Realice la compilación como se describe en mavlink_ros:compiling instructions. El paquete debe de ser descargado en ~/catkin_ws/src y catkin_make debe de ser ejecutado desde catkin_ws (revisar ROS: Building a ROS Package para aprender más sobre el proceso de compilación de paquetes ROS).

Las instrucciones exactas para este paquete se encuentra en su código fuente.

Ejecutando roscopter

rosrun roscopter roscopter_node.py  --device=/dev/ttyO4 --baudrate=115200
root@erlerobot:~# rosrun roscopter roscopter_node.py  --device=/dev/ttyO5 --baudrate=115200
Waiting for APM heartbeat
Heartbeat from APM (system 1 component 1)
Sending all stream request for rate 10

roscopter puede ser lanzado utilizando una conexión de red:

rosrun roscopter roscopter_node.py  --device tcp:127.0.0.1:6000  --baudrate=115200

Jugando con roscopter

En otro terminal:

root@erlerobot:~# rostopic echo /attitude
roll: -0.99837321043
pitch: 0.778631448746
yaw: -0.439931690693
rollspeed: -0.00139412656426
pitchspeed: -0.00105890631676
yawspeed: 0.00113339431118
---
roll: -0.992067933083
pitch: 0.776587665081
yaw: -0.435508549213
rollspeed: -0.000329907052219
pitchspeed: -0.00105890631676
yawspeed: 6.91747991368e-05
---
roll: -0.985788047314
pitch: 0.774523973465
yaw: -0.431112319231
rollspeed: -0.00139412656426
pitchspeed: -0.00105890631676
yawspeed: 6.91747991368e-05
---
roll: -0.979533672333
pitch: 0.772440910339
yaw: -0.426743358374
rollspeed: -0.000329907052219
pitchspeed: -0.00212312862277
yawspeed: 6.91747991368e-05
---
roll: -0.973304569721
pitch: 0.770338177681
yaw: -0.42240139842
rollspeed: -0.000329907052219
pitchspeed: -0.00105890631676
yawspeed: 6.91747991368e-05

Visualizando roscopter

node-graph

Comenzacemos a visualizar los valores de /attitude y veamos su representación gráfica:


A través de todo este proceso la placa tiene que estas estática en tu escritorio. Los malos resultados no se deben a la mala actuación del paquete de ROS si no con los problemas con la estimación de la orientación dentro de ArduPilot.

rostopic echo /attitude and a plot using rqt_plot /attitude/roll:pitch:yaw:rollspeed:pitchspeed:yawspeed

These values are a bit unexpected so we repeat the process taking several screenshots: rostopic echo /attitude rqt_plot /attitude/roll:pitch:yaw:rollspeed:pitchspeed:yawspeed rqt_plot /attitude/roll:pitch:yaw:rollspeed:pitchspeed:yawspeed rqt_plot /attitude/roll:pitch:yaw:rollspeed:pitchspeed:yawspeed

Parece que hay un problema con la attitude :(.

Por otro lado los valores /raw_imu no pueden ser visualizados

results matching ""

    No results matching ""