Documentation Status

Cannot load information on name: mavros, distro: electric, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: mavros, distro: fuerte, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: mavros, distro: groovy, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

Package Summary

Released Continuous integration Documented

MAVROS -- MAVLink extendable communication node for ROS with UDP proxy for Ground Control Station.

Package Summary

Released Continuous integration Documented

MAVROS -- MAVLink extendable communication node for ROS with proxy for Ground Control Station.

Overview

This package provides communication driver for various autopilots with MAVLink communication protocol. Additional it provides UDP MAVLink bridge for ground control stations (e.g. QGroundControl).

Main node can be extended by plugins (see pluginlib). See also mavros_extras package.

Nodes

mavros_node

main communication node.

Subscribed Topics

mavlink/to (mavros_msgs/Mavlink)
  • Mavlink stream to autopilot.

Published Topics

mavlink/from (mavros_msgs/Mavlink)
  • Mavlink stream from autopilot.
diagnostics (diagnostic_msgs/DiagnosticStatus)
  • Diagnostic status information.

Parameters

~system_id (int, default: 1)
  • Node MAVLink System ID.
~component_id (int, default: 240)
  • Node MAVLink Component ID.
~target_system_id (int, default: 1)
  • FCU MAVLink System ID.
~target_component_id (int, default: 1)
  • FCU MAVLink Component ID.
~startup_px4_usb_quirk (bool, default: false)
  • Define apply quirk for PX4 or not.
~plugin_blacklist (string[], default: [])
  • Alias blacklist (glob syntax, example: ['rc*'])
~plugin_whitelist (string[], default: [])
  • Alias whitelist (glob syntax, overrides blacklist)
~fcu_url (string, default: /dev/ttyACM0:57600)
  • FCU connection URL.
~fcu_protocol (string, default: v1.0)
  • MAVLink protocol version. Supported: "v1.0", "v2.0" New in 0.18
~gcs_url (string, default: udp://@)
  • GCS bridge connection URL.

gcs_bridge

Additional proxy. Old name ros_udp.

Subscribed Topics

mavlink/from (mavros_msgs/Mavlink)
  • Mavlink stream from autopilot.

Published Topics

mavlink/to (mavros_msgs/Mavlink)
  • Mavlink stream to autopilot.

Parameters

~gcs_url (string, default: udp://@)
  • Connection URL.

event_launcher

Listens to arming status, triggers and run programs on event. Example config.

Subscribed Topics

mavros/state (mavros_msgs/State)
  • Source of arming events.

Services

<trigger_event> (std_srvs/Trigger)
  • Optional event triggers. You may create several services using configuration.

Parameters

~<event_name>/service (string)
  • Create event (with name <event_name>) triggered by service (param value).
~<event_handler>/event (string[])
  • List of events triggered that handler.
~<event_handler>/action (string[])
  • List of actions to do on corresponding event. Supported actions: run, stop.
~<event_handler>/shell (string)
  • Command to run/stop on event.
~<event_handler>/logfile (string, default: "")
  • File to save stdout and stderr output of command. Optional.

Usage

Example launch files are in the mavros/launch directory. If the autopilot is on the PX4 native stack use the following to launch an example configuration:

roslaunch mavros px4.launch

If the autopilot is on the ArduPilot/APM stack firmware use the following:

roslaunch mavros apm.launch

Example configurations for the various mavros plugins can also be found in similarly named yaml files. For more details on the choices between APM and PX4 stacks checkout the pixhawk wiki.

Hardware notes:

  • APM2.5/2.6 always APM stack
  • Pixhawk from manufacturer usually comes with APM stack
  • Pixhawk may be flashed by PX4 firmware using QGC or by upload make target.

If you unsure what firmware your FCU runs start apm.launch and see diagnostics. Starting from 0.11 mavros knows string representation for autopilot mavlink enum. For older you shall manually find autopilot type value in mavlink documentation.

Connection URL

Connection defined by URL, you can use any supported type for FCU and GCS.

Supported schemas:

  • Serial: /path/to/serial/device[:baudrate]

  • Serial: serial:///path/to/serial/device[:baudrate][/?ids=sysid,compid]

  • UDP: udp://[bind_host][:port]@[remote_host][:port][/?ids=sysid,compid]

  • UDP Broadcast: udp-b://[bind_host][:port]@[:port][/?ids=sysid,compid]

  • TCP client: tcp://[server_host][:port][/?ids=sysid,compid]

  • TCP server: tcp-l://[bind_host][:port][/?ids=sysid,compid]

Notes:

  • ids from URL overrides ids given by parameters ~system_id and ~component_id.

  • baudrate default value is 57600

  • bind_host default value is "0.0.0.0" (IPv4 ANY)

  • remote_host by default unknown. mavros will awaiting data at bind_host:port

  • server_host default value is "localhost"

  • port default values: 14555 for UDP bind, 14550 for UDP remote, 5760 for TCP

  • UDP broadcast used on discovery stage, later it switch to GCS address
  • Currently supports only IPv4.

Utility commands

All utilities provides <util> --help and <util> <command> --help information.

mavcmd

usage: mavcmd [-h] [-n MAVROS_NS] [-v] [--wait]
              {long,int,sethome,takeoff,land,takeoffcur,landcur,trigger_control}
              ...

Commad line tool for sending commands to MAVLink device.

positional arguments:
  {long,int,sethome,takeoff,land,takeoffcur,landcur,trigger_control}
    long                Send any command (COMMAND_LONG)
    int                 Send any command (COMMAND_INT)
    sethome             Request change home position
    takeoff             Request takeoff
    land                Request land
    takeoffcur          Request takeoff from current GPS coordinates
    landcur             Request land on current GPS coordinates
    trigger_control     Control onboard camera trigerring system (PX4)

optional arguments:
  -h, --help            show this help message and exit
  -n MAVROS_NS, --mavros-ns MAVROS_NS
                        ROS node namespace
  -v, --verbose         verbose output
  --wait                Wait for establishing FCU connection

mavftp

PX4 only.

usage: mavftp [-h] [-n MAVROS_NS] [-v]
              {cd,list,cat,remove,mkdir,rmdir,download,upload,verify,reset}
              ...

File manipulation tool for MAVLink-FTP.

positional arguments:
  {cd,list,cat,remove,mkdir,rmdir,download,upload,verify,reset}
    cd                  change directory
    list                list files and dirs
    cat                 cat file
    remove              remove file
    mkdir               create direcotory
    rmdir               remove directory
    download            download file
    upload              upload file
    verify              verify files
    reset               reset

optional arguments:
  -h, --help            show this help message and exit
  -n MAVROS_NS, --mavros-ns MAVROS_NS
                        ROS node namespace
  -v, --verbose         verbose output

mavparam

usage: mavparam [-h] [-n MAVROS_NS] [-v] {load,dump,get,set} ...

Commad line tool for getting, setting, parameters from MAVLink device.

positional arguments:
  {load,dump,get,set}
    load                load parameters from file
    dump                dump parameters to file
    get                 get parameter
    set                 set parameter

optional arguments:
  -h, --help            show this help message and exit
  -n MAVROS_NS, --mavros-ns MAVROS_NS
                        ROS node namespace
  -v, --verbose         verbose output

mavsafety

usage: mavsafety [-h] [-n MAVROS_NS] [-v] {arm,disarm,safetyarea} ...

Commad line tool for manipulating safty on MAVLink device.

positional arguments:
  {arm,disarm,safetyarea}
    arm                 Arm motors
    disarm              Disarm motors
    safetyarea          Send safety area

optional arguments:
  -h, --help            show this help message and exit
  -n MAVROS_NS, --mavros-ns MAVROS_NS
                        ROS node namespace
  -v, --verbose         verbose output

mavsetp

Testing utility for setpoint plugins.

usage: mavsetp [-h] [-n MAVROS_NS] [-V] {local} ...

Commad line tool for control the device by setpoints.

positional arguments:
  {local}
    local               Send local setpoint

optional arguments:
  -h, --help            show this help message and exit
  -n MAVROS_NS, --mavros-ns MAVROS_NS
                        ROS node namespace
  -V, --verbose         verbose output

mavsys

usage: mavsys [-h] [-n MAVROS_NS] [-v] [--wait] {mode,rate} ...

Change mode and rate on MAVLink device.

positional arguments:
  {mode,rate}
    mode                Set mode
    rate                Set stream rate

optional arguments:
  -h, --help            show this help message and exit
  -n MAVROS_NS, --mavros-ns MAVROS_NS
                        ROS node namespace
  -v, --verbose         verbose output
  --wait                Wait for establishing FCU connection

Supported custom modes listed at mavros/CustomModes.

mavwp

usage: mavwp [-h] [-n MAVROS_NS] [-v]
             {show,load,pull,dump,clear,setcur,goto} ...

Commad line tool for manipulating mission on MAVLink device.

positional arguments:
  {show,load,pull,dump,clear,setcur,goto}
    show                Show waypoints
    load                load waypoints from file
    pull                pull waypoints from FCU
    dump                dump waypoints to file
    clear               clear waypoints on device
    setcur              set current waypoints on device
    goto                send goto waypoint (APM only)

optional arguments:
  -h, --help            show this help message and exit
  -n MAVROS_NS, --mavros-ns MAVROS_NS
                        ROS node namespace
  -v, --verbose         verbose output

Plugins

Standard set of communication plugins loaded by mavros_node.

Note: this list for 0.18.0 version. Older versions: 0.6.0, 0.7.0, 0.8.0, 0.10.0, 0.11.0, 0.12.0 — 0.15.0, 0.16.0 — 0.17.0.

3dr_radio

Publish 3DR Radio status to diagnostics and topic.

Published Topics

~radio_status (mavros_msgs/RadioStatus)
  • Status received from modem, same as RADIO_STATUS message.

actuator_control

Sends acruator commands to FCU.

Subscribed Topics

~actuator_control (mavros_msgs/ActuatorControl)
  • actuator command

hil_controls

Publish HIL_CONTROLS New in 0.18

Published Topics

~hil_controls/hil_controls (mavros_msgs/HilControls)
  • HIL data

Parameters

~frame_id (string, default: "map")
  • frame for altitude messages

command

Send COMMAND_LONG to FCU.

Services

~cmd/command (mavros_msgs/CommandLong)
  • Send any COMMAND_LONG to FCU.
~cmd/command_int (mavros_msgs/CommandInt)
  • Send any COMMAND_INT to FCU.
~cmd/arming (mavros_msgs/CommandBool)
  • Change Arming status.
~cmd/set_home (mavros_msgs/CommandHome)
  • Change HOME location.
~cmd/takeoff (mavros_msgs/CommandTOL)
  • Send takeoff command.
~cmd/land (mavros_msgs/CommandTOL)
  • Send land command.
~cmd/trigger_control (mavros_msgs/CommandTriggerControl)
  • Send camera trigger control command.

Parameters

~cmd/use_comp_id_system_control (bool, default: false)
  • Use SYSTEM_CONTROL component id instead of mavros target component.

ftp

Support plugin for MAVLink-FTP (PX4).

Services

~ftp/open (mavros_msgs/FileOpen)
  • Open file (acquire session).
~ftp/close (mavros_msgs/FileClose)
  • Close file (release session).
~ftp/read (mavros_msgs/FileRead)
  • Read from opened file.
~ftp/write (mavros_msgs/FileWrite)
  • Write to opened file.
~ftp/list (mavros_msgs/FileList)
  • List directory.
~ftp/truncate (mavros_msgs/FileTruncate)
  • Truncate file.
~ftp/remove (mavros_msgs/FileRemove)
  • Unlink file.
~ftp/rename (mavros_msgs/FileRename)
  • Rename file/directory.
~ftp/mkdir (mavros_msgs/FileMakeDir)
  • Create directory.
~ftp/rmdir (mavros_msgs/FileRemoveDir)
  • Remove directory.
~ftp/checksum (mavros_msgs/FileChecksum)
  • Request to calculate CRC32 of file on FCU.
~ftp/reset (std_srvs/Empty)
  • Reset FCU server (dangerous).

global_position

Publish global position information fused by FCU and raw GPS data.

Published Topics

~global_position/global (sensor_msgs/NavSatFix)
  • GPS Fix.
~global_position/local (geometry_msgs/PoseWithCovarianceStamped)
  • UTM coords.
~global_position/gp_vel (geometry_msgs/TwistStamped)
  • Velocity fused by FCU.
~global_position/rel_alt (std_msgs/Float64)
  • Relative altitude.
~global_position/compass_hdg (std_msgs/Float64)
  • Compass heading in degrees.
~global_position/raw/fix (sensor_msgs/NavSatFix)
  • GPS position fix reported by the device.
~global_position/raw/gps_vel (geometry_msgs/TwistStamped)
  • Velocity output from the GPS device.

Parameters

~global_position/frame_id (string, default: fcu)
  • frame_id for messages.
~global_position/tf/send (bool, default: true)
  • Send or not local UTM coords via TF?
~global_position/tf/frame_id (string, default: local_origin)
  • frame_id for TF.
~global_position/tf/child_frame_id (string, default: fcu_utm)
  • Child frame_id for TF.

imu_pub

Publish IMU state

Published Topics

~imu/data (sensor_msgs/Imu)
  • Imu data, orientation computed by FCU
~imu/data_raw (sensor_msgs/Imu)
  • Raw IMU data without orientation
~imu/mag (sensor_msgs/MagneticField)
  • FCU compass data
~imu/temperature (sensor_msgs/Temperature)
  • Temperature reported by FCU (usually from barometer)
~imu/atm_pressure (sensor_msgs/FluidPressure)
  • Air pressure.

Parameters

~imu/frame_id (string, default: fcu)
  • Frame ID for this plugin.
~imu/linear_acceleration_stdev (double, default: 0.0003)
  • Gyro's standard deviation
~imu/angular_velocity_stdev (double, default: !dec 0.02)
  • Accel's standard deviation
~imu/orientation_stdev (double, default: 1.0)
  • Standard deviation for IMU.orientation
~imu/magnetic_stdev (double, default: 0.0)
  • Standard deviation for magnetic field message (undefined if: 0.0)

local_position

Publish LOCAL_POSITION_NED in TF and PoseStamped topic.

Published Topics

~local_position/pose (geometry_msgs/PoseStamped)
  • Local position from FCU.
~local_position/velocity (geometry_msgs/TwistStamped)
  • Velocity data from FCU.

Parameters

~local_position/frame_id (string, default: fcu)
  • frame_id for message.
~local_position/tf/send (bool, default: true)
  • TF send switch.
~local_position/tf/frame_id (string, default: local_origin)
  • Origin frame_id for TF.
~local_position/tf/child_frame_id (string, default: fcu)
  • Child frame_id for TF.

manual_control

Publish MANUAL_CONTROL message (user input).

Published Topics

~manual_control/control (mavros_msgs/ManualControl)
  • RC Rx, interpreted and normalized.

param

Allows to access to FCU parameters and map it to ROS parameters in ~param/.

Services

~param/pull (mavros_msgs/ParamPull)
  • Request parameter from device (or internal cache).
~param/push (mavros_msgs/ParamPush)
  • Request send parameters from ROS to FCU.
~param/get (mavros_msgs/ParamGet)
  • Return FCU parameter value.
~param/set (mavros_msgs/ParamSet)
  • Set parameter on FCU immidiatly.

rc_io

Publish RC receiver inputs.

Subscribed Topics

~rc/override (mavros_msgs/OverrideRCIn)
  • Send RC override message to FCU. APM and PX4 only. APM requires setup FCU param SYSID_MYGCS to match mavros system id. Not recommended to use in automatic control because lack of safety mechanisms. Use one of setpoint plugins and OFFBOARD mode.

Published Topics

~rc/in (mavros_msgs/RCIn)
  • Publish RC inputs (in raw milliseconds)
~rc/out (mavros_msgs/RCOut)
  • Publish FCU servo outputs

safety_area

Sends safety allowed area to FCU. Initial area can be loaded from parameters.

Subscribed Topics

~safety_area/set (geometry_msgs/PolygonStamped)
  • Volumetric area described by two corners.

Parameters

~safety_area/p1/x (double)
  • Corner 1 X.
~safety_area/p1/y (double)
  • Corner 1 Y.
~safety_area/p1/z (double)
  • Corner 1 Z.
~safety_area/p2/x (double)
  • Corner 2 X.
~safety_area/p2/y (double)
  • Corner 2 Y.
~safety_area/p2/z (double)
  • Corner 2 Z.

setpoint_accel

Send acceleration setpoint.

Subscribed Topics

~setpoint_accel/accel (geometry_msgs/Vector3Stamped)
  • Acceleration or force setpoint vector.

Parameters

~setpoint_accel/send_force (bool)
  • Send force setpoint.

setpoint_attitude

Send attitude setpoint using SET_ATTITUDE_TARGET.

Subscribed Topics

~setpoint_attitude/cmd_vel (geometry_msgs/TwistStamped)
  • Send angular velocity.
~setpoint_attitude/attitude (geometry_msgs/PoseStamped)
  • Send attitude setpoint.

Parameters

~setpoint_attitude/reverse_throttle (bool, default: false)
  • Allow to send -1.0 throttle or not.
~setpoint_attitude/tf/listen (bool, default: false)
  • TF listen switch. Disable topics if enabled.
~setpoint_attutude/tf/frame_id (string, default: local_origin)
  • Origin frame_id for TF.
~setpoint_attitude/tf/child_frame_id (string, default: attitude)
  • Child frame_id for TF.
~setpoint_attitude/tf/rate_limit (double, default: 10.0)
  • Rate limit for TF listener [Hz].

setpoint_position

Sent position setpoint using SET_POSITION_TARGET_LOCAL_NED.

Subscribed Topics

~setpoint_position/local (geometry_msgs/PoseStamped)
  • Setpoint position. Only YAW axis extracted from orientation field.

Parameters

~setpoint_position/tf/listen (bool, default: false)
  • TF listen switch. Disable topic if enabled.
~setpoint_position/tf/frame_id (string, default: local_origin)
  • Origin frame_id for TF.
~setpoint_position/tf/child_frame_id (string, default: setpoint)
  • Child frame_id for TF.
~setpoint_position/tf/rate_limit (double, default: 50.0)
  • Rate limit for TF listener [Hz].

setpoint_raw

Send RAW setpoint messages to FCU and provide loopback topics (PX4).

Subscribed Topics

~setpoint_raw/local (mavros_msgs/PositionTarget)
  • Local position, velocity and acceleration setpoint.
~setpoint_raw/global (mavros_msgs/GlobalPositionTarget)
  • Global position, velocity and acceleration setpoint.
~setpoint_raw/attitude (mavros_msgs/AttitudeTarget)
  • Attitude, angular rate and thrust setpoint.

Published Topics

~setpoint_raw/target_local (mavros_msgs/PositionTarget)
  • Local target loopback.
~setpoint_raw/target_global (mavros_msgs/GlobalPositionTarget)
  • Global target loopback.
~setpoint_raw/target_attitude (mavros_msgs/AttitudeTarget)
  • Attitude target loopback.

setpoint_velocity

Send velocity setpoint to FCU.

Subscribed Topics

~setpoint_velocity/cmd_vel (geometry_msgs/TwistStamped)
  • Velocity setpoint.

sys_status

System status plugin. Handles FCU detection. REQUIRED never blacklist it!.

Published Topics

~state (mavros_msgs/State)
  • FCU state
~battery (mavros_msgs/BatteryStatus)
  • FCU battery status report.
~extended_state (mavros_msgs/ExtendedState)
  • Landing detector and VTOL state.

Services

~set_stream_rate (mavros_msgs/StreamRate)
  • Send stream rate request to FCU.
~set_mode (mavros_msgs/SetMode)
  • Set FCU operation mode. See custom mode identifiers at modes page.

Parameters

~conn/timeout (double, default: 30.0)
  • Connection time out in seconds.
~conn/heartbeat_rate (double, default: 0.0)
  • Send HEARTBEAT message rate [Hz] (or disabled if 0.0)
~sys/min_voltage (double, default: 6.0)
  • Minimal battery voltage for diagnostics.
~sys/disable_diag (bool, default: false)
  • Disable all diag except HEARTBEAT message.

sys_time

System time plugin. Does time syncronization on PX4.

Published Topics

~time_reference (sensor_msgs/TimeReference)
  • Time reference computed from SYSTEM_TIME.

Parameters

~conn/system_time_rate (double, default: 0.0)
  • Send SYSTEM_TIME to device rate [Hz] (disabled if 0.0).
~conn/timesync_rate (double, default: 0.0)
  • TIMESYNC rate. PX4 only.
~time/time_ref_source (string, default: "fcu")
  • Ref source for time_reference message.
~time/timesync_avg_alpha (double, default: 0.6)
  • Alpha for exponential moving average.

vfr_hud

Publish VFR_HUD and WIND messages.

Published Topics

~vfr_hud (mavros_msgs/VFR_HUD)
  • Data for HUD.
~wind_estimation (geometry_msgs/TwistStamped)
  • Wind estimation from FCU (APM).

waypoint

Allows to access to FCU mission (waypoints).

Published Topics

~mission/waypoints (mavros_msgs/WaypointList)
  • Current waypoint table. Updates on changes.

Services

~mission/pull (mavros_msgs/WaypointPull)
  • Request update waypoint list.
~mission/push (mavros_msgs/WaypointPush)
  • Send new waypoint table.
~mission/clear (mavros_msgs/WaypointClear)
  • Clear mission on FCU.
~mission/set_current (mavros_msgs/WaypointSetCurrent)
  • Set current seq. number in list.

Parameters

~mission/pull_after_gcs (bool, default: false)
  • Defines pull or not waypoints if detected GCS activity.

Notes

Plugins: `vision_position` and `vision_speed` moved to mavros_extras. New in 0.13 GPS and global_position plugins are merged. TF params moved to tf/ subnamespace. New in 0.16 Waypoint GOTO service removed. Please use setpoint plugins. New in 0.18 Experimental MAVLink 2.0 support (without packet signing).

Wiki: mavros (last edited 2016-06-23 17:42:32 by vooon)