Package Summary

Tags uav mav mavlink plugin apm px4
Version 0.18.2
License GPLv3
Buildtool CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version master
Last Updated 2016-07-03
Dev Status DEVELOPED
Released RELEASED

Package Description

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

Additional Links

Maintainers

  • Vladimir Ermakov

Authors

  • Vladimir Ermakov
README

MAVROS

MAVLink extendable communication node for ROS with proxy for Ground Control Station (e.g. QGroundControl).

ROS API documentation moved to wiki.ros.org.

Features

  • Communication with autopilot via serial port, UDP or TCP (e.g. PX4 Pro or ArduPilot)
  • Internal proxy for Ground Control Station (serial, UDP, TCP)
  • mavlink_ros compatible ROS topics (Mavlink.msg)
  • Plugin system for ROS-MAVLink translation
  • Parameter manipulation tool
  • Waypoint manipulation tool
  • PX4Flow support (by mavros_extras)
  • OFFBOARD mode support.

Limitations

Only for linux. Depends on Boost library >= 1.46 (hydro on 12.04). Catkin build system required (tested with ROS Hydro Medusa, Indigo Igloo and Jade Turtle).

This package are dependent on ros-*-mavlink build from mavlink-gbp-release. Since 2014-06-19 it exists in Hydro and Indigo package index (so you can install via rosdep). Since 2015-02-25 exists for Jade too.

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 boroadcast: 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]

Note:

  • Ids from URL overrides value given by system_id & component_id parameters.
  • bind_host - default 0.0.0.0 - i.e. IP4 ANY
  • UDP default ports: 14555 @ 14550
  • UDP remote address updated every time with incoming packet on bind port.
  • TCP default port: 5760

Coordinate frames

MAVROS does translate Aerospace NED frames, used in FCUs to ROS ENU frames and vice-versa. For translate airframe related data we simply apply rotation 180° abount ROLL (X) axis. For local we apply 180° about ROLL (X) and 90° about YAW (Z) axes. Plase read documents from issue #473 for additional information.

All the conversions are handled in src/lib/uas_frame_conversions.cpp and src/lib/uas_quaternion_utils.cpp and tested in test/test_frame_conversions.cpp and test/test_quaternion_utils.cpp respectively.

Related issues: #49 (outdated), #216 (outdated), #317 (outdated), #319 (outdated), #321 (outdated), #473. Documents: Frame Conversions, Mavlink coordinate frames.

Programs

mavros_node -- main communication node

Main node. Allow disable GCS proxy by setting empty URL.

Run example (autopilot connected via USB at 921600 baud, GCS running on the host with IP 172.16.254.1):

rosrun mavros mavros_node _fcu_url:=/dev/ttyACM0:921600 _gcs_url:=udp://@172.16.254.1

gcs_bridge -- additional proxy

Allows you to add a channel for GCS. For example if you need to connect one GCS for HIL and the second on the tablet.

Example (SITL & QGroundControl):

rosrun mavros mavros_node _gcs_url:='udp://:14556@172.16.254.129:14551' &
rosrun mavros gcs_bridge _gcs_url:='udp://@172.16.254.129'

Launch Files

Launch files are provided for use with common FCUs, in particular Pixhawk:

  • px4.launch -- for use with the PX4 Pro flight stack (for VTOL, multicopters and planes)
  • apm.launch -- for use with APM flight stacks (e.g., all versions of ArduPlane, ArduCopter, etc)

Examples:

roslaunch mavros px4.launch 
roslaunch mavros apm.launch fcu_url:=tcp://localhost gcs_url:=udp://@

Installation

Binary installation (debian)

Since v0.5 that programs available in precompiled debian packages for x86 and amd64 (x86_64). Also v0.9+ exists in ARMv7 repo for Ubuntu armhf. Just use apt-get for installation:

sudo apt-get install ros-jade-mavros ros-jade-mavros-extras

Source installation

Use wstool utility for retriving sources and catkin tool for build.

sudo apt-get install python-catkin-tools python-rosinstall-generator

# 1. unneded if you already has workspace
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
wstool init src

# 2. get source (upstream - released)
rosinstall_generator --upstream mavros | tee /tmp/mavros.rosinstall
# alternative: latest source
rosinstall_generator --upstream-development mavros | tee /tmp/mavros.rosinstall

# 3. latest released mavlink package
# you may run from this line to update ros-*-mavlink package
rosinstall_generator mavlink | tee -a /tmp/mavros.rosinstall
# alternative: to build master on Indigo or Jade:
rosinstall_generator --rosdistro kinetic --upstream mavlink | tee -a /tmp/mavros.rosinstall

# 4. workspace & deps
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro jade -y

# 5. finally - build
catkin build

Build error. if you has error with missing mavlink* then you need fresh mavlink package. You may update from ros-shadow-fixed (binary installation) or redo script from step 3.

Note. Since MAVLink 2.0 merged all dialects supported by same binary. Unfortunately overlap of v1.0 message ID's not fully handled, fisrt loaded message forbid futher changes. Load order always:

  1. common
  2. ardupilotmega
  3. alphabetical ordered list
  4. ...

Note: MAVLINK_DIALECT not used anymore.

Contributing

  1. Fork the repo: fork
  2. Clone the repo (git clone https://github.com/mavlink/mavros.git);
  3. Create a remote connection to your repo (git remote add <remote_repo> git@github.com:<YourGitUser>/mavros.git);
  4. Create a feature/dev branch (git checkout -b <feature_branch>);
  5. Add the changes;
  6. Apply the changes by commiting (git commit -m "<message>" or git commit -a and then write message; if adding new files: git add <path/to/file.ext>);
  7. Check code style uncrustify -c ${ROS_WORKSPACE}/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>;
  8. Fix small code style errors and typos;
  9. Commit with description like "uncrustify" or "code style fix". Please avoid changes in program logic (separate commit are better than mix of style and bug fix);
  10. Run tests:
    • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
    • with catkin tools, issue catkin run_tests;
  11. If everything goes as planned, push the changes (git push -u <remote_repo> <feature_branch>) and issue a pull request.

Glossary

  • GCS — Ground Control Station
  • FCU — Flight Control Unit (aka FC)
  • OBC — OnBoard Computer (your odroid or raspberry)
  • MAVLink -- communication protocol
  • mavlink_ros -- original ROS node (few messages, no proxy)
  • Pixhawk -- Reference hardware platform
  • PX4 -- Reference implementation in the academic community
  • ArduPilot -- tested autopilot APM:Plane (default command set)
  • QGroundControl -- tested ground control station for Android, iOS, Mac OS, Linux and Windows
  • mavros_extras -- extra plugins & node for mavros
CHANGELOG

Changelog for package mavros

0.18.2 (2016-06-30)

  • plugin:sys_status: Fix STATUSTEXT log prefix
  • Contributors: Vladimir Ermakov

0.18.1 (2016-06-24)

  • lib: Fix base mode flag check
  • plugins: Move pluginlib macros.h to tail
  • plugin:param fix #559: Ignore PX4 _HASH_CHECK param
  • Contributors: Vladimir Ermakov

0.18.0 (2016-06-23)

  • lib #439: MAV_CMD to_string is not required.
  • plugin:sys_status #458: Hanlde BATTERY_STATUS (PX4)
  • plugin:sys_status fix #458: Use sensor_msgs/BatteryState message. Minimal data, for all other need to handle BATTERY_STATUS.
  • plugin:command fix #561: PX4 now sends COMMAND_ACK. And like APM do not check confirmation field. :)
  • readme #544: add udp-b://@ URL
  • plugin:hil_controls: Update plugin API
  • Merge branch 'feature/hil_controls_plugin' of https://github.com/pvechersky/mavros into pvechersky-feature/hil_controls_plugin * 'feature/hil_controls_plugin' of https://github.com/pvechersky/mavros: Adding anchor to the HIL_CONTROLS message reference link Ran uncrustify on hil_controls plugin Utilizing synchronise_stamp and adding reference to MAVLINK msg documentation Added a plugin that publishes HIL_CONTROLS as ROS messages
  • node: fix subscription message type checks
  • plugin: use mavlink::to_string() for std::array<char, N>
  • readme: update CI, no more MAVLINK_DIALECT
  • plugin:waypoint: Fix target id's on MISSION_ITEM
  • node: Add ~fcu_protocol parameter
  • Ran uncrustify on hil_controls plugin
  • Utilizing synchronise_stamp and adding reference to MAVLINK msg documentation
  • node: set gcs_url on internal GCS bridge diag hardware Id
  • plugins: Use UAS::msg_set_target()
  • Added a plugin that publishes HIL_CONTROLS as ROS messages
  • lib: PX4 add AUTO.FOLLOW_TARGET
  • mavros: Update tests
  • extras: Update UAS
  • UAS: Update plugins for FTF module
  • UAS: move enum stringify functions
  • lib: Generate MAV_SENSOR_ORIENTATION
  • UAS: move MAV_SENSOR_ORIENTATION out
  • UAS: Move transformation utilities to ftf module
  • plugin:rc_io: Fix log printf-format warning
  • make GCC 4.8 happy. (travis)
  • gcs_bridge: done
  • param:ftp: Update API
  • plugin:param: Works. Tested on APM
  • plugin:param: Update, almost work
  • plugin:waypoint: Fix Item - ROS binding
  • Message type mismatch code do not work
  • plugin:waypoint: Update API
  • plugin:sys_time: Update API
  • plugin:sys_status: Update API
  • plugin:setpoint_raw: Update API
  • plugin:setpoint_attitude: Update API
  • plugin:setpoint_accel: Update API
  • plugin:setpoint_velocity: Update API
  • plugin:setpoint_position: Update API
  • plugin:vfr_hud: Update API
  • plugin:safety_area: Update API
  • plugin:rc_io: Update API
  • plugin:manual_control: Update API, fix uas init
  • plugin:local_position: Update API
  • plugin:imu_pub: Update API
  • plugin:global_position: Update API
  • mavros: make_handle() this shouldn't be const
  • plugin:common: Update API
  • plugin:altitude: uncrustify
  • plugins: Rutine sed + fix misprint
  • plugin:altitude: Update API
  • plugins: Automatic replacement of routine API changes (sed)
  • plugin:actuator_control: Update API
  • plugin:3dr_radio: Update API
  • node: Update plugin loading and message routing
  • node: type_info -> SIGSEGV
  • node: prepare new plugin loading
  • node: Rename plugib base class - API incompatible to old class
  • labmavconn: finding sigsegv
  • Contributors: Pavel, Vladimir Ermakov

0.17.3 (2016-05-20)

  • libmavconn #543: support build with mavlink 2.0 capable mavgen
  • node: Remove warning about MAVLINK_VERSION redefine
  • Fix bug with orientation in setpoint_raw plugin Fixes a bug where the ned_desired_orientation was not actually passed into set_attitude_target. Instead, the desired_orientation (wrong frame) was passed.
  • Contributors: Justin Thomas, Vladimir Ermakov

0.17.2 (2016-04-29)

  • Update README.md
  • Update README.md Updated / completed examples.
  • Update README.md
  • Fix for kinetic std::isnan.
  • Contributors: James Goppert, Lorenz Meier

0.17.1 (2016-03-28)

0.17.0 (2016-02-09)

  • update README
  • rebased with master
  • Fixed ROS_BREAK
  • Updates for ROS_BREAK and code style
  • Nitpicks and uncrustify
  • Updated frame transformations and added odom publisher to local position plugin
  • Contributors: Eddy, Vladimir Ermakov, francois

0.16.6 (2016-02-04)

  • node fix #494: Report FCU firmware type in rosonsole log
  • scripts fix #478: Remove guided_enable garbage. I'm missed this when do #407.
  • Contributors: Vladimir Ermakov

0.16.5 (2016-01-11)

0.16.4 (2015-12-14)

  • scripts: checkid: be always verbose, add --follow
  • scripts: fix copyright indent
  • scripts: mavcmd: Fix bug: param7 not passed to service call!
  • scripts #382: Add ID checker script. It is not complete, but i hope it helps in current state.
  • scripts: mavcmd: Add support for broadcast requests
  • event_launcher: fix bug: Trigger service server is not saved in Launcher Also fixes: environment variables may contain ~ (user dir) in expansion.
  • using timestamp from mavlink message
  • Update mavlink message documentation links
  • lib: update MAV_TYPE stringify
  • lib: Add RATTITUDE PX4 mode
  • remove "altitude_" prefix from members
  • updated copyright
  • implemented altitude plugin
  • Contributors: Andreas Antener, Vladimir Ermakov

0.16.3 (2015-11-19)

  • use safe methods to get imu data in local_position plugin
  • Contributors: Andreas Antener

0.16.2 (2015-11-17)

  • transform yaw and yaw rate from enu to ned
  • Contributors: Andreas Antener

0.16.1 (2015-11-13)

  • python: fix import error of goto service
  • don't warn anymore about px4 not supporting rc_io
  • Contributors: Andreas Antener, Vladimir Ermakov

0.16.0 (2015-11-09)

  • lib: Update ArduCopter mode list
  • plugin: sys_status #423: set_mode set arming and HIL flags based on previous state
  • lib #423: Save base_mode in UAS.
  • Finalized local position topic names
  • readme: add link to catkin-tools docs
  • readme #409: merge mavlink and mavros installation instruction
  • Fixed redundant rotation of IMU data and redundant orientation data
  • plugin: setpoint_raw fix #418: add attitude raw setpoint Related #402.
  • Added velocity output of FCU's local position estimate to ROS node
  • plugin: sys_status fix #417: remove APM statustext quirk
  • plugin: waypoint fix #414: remove GOTO service. It is replaced with more standard global setpoint messages.
  • plugin: setpoint_raw fix #415: add global position target support Related to #402.
  • plugin: command fix #407: remove guided_enable sevice
  • plugin: setpoint_raw #402: implement loopback.
  • plugin: setpoint_raw #402: Initial import.
  • readme fix #410: use only catkin tool
  • readme: add defaults for URL
  • pass new extended state to ros
  • python: add util to convert pymavlink message to Mavlink.msg
  • python: convert input to bytearray
  • python: add payload convertion util
  • gcs_bridge #394: enable both UDPROS and TCPROS transports
  • EL: add try-except on handlers
  • event_launcher: show logfile path
  • event_launcher #386: expand shell vars for logfile
  • Mavros library depends on mavros_msgs headers Adding this dependency makes sure that mavros_msgs message headers are generated before the mavros library is built, since it needs those headers.
  • Contributors: Andreas Antener, Eddy, Jon Binney, Vladimir Ermakov

0.15.0 (2015-09-17)

  • lib: fix timesync uninit bug. Uninitialized variable caused wrong timestamps with APM.
  • python #286: use checksum - save ticks
  • script #385: output to log-file
  • script #385: remove RosrunHandler and RoslaunchHandler
  • script #385: attempt to implement rosrun fails. ROSLaunch class wants all node operations from main thread. That is not possible.
  • script #385: fix shell-killer, but logging are broken and removed
  • script #385: shell-launcher now works!
  • script #385: add example configuration
  • script #385: shell handler done. next - rosparam handling
  • script #385: starting work on simple shell launcher
  • scripts: starting event_launcher
  • python: Remove unneded slice operation. Fix copyright year. list[:len(list)] is equal to list, but creates new list with data from that slice.
  • updated mavlink byte buffer conversion
  • plugin: manual_control: Use shared pointer message Fix alphabetic order of msgs.
  • python: add helper for converting mavros_msgs/Mavlink to pymavlink
  • Add MANUAL_CONTROL handling with new plugin
  • Contributors: Andreas Antener, Vladimir Ermakov, v01d

0.14.2 (2015-08-20)

0.14.1 (2015-08-19)

  • package: Fix depend on rosconsole-bridge
  • Removed <remap>
  • Contributors: Vladimir Ermakov, devbharat

0.14.0 (2015-08-17)

  • python: call of mavros.set_namespace() is required.
  • scripts: mavftp fix #357: add verify command
  • scripts: mavftp #357: progressbar on download operation
  • scripts: mavftp #357: progress bar for upload operation.
  • scripts: mavftp: New command cd. All path arguments now may handle relative paths.
  • readme: fix frame tansform section
  • mavros: readme: update info on frame conversions
  • mavros: readme: update contribution steps
  • node: Replace deprecated copy functions. Also allow mavlink to & from topics to be namespaced.
  • extras: scripts: use API from mavros module
  • scripts: fix for new message location
  • python: update mavros lib to new message location
  • package: remove not exist dependency
  • plugin: waypoint: Fix message include
  • plugin: vfr_hud: Fix message include
  • plugin: rc_io: Fix message include
  • plugin: param: Fix message include
  • plugin: ftp: Fix message include
  • plugin: sys_status: Fix message include
  • plugin: command: Fix message include
  • plugin: 3dr_radio: Fix message include
  • plugin: actuator_control: Fix message include.
  • msgs: update copyright year
  • msgs: deprecate mavros::Mavlink and copy utils.
  • msgs: change description, make catkin lint happy
  • msgs #354: move all messages to mavros_msgs package.
  • Minor typo fix.
  • node: increase diag timer to 2 Hz
  • node: move diagnostic to AsyncSpinner threads.
  • Contributors: TSC21, Tony Baltovski, Vladimir Ermakov

0.13.1 (2015-08-05)

  • lib #358: cleanup. Replace UAS::getYaw() with UAS::quaternion_get_yaw().
  • lib #358: found correct getYaw(). Test for each degrees in -180..180.
  • test #358: test more different angles. Compare rotation result.
  • lib #358: try to implement algo from wikipedia.
  • lib #358: still failing. add recursive test for range -Pi..+Pi
  • lib #358: try solve issue using older eulerAngles()
  • lib #358: remove to_rpy test
  • Merge branch 'master' of github.com:mavlink/mavros * 'master' of github.com:mavlink/mavros: global_position: move relative_alt and compass_heading init back add nav_msgs to dependencies so to make Travis happy global_position: update pose and twist to odom msg
  • test fix #359: split out quaternion tests.
  • lib #359: move quaternion utils.
  • global_position: move relative_alt and compass_heading init back
  • add nav_msgs to dependencies so to make Travis happy
  • global_position: update pose and twist to odom msg
  • test #358: add tests for negative values and quaternion_to_rpy tf2 compatibility check Tests now fails!
  • sctipts: fix gps topic path
  • lib: fix input validation in UAS::orientation_from_str()
  • test: add case for num str->sensor orientation
  • package: fix CHANGELOG.rst
  • Contributors: TSC21, Vladimir Ermakov

0.13.0 (2015-08-01)

  • plugin: setpoint_attitude #352: use new helper.
  • plugin: sys: Fix cppcheck and YouCompleteMe warnings
  • plugin: ftp: Fix cppcheck errors.
  • lib #352: Add helper function UAS::quaternion_to_mavlink()
  • Fixed bug in send_attitude_target() The transformed quaternion wasn't being passed to set_attitude_target(), resulting in an incorrect attitude setpoint. I've now fixed this issue.
  • scripts: fix mavwp
  • test: add test cases for new sensor orientation functions
  • remove tf1 dep
  • lib #319: Remove TF types from UAS
  • plugin: param: new message type: ParamValue
  • msgs: Move MAV_CMD values to separate msg
  • plugin: command: fix build
  • fix whitespaces in python scripts
  • Merge pull request #312 from mhkabir/cam_imu_sync Camera IMU synchronisation support added
  • Added launch file for PX4 posix sitl to launch gcs_bridge node for bridging posix and gazebo
  • scripts: mavftp: little speed up by aligning access to payload length
  • launch: Add optional log_output arg
  • Merge branch 'orientation_enum_name' * orientation_enum_name: distance_sensor #342: correct orientation parameter handling. lib #342: try to convert numeric value too px4_config: adapt to distance_sensor params to new features distance_sensor: restructure orientation matching and verification lib #342: Added sensor orientation string repr.
  • lib #342: try to convert numeric value too
  • px4_config: adapt to distance_sensor params to new features
  • lib #342: Added sensor orientation string repr.
  • launch: update local_position conf
  • test: Add test for UAS::sensor_orientation_matching()
  • Update cmake Eigen3 finding rules. Migration described at: http://wiki.ros.org/jade/Migration#Eigen_CMake_Module_in_cmake_modules
  • lib #319, #341: preparation for str->MAV_SENSOR_ORIENTATION func
  • lib #319: Return quaternion from UAS::sensor_matching()
  • lib: Remove unneded NodeHandle
  • launch fix #340: update default component id of PX4.
  • plugin: sys_status: Add fallback to adressed version request.
  • Can not remove tf package before #319 is done. tf::Vector3 and other tf1-bullet still in use.
  • plugin: sys_status: Use broadcast for version request.
  • fix #71: replace depend tf to tf2_ros.
  • plugin: Use UAS::syncronized_header() for reduce LOC.
  • lib #319: use similar names for covariances as eigen vector
  • lib #319: transform_frame() for Covariance3x3
  • lib #319: remove unused bullet based transform_frame()
  • extras: vision_pose #71: Use TF2 listener. Also #319.
  • plugin #71: Implement TF2 listener. Change param names. Breaks extras.
  • uas #71: Use single TF2 objects for broadcasting and subscription.
  • launch: Update configs.
  • lib: Add UAS::quaternion_to_rpy()
  • plugin: safety_area #319: Change transform_frame()
  • plugin: local_position #71 #319: port to TF2 and Eigen
  • lib: Add UAS::synchonized_header()
  • plugin: command: Add command broadcasting support.
  • Perform the autopilot version request as broadcast
  • lib: Update PX4 mode list
  • plugin: global_position #325: port tf broadcaster to tf2 Also #71.
  • plugin: global_position #325: reenable UTM calc
  • plugin: gps #325: remove gps plugin.
  • plugin: global_position #325: merge gps_raw_int handler
  • plugin: setpoint_accel #319: use eigen frame transform. I don't think that PX4 support any other frame than LOCAL_NED. So i removed comment. Also style fix in setpoint_velocity.
  • plugin: setpoint_velocity #319: use eigen based frame transform.
  • plugin: setpoint_position #273: remove PX4 quirk, it is fixed.
  • plugin: ftp: Update command enum.
  • plugin: imu_pub fix #320: move constants outside class, else runtime linkage error.
  • plugin: imu_pub #320: first attempt
  • eigen #319: handy wrappers.
  • eigen #319: add euler-quat function. Also #321.
  • test #321: remove duplicated test cases, separate by library. Add test for checking compatibility of tf::quaternionFromRPY() and Eigen based math.
  • test #321: testing eigen-based transforms. We should check what convention used by tf::Matrix to be sure that our method is compatible.
  • mavros #319: Add Eigen dependency and cmake rule.
  • test: test for UAS::transform_frame_attitude_rpy() (ERRORs!)
  • test: test for UAS::transform_frame_xyz()
  • test: Initial import test_frame_conv
  • cam_imu_sync : fix running
  • imu_cam_sync : fix formatting
  • command handling in mavcmd for camera trigger
  • Camera IMU synchronisation support added
  • Contributors: Anurag Makineni, Lorenz Meier, Mohammed Kabir, TSC21, Vladimir Ermakov, devbharat

0.12.0 (2015-07-01)

  • plugin: sys_time, sys_status #266: check that rate is zero
  • test #321: disable tests for broken transforms.
  • lib #321: frame transform are broken. again! revert old math. RULE for me: do not accept patch without wide testing from author. That PR changes all plugins code, instead of do API, test and only after that touching working code. My bad.
  • unittest: added 6x6 Covariance conversion test
  • frame_conversions: update comments; filter covariance by value of element 0
  • unittests: corrected outputs from conversion tests
  • test: other quaternion transform tests
  • test: UAS::transform_frame_attitude_q()
  • test: test for UAS::transform_frame_attitude_rpy() (ERRORs!)
  • test: test for UAS::transform_frame_xyz()
  • test: Initial import test_frame_conv
  • coverity: make them happy
  • uncrustify: fix style on frame conversions
  • uncrustify: includes
  • plugin: sys_status #266: replace period with rate parameter
  • plugin: sys_time #266: Replace period with rate parameters
  • frame_conversion: last fix patch
  • frame_conversions: use inline functions to identify direction of conversion
  • changed frame conversion func name; add 3x3 cov matrix frame conversion; general doxygen comment cleanup
  • frame_conversions: added covariance frame conversion for full pose 6x6 matrix
  • frame_conversions: added frame_conversion specific lib file; applied correct frame conversion between ENU<->NED
  • sys_status #300: PX4 place in [0] lest significant byte of git hash.
  • sys_status fix #300: fix u8->hex func.
  • plugin: waypoint: cosmetics.
  • vibration_plugin: first commit
  • Changes some frames from world to body conversion for NED to ENU.
  • mavsys #293: add --wait option
  • mavsys: Fix arguments help
  • mavcmd #293: Add --wait option. New function: util.wait_fcu_connection(timeout=None) implement wait option.
  • sys_status #300: AUTOPILOT_VERSION APM quirk
  • mavros #302: fix style
  • mavros #302: split UAS impl by function blocks
  • mavros fix #301: move sensor orientation util to UAS
  • distance_sensor: typo; style fixe
  • sensor_orientation: list values correction
  • launch: APM:Plane 3.3.0 now support local_position. Blacklist distance_sensor.
  • sensor_orientation: use MAX as last index macro
  • distance_sensor: changed to usable config
  • launch: APM:Plane 3.3.0 now support local_position. Blacklist distance_sensor.
  • sensor_orientation: updated orientation enum; updated data type
  • sensor_orientation: included array type on utils.h
  • sensor_orientation: added sensor orientation matching helper func
  • distance_sensor: updated config file
  • distance_sensor: define sensor position through param config
  • distance_sensor: array limiting; cast correction; other minor correc
  • distance_sensor: small enhancements
  • sys_status #293: initialize state topic
  • sys_status #293: expose connection flag in mavros/State.
  • Contributors: TSC21, Tony Baltovski, Vladimir Ermakov

0.11.2 (2015-04-26)

  • plugin: param fix #276: add check before reset request downcounter. If on MR request FCU responses param with different param_index do not reset repeat counter to prevent endless loop.
  • gcs bridge fix #277: add link diagnostics
  • plugin: setpoint_position #273: add quirk for PX4.
  • readme: fir glossary misprint
  • readme: add notes about catkin tool
  • Contributors: Vladimir Ermakov

0.11.1 (2015-04-06)

  • scripts #262: update mavwp
  • scripts #262: mavsetp, new module mavros.setpoint
  • mavftpfuse #129: cache file attrs
  • mavparam #262: use get_topic()
  • mavsys #262: use get_topic()
  • mavcmd #262: use get_topic()
  • mavftp #263, #262: use crc32 checksums
  • python #262: add get_topic()
  • Update local_position.cpp removed irritating comment
  • readme: add short glossary
  • plugin: setpoint_attitude: remove unneded ns
  • Contributors: Marcel Stuettgen, Vladimir Ermakov

0.11.0 (2015-03-24)

  • plugin: setpoint_position #247: rename topic
  • launch #257: rename blacklist.yaml to pluginlists.yaml
  • node #257: implement while list.
  • plugin: actuator_control #247: update topic name.
  • mavros: Initialize UAS before connecting plugin routing. Inspired by #256.
  • plugin: sys_status: Check sender id. Inspired by #256.
  • plugin: sys_status: Use WARN severity for unknown levels
  • uas: Add UAS::is_my_target() Inspired by #256.
  • plugin: global_position: Fill status and covariance if no raw_fix. Additional fix for #252.
  • launch: change apm target component id APM uses 1/1 (sys/comp) by default.
  • plugin: sys_status: publish state msg after updating uas Before this commit, the custom mode string published in the state message was computed using the autopilot type from the previous heartbeat message--not the autopilot type from the current hearbeat message. Normally that isn't a problem, but when running a GCS and mavros concurrently, both connected to an FCU that routes mavlink packets (such as APM), then this causes the custom mode to be computed incorrectly, because the mode string for the GCS's hearbeat packet will be computed using the FCU's autopilot type, and the mode string for the FCU's heartbeat packet will be computed using the GCS's autopilot type.
  • plugin: global_position: fix nullptr crash This fixes a crash in cases where a GLOBAL_POSITION_INT message is received before a GPS_RAW_INT message, causing the gps_fix pointer member to be dereferenced before it has been set.
  • msgs: fix spelling, add version rq.
  • coverity: init ctor in 3dr_radio
  • launch fix #249: update apm blacklist
  • launch: rename APM2 to APM.
  • launch #211: update configs
  • plugin: gps: remove unused param
  • plugin: sys_time: remove unused param
  • launch fix #248: remove radio launch
  • plugin: 3dr_radio #248: add/remove diag conditionally
  • plugin: sys_status: move connection params to ns
  • plugin: sys_time: fix #206 (param ns)
  • node: Inform what dialect built-in node
  • plugin: sys_status: Conditionaly add APM diag
  • plugin: sys_status: fix #244
  • uas #244: add enum lookups
  • package: update lic
  • license #242: update mavros headers
  • plugin: local_positon: use auto
  • plugin: imu_pub: Update UAS store.
  • plugin: gps: remove diag class, change UAS storage API.
  • plugin api #241: move diag updater to UAS.
  • plugin api #241: remove global private node handle. Now all plugins should define their local node handle (see dummy.cpp). Also partially does #233 (unmerge setpoint topic namespace).
  • plugin api #241: remove get_name()
  • package: mavros now has any-link proxy, not only UDP
  • Update years. I left gpl header, but it is BSD too.
  • Add BSD license option #220
  • plugin: sys_status: AUTOPILOT_VERSION support. Fix #96.
  • mavros fix #235: Use AsyncSpinner to allow plugins chat. Old single-threaded spinner have a dead-lock if you tried to call a service from for example timer callback. For now i hardcoded thread count (4).
  • uncrustify: actuator_control
  • Merge branch 'master' of github.com:mstuettgen/Mavros
  • fixed missing ;
  • code cosmetics
  • further removed unneeded white spaces and minor code cosmetics
  • fixed timestamp and commented in the not-working function call
  • code cosmetics, removed whitespaces and re-ordered function signatures
  • more code comment cosmetic
  • code comment cosmetic
  • uncrustify: fix style
  • readme: add contributing notes
  • uncrustify: mavros base plugins
  • uncrustify: mavros lib
  • uncrustify: mavros headers
  • tools: add uncrustify cfg for fixing codestyle Actually it different from my codestyle, but much closer than others.
  • added more const to function calls to ensure data consistency
  • modified code to fit new message
  • added group_mix to ActuatorControl.msg and a link to mixing-wiki
  • plugin: rc_io: Add override support warning
  • REALLY added ActuatorControl.msg
  • added ActuatorControl.msg
  • fixed latest compiler error
  • renamed cpp file to actuator_control.cpp and added the new plugin to mavros_plugins.xml
  • removed unneeded Mixinx and reverse_throttle, and unneeded variables in function signatures
  • inital draft for set_actuator_control plugin
  • launch: enable setpoint plugins for APM As of ArduCopter 3.2, APM supports position and velocity setpoints via SET_POSITION_TARGET_LOCAL_NED.
  • plugin: setpoint_velocity: Fix vx setpoint vz should have been vx.
  • Contributors: Clay McClure, Marcel Stuettgen, Vladimir Ermakov

0.10.2 (2015-02-25)

  • Document launch files
  • launch: Fix vim modelines #213
  • launch #210: blacklist image_pub by px4 default. Fix #210.
  • Contributors: Clay McClure, Vladimir Ermakov

0.10.1 (2015-02-02)

  • Fix @mhkabir name in contributors.
  • uas #200: Add APM:Rover custom mode decoding. Fix #200.
  • uas #200: Update APM:Plane and APM:Copter modes.
  • Contributors: Vladimir Ermakov

0.10.0 (2015-01-24)

  • mavros #154: Add IO stats to diagnostics. Fix #154.
  • Add rosindex metadata
  • plugin: ftp: init ctor.
  • plugin: sts_time: Code cleanup and codestyle fix.
  • plugin: command: Quirk for older FCU's (component_id) Older FCU's expect that commands addtessed to MAV_COMP_ID_SYSTEM_CONTROL. Now there parameter: ~cmd/use_comp_id_system_control
  • plugin: rc_io: #185 Use synchronized timestamp.
  • plugin: gps: #185 use synchronized timestamp common.xml tells that GPS_RAW_INT have time_usec stamps.
  • uas: Fix ros timestamp calculation. Issues: #186, #185.
  • plugin: add synchronisation to most plugins (fixed) Closes #186.
  • readme: Add notes about coordinate frame conversions #49
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.9.4 (2015-01-06)

  • plugin: sys_time: enable EMA
  • Contributors: Mohammed Kabir

0.9.3 (2014-12-30)

  • plugin: visualization finshed
  • Restore EMA. Works better for low rates.
  • Update sys_time.cpp
  • plugin : add time offset field to dt_diag
  • Final fixes
  • minor
  • plugin : fixes timesync. FCU support checked.
  • Visualisation system import
  • param: Fix float copying too
  • param: Fix missing
  • param: Trynig to fix 'crosses initialization of XXX' error.
  • param: Try to fix #170.
  • Update units
  • New message, moving average compensation
  • Initial import new sync interface
  • plugin: sys_status: Enable TERRAIN health decoding.
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.9.2 (2014-11-04)

0.9.1 (2014-11-03)

  • Update installation notes for #162
  • Contributors: Vladimir Ermakov

0.9.0 (2014-11-03)

0.8.2 (2014-11-03)

  • REP140: update package.xml format. Hydro don't accept this format correctly, but after split i can update.
  • Contributors: Vladimir Ermakov

0.8.1 (2014-11-02)

  • fix build deps for gcs_bridge
  • mavconn #161: Enable rosconsole bridge.
  • mavconn #161: Move mavconn tests.
  • mavconn #161: Fix headers used in mavros. Add readme.
  • mavconn #161: Fix mavros build.
  • mavconn #161: Move library to its own package Also rosconsole replaced by console_bridge, so now library can be used without ros infrastructure.
  • plugin: sys_time: Set right suffixes to uint64_t constants. Issue #156.
  • plugin: sys_time: Add time syncronization diag. Issue #156.
  • plugin: sys_time: Debug result. Issue #156.
  • plugin: Store time offset in UAS. TODO: implement fcu_time(). Issue #156.
  • plugin: sys_time: Fix code style. Also reduce class variables count (most not used outside the method). Issue #156.
  • Update repo links. Package moved to mavlink organization.
  • Nanosecond fix
  • Fix
  • Fixes
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update CMakeLists.txt
  • Update mavros_plugins.xml
  • Update sys_time.cpp
  • Fix build
  • sys_time import. Removed all time related stuff from gps and sys_status
  • Initial sys_time plugin import
  • plugin: ftp: Bytes written now transfered in payload.
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.8.0 (2014-09-22)

  • plugin: ftp: Disable debugging and change level for some log messages. Issue #128.
  • plugin: ftp: Translate protocol errors to errno. Issue #128.
  • scripts: mavftp: Add upload subcommand. Issue #128.
  • python: Add more ftp utils. Issue #128.
  • plugin: ftp: Fix write offset calculation. Issue #128.
  • plugin: ftp: Add FTP:Checksum. Issue #128.
  • plugin: ftp: Add support for FTP:Rename. Issue #128.
  • python: Add FTP:Truncate
  • plugin: ftp: Add FTP:Truncate call. Issue #128.
  • python: Move common mission classes to mavros.mission module. Issue #157.
  • python: Move useful utils to mavros.param module. Issue #157.
  • python: Move common utils to mavros.utils module. Issue #157.
  • python: Create python module for ftp utils. Issue #128, #157.
  • scripts: ftp: Implement file-like object for IO. Issue #128.
  • plugin: ftp: Implement write file. Issue #128.
  • scripts: mavftp: Add remove subcommand. Issue #128.
  • plugin: ftp: Add FTP:Remove call. Issue #128.
  • plugin: ftp: Add response errno from server.
  • plugin: ftp: Add support for 'Skip' list entries. Issue #128.
  • scripts: mavftp: Add mkdir/rmdir support. Issue #128.
  • plugin: ftp: Add mkdir/rmdir support. Issue #128.
  • plugins: ftp: Update protocol headers. Issue #128.
  • Revert "Update package.xml format to REP140 (2)." This reverts commit 81286eb84090a95759591cfab89dd9718ff35b7e. ROS Hydro don't fully support REP140: rospack can't find plugin descriptions. Fix #151.
  • scripts: mavwp: Fix --follow mode
  • plugin: imu_pub: Fix RAW_IMU/SCALED_IMU angular scale constant. Fix #152.
  • launch: remove px4_local_gcs.launch again. It removed in 826be386938c2735c9dab72283ba4ac1c68dc860, but accidentally returned.
  • extras: launch: Use includes. Fix #144.
  • launch: PX4: use node.launch in PX4 scripts. Also remove px4_local_gcs.launch: please use roslaunch mavros px4.launch gcs_url:=udp://@localhost instead. Issue #144.
  • launch: APM2: Add node.launch and update apm scripts to use it. Issue #144.
  • plugin: command: Fix CommandInt x,y types.
  • Update package.xml format to REP140 (2). Fix #104.
  • launch: Blacklist FTP for APM.
  • scripts: mavwp: Add decoding for some DO-* mission items.
  • scripts: mavwp: Add preserve home location option at load operation. Useful if FCU stores home location in WP0 (APM).
  • Added src location.
  • Updated README wstool instructions.
  • plugin: ftp: Init ctor
  • service: mavftp: Initial import. Issue #128.
  • plugin: ftp: Implemnet reset call. Sometimes kCmdReset can restore normal operation, but it might be dangerous. Issue #128.
  • plugin: ftp: Implement FTP:Read call. Issue #128.
  • plugin: ftp: Fix open error. Issue #128.
  • plugin: ftp: Implement FTP:Open (read) and FTP:Close. Issue #128.
  • plugin: ftp: Implement FTP:List method. Issue #128.
  • plugin: ftp: Implement list parsing Issue #128.
  • plugin: ftp: Fix CRC32 calculation. Issue #128.
  • plugin: ftp: Add plugin skeleton. Based on QGroundContol QGCUASFileManager.h/cc. Issue #128.
  • plugin: ftp: Add size info
  • plugin: ftp: Add plugin service API. Issue #128.
  • plugin: vfr_hud: Initial import. Also this plugin publish APM specific WIND estimation message. Fix #86.
  • node: coverity fails at UAS initilizer list
  • plugin: setpoint_attitude: Init ctor, remove code dup.
  • cmake: Add check MAVLINK_DIALECT value Fix #139.
  • Move common cmake rules to modules. Same mech as in cmake_modules package. Issue #139.
  • launch: corrected launch for gcs bridge
  • scripts: mavsetp: Fix misprint.
  • launch files: added px4 launch files for connection with radio and gcs
  • scripts: mavsetp: Fix twist.angular vector construction. Small style fix.
  • Update doxygen documentation. Add split lines in UAS, and make UAS.connection atomic. Add rosdoc configuration for mavros_extras.
  • scripts: mavsetp: corrected API; added possibility of parse angles in dg or rad
  • scripts: mavsetp: corrected msg API; mavteleop: added prefix to rc override
  • scripts: mavsetp: added local accel; corrected how the OFFBOARD mode is swtch.
  • scripts: mavsetp: changed the way offboard mode is switched
  • node: init ctor (coverity)
  • nodelib: add std::array header
  • return msg generator deps for mavconn
  • scripts: mavsys: Implement set rate command.
  • scripts: Add mavsys tool. Implented only mode operation. Issue #134.
  • plugin: sys_status: Implement set_mode service. Previous command shortcut removed. Issue #136, #134.
  • node: Implement reverse mode lookup. Issue #136.
  • plugin: sys_status: Move custom mode decoder to UAS. Issue #136.
  • node: Catch URL open exception. Also update connection pointer type.
  • nodelib: move sources to subdir
  • node: Move UAS to mavros namespace
  • node: Move node code to library.
  • node: Catch DeviceError; use C++11 foreach shugar.
  • plugin: command: Add COMMAND_INT suport. Fix #98.
  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov

0.7.1 (2014-08-25)

  • plugins: setpoint: Update SET_POSITION_TARGET_LOCAL_NED message. Fix #131.
  • scripts: mavsetp: Enable OFFBOARD mode. Issue #126.
  • plugin: command: Add guided_enable shortcut It enable PX4 OFFBOARD mode. Issue #126.
  • scripts: Add mavsetp script. Only local setpoint for now. Issue #126.
  • plugins: Change UAS FCU link name. Reduce smart pointer count, that hold fcu link object.
  • scripts: mavcmd: Add takeoffcur and landcur commands Fix #91, #92. Inspired by #125.
  • Closes #122, closes #123; plugins: move mocap & vision plugins to extras, change vision plugins name
  • plugins: UAS remove std::atomic<double> It don't work at some compilers. Issue #89.
  • plugin: global_position: Fill NavSatFix status filed. Issue #87, #118.
  • plugins: Add GPS data to UAS
  • plugins: Move setpoint_mixin.h Fix #120.
  • plugin: mocap: Fix load. Issue #121.
  • plugins: global_position: get pose orientation from the one stored in uas
  • plugins: global_position: use relative_alt on position.z; mavros_plugins.xml - corrected declaration of mocap_pose_estimate
  • plugin - global_position - changed parameter path / orientation source
  • launch: APM2 blacklist global_position plugin
  • plugin: global_position: Unit unification.
  • plugin: global_position: Move heaedr; Style fix.
  • added rel_pos and compass_hdg pub; minor corrections
  • Merge branch 'master' of https://github.com/vooon/mavros into global_position
  • global_position plugin - initial commit
  • launch: APM2 blacklist mocap plugin.
  • Updated mavros_plugins.xml
  • Fixed dual sources error warning.
  • Fixed styles.
  • Minor changes.
  • added time stamp to received msgs
  • Removed un-needed times.
  • Added mocap_pose_estimate plugin.
  • Code style update
  • setpoint attitude change - warning message
  • Update on setpoint_attitude plugin

    • changed Twist to TwistStamped
    • added reverse_throttle option for throttle control
    • use cmd_vel as the same topic to control linear a angular velocities (it's commonly used by controllers)

    * added normalization filter to thrust

  • node: Remove deprecated conn parameters. Fix #108

  • plugin: vision_speed: Update plugin API.

  • plugin: setpoint_attitude: Update plugin API.

  • plugin: setpoint_accel: Update plugin API.

  • plugin: setpoint_velocity: Update plugin API.

  • plugin: 3dr_radio: Update plugin API.

  • plugin: safety_area: Update plugin API.

  • plugin: setpoint_position: Update plugin API.

  • plugin: vision_position: Update plugin API.

  • plugin: local_position: Update plugin API.

  • plugin: command: Update plugin API.

  • plugin: rc_io: Update plugin API.

  • plugin: waypoint: Update plugin API.

  • plugin: param: Update plugin API.

  • plugin: gps: Update plugin API.

  • plugin: imu_pub: Update plugin API.

  • plugin: sys_status: Update plugin API.

  • plugin: Update plugin API.

  • plugins: disable most of plugins

  • plugin: setpoint_attitude: Add thrust topic. Fix #106.

  • Fix URLs in readme

  • mavros -> ros-message parameter fix only parameter1 was forwarded into the ros message

  • Switch travis to pixhawk dialect. Default dialect build by ros buildfarm. Also remove duplicate ci statuses from mavros readme.

  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov, mthz

0.7.0 (2014-08-11)

  • Add package index readme, Fix #101
  • move mavros to subdirectory, #101
  • Merge branch 'master' of github.com:vooon/mavros * 'master' of github.com:vooon/mavros: Add link to ros-*-mavlink package wiki page.
  • plugins: setpoint: Update setpoint message name. Issue #94, Fix #97.
  • plugin: setpoint_attitude: Update message name. Issues #94, #97.
  • Add link to ros-*-mavlink package wiki page.
  • plugin: gps: Fix gcc 4.6 build (atomic). Not recommended to use std::atomic with gcc 4.6. So i limited to prederined atomics for simple types like int, float etc.
  • plugin: sys_status: Implement PX4 mode decoding. Fix #84.
  • plugin: gps: Add EPH & EPV to diagnostic. Issue #95
  • plugin: gps: Move message processing to individual handlers. Issue #95.
  • plugin: rc_io: Replace override service with topic. (ROS API change). Fix #93.
  • Add dialect selection notes
  • plugins: Change severity for param & wp done messages.
  • plugins: Store raw autopilot & mav type values. This may fix or not issue #89.
  • plugins: init ctor (coverity)
  • plugin: imu_pub: Add ATTITUDE_QUATERNION support. Also reduce copy-paste and use mode readable bitmask check. Fix #85.
  • scriptis: mavcmd: Spelling
  • scripits: Add mavcmd tool
  • Add links to mavros_extras
  • param: sys_status: Option to disable diagnostics (except heartbeat)
  • plugin: command: Add takeoff and land aliases. Issue #68.
  • plugin: command: Add quirk for PX4. Fix #82.
  • plugin: Add UAS.is_px4() helper. Replace some locks with atomic. Issue #82.
  • launch: Clear PX4 blacklist. Issue #68.
  • launch: Add target ids. Also fix PX4 wrong ?ids usage (it set mavros ids, not target). Issue #68.
  • plugin: imu_pub: Fix HRIMU pressure calc. 1 mBar is 100 Pa. Fix #79.
  • plugins: C++11 chrono want time by ref, return *_DT Fix #80.
  • plugins: Replace boost threads with C++11. And remove boost thread library from build rules. Issue #80.
  • plugins: Replace Boost condition variables with C++11 Issue #80.
  • plugins: Replace boost mutexes with C++11. Issue #80.
  • travis clang to old, fails on boost signals2 library. disable.
  • travis: enable clang build.
  • node: Make project buildable by clang. Clang produce more readable errors and provide some static code analysis, so i want ability to build mavros with that compilator.
  • plugins: replace initial memset with c++ initializer list
  • launch: PX4 default ids=1,50. Also waypoint plugin works (with first_pos_control_flight-5273-gd3d5aa9). Issue #68.
  • launch: Use connection URL
  • plugin: vision_speed: Initial import. Fix #67.
  • plugin: sys_status: Add SYSTEM_TIME sync send. Fix #78.
  • plugin: sys_status: Decode sensor health field. Fix #75.
  • Add ci badges to readme
  • plugin: param: erase invalidates iterator. Real error found by coverity :)
  • plugins: Init ctor
  • plugins: Add ctor initialization. Coverity recommends init all data members.
  • test: trying travis-ci && coverity integration. Real ci doing by ros buildfarm.
  • plugins: Fix clang-check errors.
  • test: Add tcp client reconnect test. Issue #72.
  • test: Split open_url test to individual tests. Also removed tcp client deletion on close, heisenbug here. Issue #72.
  • mavconn: Emit port_closed after thread stop. Also use tx state flag, improve error messages and move io post out of critical section. Issue #72.
  • mavconn: Fix TCP server client deletion. Issue #72.
  • test: Remove not needed sleep.
  • mavconn: Remove new MsgBuffer dup. Message drop if closed. Issue #72.
  • mavconn: Fix TCP server. Issue #72.
  • launch: APM2: Blacklist extras.
  • mavconn: Add mutex to channel allocation.
  • mavconn: Fix TCP server for gcc 4.6 Fix #74.
  • Remove libev from package. Issue #72.
  • mavconn: GCC 4.6 does not support typedef like using. Issue #74.
  • Merge pull request #73 from vooon/mavconn-revert-asio mavconn: Revert to Boost.ASIO
  • mavconn: Cleanup boost threads. I will use C++11 standard libs. Issue #72.
  • mavconn: Remove libev default loop thread. Issue #72.
  • mavconn: Port MAVConnTCPServer to Boost.ASIO. TCP send test fails. Issue #72.
  • mavconn: Port MAVConnTCPClient to Boost.ASIO. Also it disables MAVConnTCPServer before i rewrite it. Issue #72.
  • mavconn: Revert MAConnSerial back to Boost.ASIO. Issue #72.
  • test: Fix send_message tests. Use C++11. Issue #72.
  • mavconn: Revert MAVConnUDP back to Boost.ASIO. Also starting to change boost threads and mutexes to C++11. Issue #72.
  • test: Enable send tests. Issue #72.
  • test: And hand test for mavconn hangs. Issue #72.
  • node: Remove anonimous flag from gcs_bridge. Rename node if you want start several copies.
  • install: Remove duplicate
  • node: Fix mavros_node termination message. Issue #58.
  • node: Use URL in mavros_node. Fix #58.
  • node: Use URL in gcs_bridge. Issue #58.
  • node: Rename ros_udp to gcs_bridge. Because now it's not UDP only. Issue #58.
  • Cleanup boost components
  • mavconn: Implement URL parsing. Supported shemas:

    • 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]
    • TCP client: tcp://[server_host][:port][/?ids=sysid,compid]

    * TCP server: tcp-l://[bind_port][:port][/?ids=sysid,compid] Note: ids from URL overrides ids given to open_url(). Issue #58.

  • test: Add tests for UDP, TCP, SERIAL. Send message testa are broken, need to find workaround. Fix #70.

  • plugin: vision_position: Add transform timestamp check. Issue #60.

  • mavconn: Implement TCP server mode. Fix #57.

  • mavconn: Initial support for TCP client mode. Issue #57.

  • mavconn: Boost::asio cleanup.

  • plugin: Remove TimerService from UAS. Fix #59.

  • plugin: param: Add state check to sheduled pull.

  • mavparam: Add force pull.

  • plugin: param: Use ros::Timer for timeouts Also new option for force pull parameters from FCU instead of cache. Fix #59.

  • Add mavsafety info to README.

  • launch: Add apm2_radio.launch (for use with 3DR Radio)

  • plugin: 3dr_radio: Fix build error. Issue #62.

  • plugin: 3dr_radio: Publish status data for rqt_plot Also tested with SiK 1.7. Fix #62.

  • plugin: setpoint_attitude: Fix ENU->NED conversion. Fix #64. Related #33, #49.

  • launch: Add setpoint plugins to APM2 blacklist

  • plugin: setpoint_attitude: Initial import. XXX: need frame conversion #49. Issue #33, #64.

  • plugin: Move common tf code to mixin. Remove copy-paste tf_listener. Issue #33.

  • plugin: setpoint_position: Generalize topic NS with other setpoint_* Issue #33, #61.

  • plugin: setpoint_accel: Initial import. Issues: #33, #61.

  • plugin: position_velocity: Initial import. Also it fix ignore mask in setpoint_position. Issues #33, #61.

  • plugins: 3rd_radio: Initial import. Untested. Issue #61.

  • scripts: Add mavsafety tool. Also add safety_area to APM2 blacklist. Fix #51.

  • plugins: safty_area: Initial import. This plugin listen ~/safety_area/set and send it's data to FCU. Issue #51.

  • plugins: position: Add TF rate limit. Issue #33.

  • plugin: waypoint: Use ros::Timer for timeouts. Also add some debug messages for next debugging PX4. Issue #59.

  • plugin: sys_status: Use ros::Timer for timeouts Also move message rx to it's own handlers. Issue #59.

  • Remove rosdep.yaml and update readme

  • Add deb build notes to readme. Issue #55.

  • Add sudo notes to readme.

  • Merge pull request #56 from vooon/54_try_libev Switch to libev

  • Add libev to README

  • package: Add temporary rosdep for libev-dev. Issue #54.

  • mavconn: Move MAVConnUDP to libev. And fix docs in serial. Issue #54.

  • mavconn: Move MAVConnSerial to libev. Adds stub for open URL function. Issure #54.

  • Contributors: Vladimir Ermakov, Mohammed Kabir, Nuno Marques, Glenn Gregory

0.6.0 (2014-07-17)

  • plugin: local_position: Use same timestamp in topic and TF. Issue #33.
  • plugins: TF thread required, remove notes. Issue #33.
  • launch: Add example launch for PX4 Issue #45.
  • plugin: imu_pub: Fix attitude store in UAS Issue #33. Fix #53.
  • plugins: Disable position topics if tf_listen enabled Also change default frame names: vision and setpoint. Issue #33.
  • plugins: Fix typo in frame_id params. Issue #33.
  • plugins: Add vision and setpoint TF listeners Also change parameter names to same style. Issue #33.
  • plugin: vision_position: Add PositionWithCovarianceStamped option Issue #33.
  • Add boost filesystem lib to link On some platforms its absence breaks build by: undefined reference to boost::filesystem::path::codecvt()
  • launch: Add example for APM2 Fix #45.
  • plugin: setpoint_position: Initial import And some small doc changes in other position plugins. Issue #33.
  • node: Add connection change message Fix #52.
  • plugins: vision_position: Initial import TODO: check ENU->NED maths. Issue #33.
  • plugins: Remove unneded 'FCU' from diag
  • plugin: local_position: Change plane conversion Bug: #49.
  • plugin: imu_pub: Fix magnetic vector convertions Bug: #49.
  • Use dialects list from package
  • plugin: local_position: Fix orientation source Part of #33.
  • node: Show target system on startup Fix #47.
  • plugin: local_position: Initial add Receive LOCAL_POSITION_NED message and publish it via TF and PoseStamped topic in ENU frame. Part of #33.
  • node: Use boost::make_shared for message allocation Fix #46.
  • plugins: Use boost::make_shared for message allocation Part of #46.
  • plugin: imu_pub: Fix misprint in fill function Fix magnetometer vector convertion (HR IMU). Related #33.
  • plugin: imu_pub: setup cleanup.
  • Update readme
  • plugin: gps: Fix gps_vel calculation Fix #42.
  • plugins: Make name and messages methods const. (breaking). WARNING: this change broke external plugins. Please add const to get_name() and get_supported_messages(). Part of #38.
  • plugins: Use mavlink_msg_*_pack_chan() functions Fix #43.
  • mavconn: Reuse tx buffer (resize by extents) Part of #38.
  • mavconn: Do not finalize messages if id pair match mavlink_*_pack also do finalize, so explicit finalization just recalculate crc and seq number (doubles work). Test later if we need check seq too.
  • mavconn: Documentation and cleanup Make MAVConn classes noncopyable. Remove copy-paste copy and following async_write calls. Reserve some space in tx queues. Replace auto_ptr with unique_ptr.
  • test: Fix header include
  • mavconn: Fix possible array overrun in channel alocation. Problem found by clang.
  • fix some roslint errors
  • mavconn: move headers to include
  • node: Implement plugin blacklist. New parameter: ~/plugin_blacklist lists plugin aliases with glob syntax. Fix #36.
  • plugins: Change constants to constexpr (for gcc 4.6)
  • mavconn: Add gencpp dependency (utils.h requiers generated header)
  • Move duplicate Mavlink.msg copy to utils.h
  • Remove tests that requires connection to FCU
  • plugins: imu_pub: Fix PX4 imu/data linear_accelerarion field Should fix: #39.
  • plugins: imu_pub: Add magnitic covariance Trying to move constants with constexpr. Related: #13.
  • Remove testing info Need to remove tests that could not run on build farm.
  • Contributors: Vladimir Ermakov

0.5.0 (2014-06-19)

  • Remove mavlink submodule and move it to package dependency Bloom release tool don't support git submodules, so i've ceate a package as described in http://wiki.ros.org/bloom/Tutorials/ReleaseThirdParty . Fix #35.
  • plugins: param: add missing gcc 4.6 fix.
  • plugins: fix const initializers for gcc 4.6
  • plugins: imu_pub: fix const initializers for gcc 4.6 Fix for build failure devel-hydro-mavros #4.
  • Add support for GCC 4.6 (C++0x, ubuntu 12.04) I don't use complete c++11, so we could switch to c++0x if it supported.
  • plugins: rc_io: Add override rcin service Fix: #22.
  • plugins: sys_status: fix timeouts Fix #26.
  • plugins: sys_status: add set stream rate service Some additional testing required. Fix #23.
  • Remove unused boost libarary: timer Build on jenkins for hydro failed on find boost_timer.
  • 0.4.1
  • Add changelog for releasing via bloom

0.4.1 (2014-06-11)

  • node: Show serial link status in diag Now 'FCU connection' shows actual status of connection (HEARTBEATS).
  • Fix #29. Autostart mavlink via USB on PX4 Changes mavconn interface, adds new parameter.
  • Fix installation rules. Fix #31.
  • Setup UDP transport for /mavlink messages
  • Fix mavlink dialect selection Fix #28.
  • Add link to wiki.ros.org Part of #27.

0.4.0 (2014-06-07)

  • Release 0.4.0 And some docs for CommandPlugin.
  • plugins: command: Command shortcuts Fix #12.
  • plugins: command: Add ACK waiting list Part of #12.
  • plugins: command: Initial naive realization. Partial #12, #25.
  • mavconn: Fix build on Odroid with Ubuntu 13.10 Fix #24.
  • plugins: rc_io: initial add RC_IO plugin Topics:

    • ~/rc/in -- FCU RC inputs in raw microseconds

    * ~/rc/out -- FCU Servo outputs Fix #17. Partiall #22.

  • Fix installation wstool command. wstool set, not wstool add.

  • Add installation notes to README Installing pymavlink is not required, but try if errors.

  • Fix headers in README.md

  • ros_udp: New node for UDP proxing Add some examples to README.md. Fix #21.

  • sys_status: Add state publication Fix #16.

  • sys_status: Sent HEARTBEAT if conn_heartbeat > 0 Fix #20.

  • sys_status: add sensor diagnostic See #16.

  • sys_status: Add battery status monitoring Fix #19, partial #16.

  • sys_status: HWSTATUS support Fix #18, partial #20.

  • plugins: imu_pub: Add RAW_IMU, SCALED_IMU and SCALED_PRESSURE handlers Fix #13. Refactor message processing. Combination of used messages: On APM: ATTITUDE + RAW_IMU + SCALED_PRESSURE On PX4: ATTITUDE + HIGHRES_IMU On other: ATTITUDE + (RAW_IMU|SCALED_IMU + SCALED_PRESSURE)|HIGHRES_IMU Published topics:

    • ~imu/data - ATTITUDE + accel data from *_IMU
    • ~imu/data_raw - HIGHRES_IMU or SCALED_IMU or RAW_IMU in that order
    • ~imu/mag - magnetometer (same source as data_raw)
    • ~imu/temperature - HIGHRES_IMU or SCALED_PRESSURE

    * ~imu/atm_pressure - same as temperature

  • Update readme

  • mavwp: Add --pull option for 'show' operation. Reread waypoints before show.

  • MissionPlanner use format QGC WPL, Fix #15 Code cleanup;

  • Update mavlink version.

  • Update mavlink version

  • mavparam: fix #14 support for QGC param files

  • mavwp: Add mavwp to install

0.3.0 (2014-03-23)

  • Release 0.3.0
  • mavwp: Add MAV mission manipulation tool Uses WaypointPlugin ROS API for manipulations with FCU mission.

    • show -- show current mission table
    • pull -- update waypoint table
    • dump -- update and save to file
    • load -- loads mission from file
    • clear -- delete all waypoints
    • setcur -- change current waypoint
    • goto -- execute guided goto command (only APM) Currently supports QGroundControl format only.
  • plugins: wp: Add GOTO, update documentation

  • plugins: wp: Auto pull

  • plugins: wp: SetCurrent & Clear now works

  • plugins: wp: Push service works

  • plugins: wp: push almost done

  • plugins: wp: Pull done

  • plugins: param: remove unused ptr

  • plugins: wp: mission pull almost done

  • plugins: wp: Add convertors & handlers

  • plugins: Waypoint plugin initial

  • Use C++11 feuture - auto type

  • plugins: refactor context & link to single UAS class UAS same functions as in QGC.

  • plugins: Add msgs and srvs for Waypoint plugin

  • Update mavlink library

  • Update mavlink version

  • mavparam: Fix for DroidPlanner param files & cleanup DroidPlanner adds some spaces, don't forget to strip it out. Cleanup unused code from Parameter class.

0.2.0 (2014-01-29)

  • mavparam: Add MAV parameter manipulation tool Uses ParamPlugin ROS API for manipulating with fcu params.

    • load -- load parameter from file
    • dump -- dump parameter to file
    • get -- get parameter
    • set -- set parameter Currently supports MissionPlanner format only. But DroidPlanner uses same format.
  • Update README and documentation

  • plugins: param: implement ~param/push service Also implement sync for rosparam:

    • ~param/pull service pulls data to rosparam
    • ~param/push service send data from rosparam
    • ~param/set service update rosparam if success
  • plugins: param: implement ~param/set service

  • plugins: param: implement ~param/get service

  • plugins: param: Implement automatic param list requesting

  • plugins: use recursive_mutex everywhere

  • plugins: param now automaticly requests data after connect

  • plugins: Add common io_service for plugins, implement connection timeout Some plugin require some delayed processes. Now we can use boost::asio::*timer. New parameter:

    • ~/conn_timeout connection timeout in seconds
  • plugins: add param services

  • mavconn: set thread names WARNING: pthread systems only (BSD/Linux)

  • plugins: implement parameters fetch service

  • plugins: fix string copying from mavlink msg

  • plugins: Setup target in mav_context New params:

    • ~target_system_id - FCU System ID
    • ~target_component_id - FCU Component ID
  • plugins: IMU Pub: add stdev parameters, change topic names. Add parameters:

    • ~imu/linear_acceleration_stdev - for linear acceleration covariance
    • ~imu/angular_velocity_stdev - for angular covariance
    • ~imu/orientation_stdev - for orientation covariance Change topic names (as in other IMU drivers):
    • ~imu -> ~/imu/data
    • ~raw/imu -> ~/imu/data_raw
  • plugins: Params initial dirty plugin

  • Fix mavlink dialect choice.

  • plugins: Add context storage for automatic quirk handling ArduPlilot requires at least 2 quirks:

    • STATUSTEXT severity levels
    • parameter values is float
  • Implement MAVLink dialect selection ArduPilotMega is default choice.

  • doc: add configuration for rosdoc_lite

0.1.0 (2014-01-05)

  • Version 0.1.0 Milestone 1: all features from mavlink_ros package.xml was updated.
  • Fix typo and add copyright string NOTE: Please check typos before coping and pasting :)
  • plugins: gps: Add GPS_RAW_INT handler GPS_STATUS not supported by APM:Plane. ROS dosen't have standard message for satellites information.
  • mavconn: small debug changes Limit no GCS message to 10 sec.
  • node: Terminate node on serial port errors
  • plugins: Add GPS plugin SYSTEM_TIME to TimeReference support. TODO GPS fix.
  • Fix build and update MAVLink library
  • plugins: sys_status: Add SYSTEMTEXT handler Two modes:

    • standard MAV_SEVERITY values
    • APM:Plane (default) TODO: add mavlink dialect selection option
  • plugins: add some header doxygen tags Add license to Dummy.cpp (plugin template).

  • plugins: sys_status: Add MEMINFO handler MEMINFO from ardupilotmega.xml message definition. Optional.

  • update README

  • update TODO

  • plugins: Add imu_pub plugin. Publish ATTITUDE and HIGHRES_IMU data. HIGHRES__IMU not tested: Ardupilot sends ATTITUDE only :(

  • node: publish Mavlink.msg only if listners > 0

  • plugins: Add sys_status plugin. Initial.

  • plugins: implement loading & rx routing

  • plugins: initial

  • node: Add diagnostics for mavlink interfaces

  • mavconn: add information log wich serial device we use.

  • mavconn: fix overloaded MAVConn*::send_message(msg)

  • mavros: Add mavros_node (currently serial-ros-udp bridge) Message paths: Serial -+-> ROS /mavlink/from +-> UDP gcs_host:port ROS /mavlink/to -+-> Serial UDP bind_host:port -+

  • Add README and TODO files.

  • mavconn: fix MAVConnUDP, add mavudpproxy test mavudpproxy -- connection proxy for QGroundControl, also used as test for MAVConnUDP and MAVConnSerial.

  • mavconn: add UDP support class

  • mavconn: fix: should use virtual destructor in interface class

  • mavconn: add getters/setters for sys_id, comp_id; send_message return.

  • mavconn: simple test. tested with APM:Plane: works.

  • mavconn: fix linking

  • mavconn: serial interface

  • Add mavconn library prototype mavconn - handles MAVLink connections via Serial, UDP and TCP.

  • Add MAVLink library + build script

  • Initial Import Mavlink.msg from mavlink_ros package ( https://github.com/mavlink/mavlink_ros ).

  • Contributors: Vladimir Ermakov

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/apm2.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/node.launch
      • fcu_url
      • gcs_url
      • tgt_system
      • tgt_component
      • pluginlists_yaml
      • config_yaml
      • log_output [default: screen]
  • launch/apm.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/px4.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/mavlink_bridge.launch
      • ns [default: iris]
      • mavlink_bridge_url [default: udp://127.0.0.1:14553@127.0.0.1:14560]

Messages

No message files found.

Services

No service files found

Plugins

Package Summary

Tags uav mav mavlink plugin apm px4
Version 0.18.2
License GPLv3
Buildtool CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version master
Last Updated 2016-07-03
Dev Status DEVELOPED
Released RELEASED

Package Description

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

Additional Links

Maintainers

  • Vladimir Ermakov

Authors

  • Vladimir Ermakov
README

MAVROS

MAVLink extendable communication node for ROS with proxy for Ground Control Station (e.g. QGroundControl).

ROS API documentation moved to wiki.ros.org.

Features

  • Communication with autopilot via serial port, UDP or TCP (e.g. PX4 Pro or ArduPilot)
  • Internal proxy for Ground Control Station (serial, UDP, TCP)
  • mavlink_ros compatible ROS topics (Mavlink.msg)
  • Plugin system for ROS-MAVLink translation
  • Parameter manipulation tool
  • Waypoint manipulation tool
  • PX4Flow support (by mavros_extras)
  • OFFBOARD mode support.

Limitations

Only for linux. Depends on Boost library >= 1.46 (hydro on 12.04). Catkin build system required (tested with ROS Hydro Medusa, Indigo Igloo and Jade Turtle).

This package are dependent on ros-*-mavlink build from mavlink-gbp-release. Since 2014-06-19 it exists in Hydro and Indigo package index (so you can install via rosdep). Since 2015-02-25 exists for Jade too.

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 boroadcast: 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]

Note:

  • Ids from URL overrides value given by system_id & component_id parameters.
  • bind_host - default 0.0.0.0 - i.e. IP4 ANY
  • UDP default ports: 14555 @ 14550
  • UDP remote address updated every time with incoming packet on bind port.
  • TCP default port: 5760

Coordinate frames

MAVROS does translate Aerospace NED frames, used in FCUs to ROS ENU frames and vice-versa. For translate airframe related data we simply apply rotation 180° abount ROLL (X) axis. For local we apply 180° about ROLL (X) and 90° about YAW (Z) axes. Plase read documents from issue #473 for additional information.

All the conversions are handled in src/lib/uas_frame_conversions.cpp and src/lib/uas_quaternion_utils.cpp and tested in test/test_frame_conversions.cpp and test/test_quaternion_utils.cpp respectively.

Related issues: #49 (outdated), #216 (outdated), #317 (outdated), #319 (outdated), #321 (outdated), #473. Documents: Frame Conversions, Mavlink coordinate frames.

Programs

mavros_node -- main communication node

Main node. Allow disable GCS proxy by setting empty URL.

Run example (autopilot connected via USB at 921600 baud, GCS running on the host with IP 172.16.254.1):

rosrun mavros mavros_node _fcu_url:=/dev/ttyACM0:921600 _gcs_url:=udp://@172.16.254.1

gcs_bridge -- additional proxy

Allows you to add a channel for GCS. For example if you need to connect one GCS for HIL and the second on the tablet.

Example (SITL & QGroundControl):

rosrun mavros mavros_node _gcs_url:='udp://:14556@172.16.254.129:14551' &
rosrun mavros gcs_bridge _gcs_url:='udp://@172.16.254.129'

Launch Files

Launch files are provided for use with common FCUs, in particular Pixhawk:

  • px4.launch -- for use with the PX4 Pro flight stack (for VTOL, multicopters and planes)
  • apm.launch -- for use with APM flight stacks (e.g., all versions of ArduPlane, ArduCopter, etc)

Examples:

roslaunch mavros px4.launch 
roslaunch mavros apm.launch fcu_url:=tcp://localhost gcs_url:=udp://@

Installation

Binary installation (debian)

Since v0.5 that programs available in precompiled debian packages for x86 and amd64 (x86_64). Also v0.9+ exists in ARMv7 repo for Ubuntu armhf. Just use apt-get for installation:

sudo apt-get install ros-jade-mavros ros-jade-mavros-extras

Source installation

Use wstool utility for retriving sources and catkin tool for build.

sudo apt-get install python-catkin-tools python-rosinstall-generator

# 1. unneded if you already has workspace
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
wstool init src

# 2. get source (upstream - released)
rosinstall_generator --upstream mavros | tee /tmp/mavros.rosinstall
# alternative: latest source
rosinstall_generator --upstream-development mavros | tee /tmp/mavros.rosinstall

# 3. latest released mavlink package
# you may run from this line to update ros-*-mavlink package
rosinstall_generator mavlink | tee -a /tmp/mavros.rosinstall
# alternative: to build master on Indigo or Jade:
rosinstall_generator --rosdistro kinetic --upstream mavlink | tee -a /tmp/mavros.rosinstall

# 4. workspace & deps
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro jade -y

# 5. finally - build
catkin build

Build error. if you has error with missing mavlink* then you need fresh mavlink package. You may update from ros-shadow-fixed (binary installation) or redo script from step 3.

Note. Since MAVLink 2.0 merged all dialects supported by same binary. Unfortunately overlap of v1.0 message ID's not fully handled, fisrt loaded message forbid futher changes. Load order always:

  1. common
  2. ardupilotmega
  3. alphabetical ordered list
  4. ...

Note: MAVLINK_DIALECT not used anymore.

Contributing

  1. Fork the repo: fork
  2. Clone the repo (git clone https://github.com/mavlink/mavros.git);
  3. Create a remote connection to your repo (git remote add <remote_repo> git@github.com:<YourGitUser>/mavros.git);
  4. Create a feature/dev branch (git checkout -b <feature_branch>);
  5. Add the changes;
  6. Apply the changes by commiting (git commit -m "<message>" or git commit -a and then write message; if adding new files: git add <path/to/file.ext>);
  7. Check code style uncrustify -c ${ROS_WORKSPACE}/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>;
  8. Fix small code style errors and typos;
  9. Commit with description like "uncrustify" or "code style fix". Please avoid changes in program logic (separate commit are better than mix of style and bug fix);
  10. Run tests:
    • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
    • with catkin tools, issue catkin run_tests;
  11. If everything goes as planned, push the changes (git push -u <remote_repo> <feature_branch>) and issue a pull request.

Glossary

  • GCS — Ground Control Station
  • FCU — Flight Control Unit (aka FC)
  • OBC — OnBoard Computer (your odroid or raspberry)
  • MAVLink -- communication protocol
  • mavlink_ros -- original ROS node (few messages, no proxy)
  • Pixhawk -- Reference hardware platform
  • PX4 -- Reference implementation in the academic community
  • ArduPilot -- tested autopilot APM:Plane (default command set)
  • QGroundControl -- tested ground control station for Android, iOS, Mac OS, Linux and Windows
  • mavros_extras -- extra plugins & node for mavros
CHANGELOG

Changelog for package mavros

0.18.2 (2016-06-30)

  • plugin:sys_status: Fix STATUSTEXT log prefix
  • Contributors: Vladimir Ermakov

0.18.1 (2016-06-24)

  • lib: Fix base mode flag check
  • plugins: Move pluginlib macros.h to tail
  • plugin:param fix #559: Ignore PX4 _HASH_CHECK param
  • Contributors: Vladimir Ermakov

0.18.0 (2016-06-23)

  • lib #439: MAV_CMD to_string is not required.
  • plugin:sys_status #458: Hanlde BATTERY_STATUS (PX4)
  • plugin:sys_status fix #458: Use sensor_msgs/BatteryState message. Minimal data, for all other need to handle BATTERY_STATUS.
  • plugin:command fix #561: PX4 now sends COMMAND_ACK. And like APM do not check confirmation field. :)
  • readme #544: add udp-b://@ URL
  • plugin:hil_controls: Update plugin API
  • Merge branch 'feature/hil_controls_plugin' of https://github.com/pvechersky/mavros into pvechersky-feature/hil_controls_plugin * 'feature/hil_controls_plugin' of https://github.com/pvechersky/mavros: Adding anchor to the HIL_CONTROLS message reference link Ran uncrustify on hil_controls plugin Utilizing synchronise_stamp and adding reference to MAVLINK msg documentation Added a plugin that publishes HIL_CONTROLS as ROS messages
  • node: fix subscription message type checks
  • plugin: use mavlink::to_string() for std::array<char, N>
  • readme: update CI, no more MAVLINK_DIALECT
  • plugin:waypoint: Fix target id's on MISSION_ITEM
  • node: Add ~fcu_protocol parameter
  • Ran uncrustify on hil_controls plugin
  • Utilizing synchronise_stamp and adding reference to MAVLINK msg documentation
  • node: set gcs_url on internal GCS bridge diag hardware Id
  • plugins: Use UAS::msg_set_target()
  • Added a plugin that publishes HIL_CONTROLS as ROS messages
  • lib: PX4 add AUTO.FOLLOW_TARGET
  • mavros: Update tests
  • extras: Update UAS
  • UAS: Update plugins for FTF module
  • UAS: move enum stringify functions
  • lib: Generate MAV_SENSOR_ORIENTATION
  • UAS: move MAV_SENSOR_ORIENTATION out
  • UAS: Move transformation utilities to ftf module
  • plugin:rc_io: Fix log printf-format warning
  • make GCC 4.8 happy. (travis)
  • gcs_bridge: done
  • param:ftp: Update API
  • plugin:param: Works. Tested on APM
  • plugin:param: Update, almost work
  • plugin:waypoint: Fix Item - ROS binding
  • Message type mismatch code do not work
  • plugin:waypoint: Update API
  • plugin:sys_time: Update API
  • plugin:sys_status: Update API
  • plugin:setpoint_raw: Update API
  • plugin:setpoint_attitude: Update API
  • plugin:setpoint_accel: Update API
  • plugin:setpoint_velocity: Update API
  • plugin:setpoint_position: Update API
  • plugin:vfr_hud: Update API
  • plugin:safety_area: Update API
  • plugin:rc_io: Update API
  • plugin:manual_control: Update API, fix uas init
  • plugin:local_position: Update API
  • plugin:imu_pub: Update API
  • plugin:global_position: Update API
  • mavros: make_handle() this shouldn't be const
  • plugin:common: Update API
  • plugin:altitude: uncrustify
  • plugins: Rutine sed + fix misprint
  • plugin:altitude: Update API
  • plugins: Automatic replacement of routine API changes (sed)
  • plugin:actuator_control: Update API
  • plugin:3dr_radio: Update API
  • node: Update plugin loading and message routing
  • node: type_info -> SIGSEGV
  • node: prepare new plugin loading
  • node: Rename plugib base class - API incompatible to old class
  • labmavconn: finding sigsegv
  • Contributors: Pavel, Vladimir Ermakov

0.17.3 (2016-05-20)

  • libmavconn #543: support build with mavlink 2.0 capable mavgen
  • node: Remove warning about MAVLINK_VERSION redefine
  • Fix bug with orientation in setpoint_raw plugin Fixes a bug where the ned_desired_orientation was not actually passed into set_attitude_target. Instead, the desired_orientation (wrong frame) was passed.
  • Contributors: Justin Thomas, Vladimir Ermakov

0.17.2 (2016-04-29)

  • Update README.md
  • Update README.md Updated / completed examples.
  • Update README.md
  • Fix for kinetic std::isnan.
  • Contributors: James Goppert, Lorenz Meier

0.17.1 (2016-03-28)

0.17.0 (2016-02-09)

  • update README
  • rebased with master
  • Fixed ROS_BREAK
  • Updates for ROS_BREAK and code style
  • Nitpicks and uncrustify
  • Updated frame transformations and added odom publisher to local position plugin
  • Contributors: Eddy, Vladimir Ermakov, francois

0.16.6 (2016-02-04)

  • node fix #494: Report FCU firmware type in rosonsole log
  • scripts fix #478: Remove guided_enable garbage. I'm missed this when do #407.
  • Contributors: Vladimir Ermakov

0.16.5 (2016-01-11)

0.16.4 (2015-12-14)

  • scripts: checkid: be always verbose, add --follow
  • scripts: fix copyright indent
  • scripts: mavcmd: Fix bug: param7 not passed to service call!
  • scripts #382: Add ID checker script. It is not complete, but i hope it helps in current state.
  • scripts: mavcmd: Add support for broadcast requests
  • event_launcher: fix bug: Trigger service server is not saved in Launcher Also fixes: environment variables may contain ~ (user dir) in expansion.
  • using timestamp from mavlink message
  • Update mavlink message documentation links
  • lib: update MAV_TYPE stringify
  • lib: Add RATTITUDE PX4 mode
  • remove "altitude_" prefix from members
  • updated copyright
  • implemented altitude plugin
  • Contributors: Andreas Antener, Vladimir Ermakov

0.16.3 (2015-11-19)

  • use safe methods to get imu data in local_position plugin
  • Contributors: Andreas Antener

0.16.2 (2015-11-17)

  • transform yaw and yaw rate from enu to ned
  • Contributors: Andreas Antener

0.16.1 (2015-11-13)

  • python: fix import error of goto service
  • don't warn anymore about px4 not supporting rc_io
  • Contributors: Andreas Antener, Vladimir Ermakov

0.16.0 (2015-11-09)

  • lib: Update ArduCopter mode list
  • plugin: sys_status #423: set_mode set arming and HIL flags based on previous state
  • lib #423: Save base_mode in UAS.
  • Finalized local position topic names
  • readme: add link to catkin-tools docs
  • readme #409: merge mavlink and mavros installation instruction
  • Fixed redundant rotation of IMU data and redundant orientation data
  • plugin: setpoint_raw fix #418: add attitude raw setpoint Related #402.
  • Added velocity output of FCU's local position estimate to ROS node
  • plugin: sys_status fix #417: remove APM statustext quirk
  • plugin: waypoint fix #414: remove GOTO service. It is replaced with more standard global setpoint messages.
  • plugin: setpoint_raw fix #415: add global position target support Related to #402.
  • plugin: command fix #407: remove guided_enable sevice
  • plugin: setpoint_raw #402: implement loopback.
  • plugin: setpoint_raw #402: Initial import.
  • readme fix #410: use only catkin tool
  • readme: add defaults for URL
  • pass new extended state to ros
  • python: add util to convert pymavlink message to Mavlink.msg
  • python: convert input to bytearray
  • python: add payload convertion util
  • gcs_bridge #394: enable both UDPROS and TCPROS transports
  • EL: add try-except on handlers
  • event_launcher: show logfile path
  • event_launcher #386: expand shell vars for logfile
  • Mavros library depends on mavros_msgs headers Adding this dependency makes sure that mavros_msgs message headers are generated before the mavros library is built, since it needs those headers.
  • Contributors: Andreas Antener, Eddy, Jon Binney, Vladimir Ermakov

0.15.0 (2015-09-17)

  • lib: fix timesync uninit bug. Uninitialized variable caused wrong timestamps with APM.
  • python #286: use checksum - save ticks
  • script #385: output to log-file
  • script #385: remove RosrunHandler and RoslaunchHandler
  • script #385: attempt to implement rosrun fails. ROSLaunch class wants all node operations from main thread. That is not possible.
  • script #385: fix shell-killer, but logging are broken and removed
  • script #385: shell-launcher now works!
  • script #385: add example configuration
  • script #385: shell handler done. next - rosparam handling
  • script #385: starting work on simple shell launcher
  • scripts: starting event_launcher
  • python: Remove unneded slice operation. Fix copyright year. list[:len(list)] is equal to list, but creates new list with data from that slice.
  • updated mavlink byte buffer conversion
  • plugin: manual_control: Use shared pointer message Fix alphabetic order of msgs.
  • python: add helper for converting mavros_msgs/Mavlink to pymavlink
  • Add MANUAL_CONTROL handling with new plugin
  • Contributors: Andreas Antener, Vladimir Ermakov, v01d

0.14.2 (2015-08-20)

0.14.1 (2015-08-19)

  • package: Fix depend on rosconsole-bridge
  • Removed <remap>
  • Contributors: Vladimir Ermakov, devbharat

0.14.0 (2015-08-17)

  • python: call of mavros.set_namespace() is required.
  • scripts: mavftp fix #357: add verify command
  • scripts: mavftp #357: progressbar on download operation
  • scripts: mavftp #357: progress bar for upload operation.
  • scripts: mavftp: New command cd. All path arguments now may handle relative paths.
  • readme: fix frame tansform section
  • mavros: readme: update info on frame conversions
  • mavros: readme: update contribution steps
  • node: Replace deprecated copy functions. Also allow mavlink to & from topics to be namespaced.
  • extras: scripts: use API from mavros module
  • scripts: fix for new message location
  • python: update mavros lib to new message location
  • package: remove not exist dependency
  • plugin: waypoint: Fix message include
  • plugin: vfr_hud: Fix message include
  • plugin: rc_io: Fix message include
  • plugin: param: Fix message include
  • plugin: ftp: Fix message include
  • plugin: sys_status: Fix message include
  • plugin: command: Fix message include
  • plugin: 3dr_radio: Fix message include
  • plugin: actuator_control: Fix message include.
  • msgs: update copyright year
  • msgs: deprecate mavros::Mavlink and copy utils.
  • msgs: change description, make catkin lint happy
  • msgs #354: move all messages to mavros_msgs package.
  • Minor typo fix.
  • node: increase diag timer to 2 Hz
  • node: move diagnostic to AsyncSpinner threads.
  • Contributors: TSC21, Tony Baltovski, Vladimir Ermakov

0.13.1 (2015-08-05)

  • lib #358: cleanup. Replace UAS::getYaw() with UAS::quaternion_get_yaw().
  • lib #358: found correct getYaw(). Test for each degrees in -180..180.
  • test #358: test more different angles. Compare rotation result.
  • lib #358: try to implement algo from wikipedia.
  • lib #358: still failing. add recursive test for range -Pi..+Pi
  • lib #358: try solve issue using older eulerAngles()
  • lib #358: remove to_rpy test
  • Merge branch 'master' of github.com:mavlink/mavros * 'master' of github.com:mavlink/mavros: global_position: move relative_alt and compass_heading init back add nav_msgs to dependencies so to make Travis happy global_position: update pose and twist to odom msg
  • test fix #359: split out quaternion tests.
  • lib #359: move quaternion utils.
  • global_position: move relative_alt and compass_heading init back
  • add nav_msgs to dependencies so to make Travis happy
  • global_position: update pose and twist to odom msg
  • test #358: add tests for negative values and quaternion_to_rpy tf2 compatibility check Tests now fails!
  • sctipts: fix gps topic path
  • lib: fix input validation in UAS::orientation_from_str()
  • test: add case for num str->sensor orientation
  • package: fix CHANGELOG.rst
  • Contributors: TSC21, Vladimir Ermakov

0.13.0 (2015-08-01)

  • plugin: setpoint_attitude #352: use new helper.
  • plugin: sys: Fix cppcheck and YouCompleteMe warnings
  • plugin: ftp: Fix cppcheck errors.
  • lib #352: Add helper function UAS::quaternion_to_mavlink()
  • Fixed bug in send_attitude_target() The transformed quaternion wasn't being passed to set_attitude_target(), resulting in an incorrect attitude setpoint. I've now fixed this issue.
  • scripts: fix mavwp
  • test: add test cases for new sensor orientation functions
  • remove tf1 dep
  • lib #319: Remove TF types from UAS
  • plugin: param: new message type: ParamValue
  • msgs: Move MAV_CMD values to separate msg
  • plugin: command: fix build
  • fix whitespaces in python scripts
  • Merge pull request #312 from mhkabir/cam_imu_sync Camera IMU synchronisation support added
  • Added launch file for PX4 posix sitl to launch gcs_bridge node for bridging posix and gazebo
  • scripts: mavftp: little speed up by aligning access to payload length
  • launch: Add optional log_output arg
  • Merge branch 'orientation_enum_name' * orientation_enum_name: distance_sensor #342: correct orientation parameter handling. lib #342: try to convert numeric value too px4_config: adapt to distance_sensor params to new features distance_sensor: restructure orientation matching and verification lib #342: Added sensor orientation string repr.
  • lib #342: try to convert numeric value too
  • px4_config: adapt to distance_sensor params to new features
  • lib #342: Added sensor orientation string repr.
  • launch: update local_position conf
  • test: Add test for UAS::sensor_orientation_matching()
  • Update cmake Eigen3 finding rules. Migration described at: http://wiki.ros.org/jade/Migration#Eigen_CMake_Module_in_cmake_modules
  • lib #319, #341: preparation for str->MAV_SENSOR_ORIENTATION func
  • lib #319: Return quaternion from UAS::sensor_matching()
  • lib: Remove unneded NodeHandle
  • launch fix #340: update default component id of PX4.
  • plugin: sys_status: Add fallback to adressed version request.
  • Can not remove tf package before #319 is done. tf::Vector3 and other tf1-bullet still in use.
  • plugin: sys_status: Use broadcast for version request.
  • fix #71: replace depend tf to tf2_ros.
  • plugin: Use UAS::syncronized_header() for reduce LOC.
  • lib #319: use similar names for covariances as eigen vector
  • lib #319: transform_frame() for Covariance3x3
  • lib #319: remove unused bullet based transform_frame()
  • extras: vision_pose #71: Use TF2 listener. Also #319.
  • plugin #71: Implement TF2 listener. Change param names. Breaks extras.
  • uas #71: Use single TF2 objects for broadcasting and subscription.
  • launch: Update configs.
  • lib: Add UAS::quaternion_to_rpy()
  • plugin: safety_area #319: Change transform_frame()
  • plugin: local_position #71 #319: port to TF2 and Eigen
  • lib: Add UAS::synchonized_header()
  • plugin: command: Add command broadcasting support.
  • Perform the autopilot version request as broadcast
  • lib: Update PX4 mode list
  • plugin: global_position #325: port tf broadcaster to tf2 Also #71.
  • plugin: global_position #325: reenable UTM calc
  • plugin: gps #325: remove gps plugin.
  • plugin: global_position #325: merge gps_raw_int handler
  • plugin: setpoint_accel #319: use eigen frame transform. I don't think that PX4 support any other frame than LOCAL_NED. So i removed comment. Also style fix in setpoint_velocity.
  • plugin: setpoint_velocity #319: use eigen based frame transform.
  • plugin: setpoint_position #273: remove PX4 quirk, it is fixed.
  • plugin: ftp: Update command enum.
  • plugin: imu_pub fix #320: move constants outside class, else runtime linkage error.
  • plugin: imu_pub #320: first attempt
  • eigen #319: handy wrappers.
  • eigen #319: add euler-quat function. Also #321.
  • test #321: remove duplicated test cases, separate by library. Add test for checking compatibility of tf::quaternionFromRPY() and Eigen based math.
  • test #321: testing eigen-based transforms. We should check what convention used by tf::Matrix to be sure that our method is compatible.
  • mavros #319: Add Eigen dependency and cmake rule.
  • test: test for UAS::transform_frame_attitude_rpy() (ERRORs!)
  • test: test for UAS::transform_frame_xyz()
  • test: Initial import test_frame_conv
  • cam_imu_sync : fix running
  • imu_cam_sync : fix formatting
  • command handling in mavcmd for camera trigger
  • Camera IMU synchronisation support added
  • Contributors: Anurag Makineni, Lorenz Meier, Mohammed Kabir, TSC21, Vladimir Ermakov, devbharat

0.12.0 (2015-07-01)

  • plugin: sys_time, sys_status #266: check that rate is zero
  • test #321: disable tests for broken transforms.
  • lib #321: frame transform are broken. again! revert old math. RULE for me: do not accept patch without wide testing from author. That PR changes all plugins code, instead of do API, test and only after that touching working code. My bad.
  • unittest: added 6x6 Covariance conversion test
  • frame_conversions: update comments; filter covariance by value of element 0
  • unittests: corrected outputs from conversion tests
  • test: other quaternion transform tests
  • test: UAS::transform_frame_attitude_q()
  • test: test for UAS::transform_frame_attitude_rpy() (ERRORs!)
  • test: test for UAS::transform_frame_xyz()
  • test: Initial import test_frame_conv
  • coverity: make them happy
  • uncrustify: fix style on frame conversions
  • uncrustify: includes
  • plugin: sys_status #266: replace period with rate parameter
  • plugin: sys_time #266: Replace period with rate parameters
  • frame_conversion: last fix patch
  • frame_conversions: use inline functions to identify direction of conversion
  • changed frame conversion func name; add 3x3 cov matrix frame conversion; general doxygen comment cleanup
  • frame_conversions: added covariance frame conversion for full pose 6x6 matrix
  • frame_conversions: added frame_conversion specific lib file; applied correct frame conversion between ENU<->NED
  • sys_status #300: PX4 place in [0] lest significant byte of git hash.
  • sys_status fix #300: fix u8->hex func.
  • plugin: waypoint: cosmetics.
  • vibration_plugin: first commit
  • Changes some frames from world to body conversion for NED to ENU.
  • mavsys #293: add --wait option
  • mavsys: Fix arguments help
  • mavcmd #293: Add --wait option. New function: util.wait_fcu_connection(timeout=None) implement wait option.
  • sys_status #300: AUTOPILOT_VERSION APM quirk
  • mavros #302: fix style
  • mavros #302: split UAS impl by function blocks
  • mavros fix #301: move sensor orientation util to UAS
  • distance_sensor: typo; style fixe
  • sensor_orientation: list values correction
  • launch: APM:Plane 3.3.0 now support local_position. Blacklist distance_sensor.
  • sensor_orientation: use MAX as last index macro
  • distance_sensor: changed to usable config
  • launch: APM:Plane 3.3.0 now support local_position. Blacklist distance_sensor.
  • sensor_orientation: updated orientation enum; updated data type
  • sensor_orientation: included array type on utils.h
  • sensor_orientation: added sensor orientation matching helper func
  • distance_sensor: updated config file
  • distance_sensor: define sensor position through param config
  • distance_sensor: array limiting; cast correction; other minor correc
  • distance_sensor: small enhancements
  • sys_status #293: initialize state topic
  • sys_status #293: expose connection flag in mavros/State.
  • Contributors: TSC21, Tony Baltovski, Vladimir Ermakov

0.11.2 (2015-04-26)

  • plugin: param fix #276: add check before reset request downcounter. If on MR request FCU responses param with different param_index do not reset repeat counter to prevent endless loop.
  • gcs bridge fix #277: add link diagnostics
  • plugin: setpoint_position #273: add quirk for PX4.
  • readme: fir glossary misprint
  • readme: add notes about catkin tool
  • Contributors: Vladimir Ermakov

0.11.1 (2015-04-06)

  • scripts #262: update mavwp
  • scripts #262: mavsetp, new module mavros.setpoint
  • mavftpfuse #129: cache file attrs
  • mavparam #262: use get_topic()
  • mavsys #262: use get_topic()
  • mavcmd #262: use get_topic()
  • mavftp #263, #262: use crc32 checksums
  • python #262: add get_topic()
  • Update local_position.cpp removed irritating comment
  • readme: add short glossary
  • plugin: setpoint_attitude: remove unneded ns
  • Contributors: Marcel Stuettgen, Vladimir Ermakov

0.11.0 (2015-03-24)

  • plugin: setpoint_position #247: rename topic
  • launch #257: rename blacklist.yaml to pluginlists.yaml
  • node #257: implement while list.
  • plugin: actuator_control #247: update topic name.
  • mavros: Initialize UAS before connecting plugin routing. Inspired by #256.
  • plugin: sys_status: Check sender id. Inspired by #256.
  • plugin: sys_status: Use WARN severity for unknown levels
  • uas: Add UAS::is_my_target() Inspired by #256.
  • plugin: global_position: Fill status and covariance if no raw_fix. Additional fix for #252.
  • launch: change apm target component id APM uses 1/1 (sys/comp) by default.
  • plugin: sys_status: publish state msg after updating uas Before this commit, the custom mode string published in the state message was computed using the autopilot type from the previous heartbeat message--not the autopilot type from the current hearbeat message. Normally that isn't a problem, but when running a GCS and mavros concurrently, both connected to an FCU that routes mavlink packets (such as APM), then this causes the custom mode to be computed incorrectly, because the mode string for the GCS's hearbeat packet will be computed using the FCU's autopilot type, and the mode string for the FCU's heartbeat packet will be computed using the GCS's autopilot type.
  • plugin: global_position: fix nullptr crash This fixes a crash in cases where a GLOBAL_POSITION_INT message is received before a GPS_RAW_INT message, causing the gps_fix pointer member to be dereferenced before it has been set.
  • msgs: fix spelling, add version rq.
  • coverity: init ctor in 3dr_radio
  • launch fix #249: update apm blacklist
  • launch: rename APM2 to APM.
  • launch #211: update configs
  • plugin: gps: remove unused param
  • plugin: sys_time: remove unused param
  • launch fix #248: remove radio launch
  • plugin: 3dr_radio #248: add/remove diag conditionally
  • plugin: sys_status: move connection params to ns
  • plugin: sys_time: fix #206 (param ns)
  • node: Inform what dialect built-in node
  • plugin: sys_status: Conditionaly add APM diag
  • plugin: sys_status: fix #244
  • uas #244: add enum lookups
  • package: update lic
  • license #242: update mavros headers
  • plugin: local_positon: use auto
  • plugin: imu_pub: Update UAS store.
  • plugin: gps: remove diag class, change UAS storage API.
  • plugin api #241: move diag updater to UAS.
  • plugin api #241: remove global private node handle. Now all plugins should define their local node handle (see dummy.cpp). Also partially does #233 (unmerge setpoint topic namespace).
  • plugin api #241: remove get_name()
  • package: mavros now has any-link proxy, not only UDP
  • Update years. I left gpl header, but it is BSD too.
  • Add BSD license option #220
  • plugin: sys_status: AUTOPILOT_VERSION support. Fix #96.
  • mavros fix #235: Use AsyncSpinner to allow plugins chat. Old single-threaded spinner have a dead-lock if you tried to call a service from for example timer callback. For now i hardcoded thread count (4).
  • uncrustify: actuator_control
  • Merge branch 'master' of github.com:mstuettgen/Mavros
  • fixed missing ;
  • code cosmetics
  • further removed unneeded white spaces and minor code cosmetics
  • fixed timestamp and commented in the not-working function call
  • code cosmetics, removed whitespaces and re-ordered function signatures
  • more code comment cosmetic
  • code comment cosmetic
  • uncrustify: fix style
  • readme: add contributing notes
  • uncrustify: mavros base plugins
  • uncrustify: mavros lib
  • uncrustify: mavros headers
  • tools: add uncrustify cfg for fixing codestyle Actually it different from my codestyle, but much closer than others.
  • added more const to function calls to ensure data consistency
  • modified code to fit new message
  • added group_mix to ActuatorControl.msg and a link to mixing-wiki
  • plugin: rc_io: Add override support warning
  • REALLY added ActuatorControl.msg
  • added ActuatorControl.msg
  • fixed latest compiler error
  • renamed cpp file to actuator_control.cpp and added the new plugin to mavros_plugins.xml
  • removed unneeded Mixinx and reverse_throttle, and unneeded variables in function signatures
  • inital draft for set_actuator_control plugin
  • launch: enable setpoint plugins for APM As of ArduCopter 3.2, APM supports position and velocity setpoints via SET_POSITION_TARGET_LOCAL_NED.
  • plugin: setpoint_velocity: Fix vx setpoint vz should have been vx.
  • Contributors: Clay McClure, Marcel Stuettgen, Vladimir Ermakov

0.10.2 (2015-02-25)

  • Document launch files
  • launch: Fix vim modelines #213
  • launch #210: blacklist image_pub by px4 default. Fix #210.
  • Contributors: Clay McClure, Vladimir Ermakov

0.10.1 (2015-02-02)

  • Fix @mhkabir name in contributors.
  • uas #200: Add APM:Rover custom mode decoding. Fix #200.
  • uas #200: Update APM:Plane and APM:Copter modes.
  • Contributors: Vladimir Ermakov

0.10.0 (2015-01-24)

  • mavros #154: Add IO stats to diagnostics. Fix #154.
  • Add rosindex metadata
  • plugin: ftp: init ctor.
  • plugin: sts_time: Code cleanup and codestyle fix.
  • plugin: command: Quirk for older FCU's (component_id) Older FCU's expect that commands addtessed to MAV_COMP_ID_SYSTEM_CONTROL. Now there parameter: ~cmd/use_comp_id_system_control
  • plugin: rc_io: #185 Use synchronized timestamp.
  • plugin: gps: #185 use synchronized timestamp common.xml tells that GPS_RAW_INT have time_usec stamps.
  • uas: Fix ros timestamp calculation. Issues: #186, #185.
  • plugin: add synchronisation to most plugins (fixed) Closes #186.
  • readme: Add notes about coordinate frame conversions #49
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.9.4 (2015-01-06)

  • plugin: sys_time: enable EMA
  • Contributors: Mohammed Kabir

0.9.3 (2014-12-30)

  • plugin: visualization finshed
  • Restore EMA. Works better for low rates.
  • Update sys_time.cpp
  • plugin : add time offset field to dt_diag
  • Final fixes
  • minor
  • plugin : fixes timesync. FCU support checked.
  • Visualisation system import
  • param: Fix float copying too
  • param: Fix missing
  • param: Trynig to fix 'crosses initialization of XXX' error.
  • param: Try to fix #170.
  • Update units
  • New message, moving average compensation
  • Initial import new sync interface
  • plugin: sys_status: Enable TERRAIN health decoding.
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.9.2 (2014-11-04)

0.9.1 (2014-11-03)

  • Update installation notes for #162
  • Contributors: Vladimir Ermakov

0.9.0 (2014-11-03)

0.8.2 (2014-11-03)

  • REP140: update package.xml format. Hydro don't accept this format correctly, but after split i can update.
  • Contributors: Vladimir Ermakov

0.8.1 (2014-11-02)

  • fix build deps for gcs_bridge
  • mavconn #161: Enable rosconsole bridge.
  • mavconn #161: Move mavconn tests.
  • mavconn #161: Fix headers used in mavros. Add readme.
  • mavconn #161: Fix mavros build.
  • mavconn #161: Move library to its own package Also rosconsole replaced by console_bridge, so now library can be used without ros infrastructure.
  • plugin: sys_time: Set right suffixes to uint64_t constants. Issue #156.
  • plugin: sys_time: Add time syncronization diag. Issue #156.
  • plugin: sys_time: Debug result. Issue #156.
  • plugin: Store time offset in UAS. TODO: implement fcu_time(). Issue #156.
  • plugin: sys_time: Fix code style. Also reduce class variables count (most not used outside the method). Issue #156.
  • Update repo links. Package moved to mavlink organization.
  • Nanosecond fix
  • Fix
  • Fixes
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update CMakeLists.txt
  • Update mavros_plugins.xml
  • Update sys_time.cpp
  • Fix build
  • sys_time import. Removed all time related stuff from gps and sys_status
  • Initial sys_time plugin import
  • plugin: ftp: Bytes written now transfered in payload.
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.8.0 (2014-09-22)

  • plugin: ftp: Disable debugging and change level for some log messages. Issue #128.
  • plugin: ftp: Translate protocol errors to errno. Issue #128.
  • scripts: mavftp: Add upload subcommand. Issue #128.
  • python: Add more ftp utils. Issue #128.
  • plugin: ftp: Fix write offset calculation. Issue #128.
  • plugin: ftp: Add FTP:Checksum. Issue #128.
  • plugin: ftp: Add support for FTP:Rename. Issue #128.
  • python: Add FTP:Truncate
  • plugin: ftp: Add FTP:Truncate call. Issue #128.
  • python: Move common mission classes to mavros.mission module. Issue #157.
  • python: Move useful utils to mavros.param module. Issue #157.
  • python: Move common utils to mavros.utils module. Issue #157.
  • python: Create python module for ftp utils. Issue #128, #157.
  • scripts: ftp: Implement file-like object for IO. Issue #128.
  • plugin: ftp: Implement write file. Issue #128.
  • scripts: mavftp: Add remove subcommand. Issue #128.
  • plugin: ftp: Add FTP:Remove call. Issue #128.
  • plugin: ftp: Add response errno from server.
  • plugin: ftp: Add support for 'Skip' list entries. Issue #128.
  • scripts: mavftp: Add mkdir/rmdir support. Issue #128.
  • plugin: ftp: Add mkdir/rmdir support. Issue #128.
  • plugins: ftp: Update protocol headers. Issue #128.
  • Revert "Update package.xml format to REP140 (2)." This reverts commit 81286eb84090a95759591cfab89dd9718ff35b7e. ROS Hydro don't fully support REP140: rospack can't find plugin descriptions. Fix #151.
  • scripts: mavwp: Fix --follow mode
  • plugin: imu_pub: Fix RAW_IMU/SCALED_IMU angular scale constant. Fix #152.
  • launch: remove px4_local_gcs.launch again. It removed in 826be386938c2735c9dab72283ba4ac1c68dc860, but accidentally returned.
  • extras: launch: Use includes. Fix #144.
  • launch: PX4: use node.launch in PX4 scripts. Also remove px4_local_gcs.launch: please use roslaunch mavros px4.launch gcs_url:=udp://@localhost instead. Issue #144.
  • launch: APM2: Add node.launch and update apm scripts to use it. Issue #144.
  • plugin: command: Fix CommandInt x,y types.
  • Update package.xml format to REP140 (2). Fix #104.
  • launch: Blacklist FTP for APM.
  • scripts: mavwp: Add decoding for some DO-* mission items.
  • scripts: mavwp: Add preserve home location option at load operation. Useful if FCU stores home location in WP0 (APM).
  • Added src location.
  • Updated README wstool instructions.
  • plugin: ftp: Init ctor
  • service: mavftp: Initial import. Issue #128.
  • plugin: ftp: Implemnet reset call. Sometimes kCmdReset can restore normal operation, but it might be dangerous. Issue #128.
  • plugin: ftp: Implement FTP:Read call. Issue #128.
  • plugin: ftp: Fix open error. Issue #128.
  • plugin: ftp: Implement FTP:Open (read) and FTP:Close. Issue #128.
  • plugin: ftp: Implement FTP:List method. Issue #128.
  • plugin: ftp: Implement list parsing Issue #128.
  • plugin: ftp: Fix CRC32 calculation. Issue #128.
  • plugin: ftp: Add plugin skeleton. Based on QGroundContol QGCUASFileManager.h/cc. Issue #128.
  • plugin: ftp: Add size info
  • plugin: ftp: Add plugin service API. Issue #128.
  • plugin: vfr_hud: Initial import. Also this plugin publish APM specific WIND estimation message. Fix #86.
  • node: coverity fails at UAS initilizer list
  • plugin: setpoint_attitude: Init ctor, remove code dup.
  • cmake: Add check MAVLINK_DIALECT value Fix #139.
  • Move common cmake rules to modules. Same mech as in cmake_modules package. Issue #139.
  • launch: corrected launch for gcs bridge
  • scripts: mavsetp: Fix misprint.
  • launch files: added px4 launch files for connection with radio and gcs
  • scripts: mavsetp: Fix twist.angular vector construction. Small style fix.
  • Update doxygen documentation. Add split lines in UAS, and make UAS.connection atomic. Add rosdoc configuration for mavros_extras.
  • scripts: mavsetp: corrected API; added possibility of parse angles in dg or rad
  • scripts: mavsetp: corrected msg API; mavteleop: added prefix to rc override
  • scripts: mavsetp: added local accel; corrected how the OFFBOARD mode is swtch.
  • scripts: mavsetp: changed the way offboard mode is switched
  • node: init ctor (coverity)
  • nodelib: add std::array header
  • return msg generator deps for mavconn
  • scripts: mavsys: Implement set rate command.
  • scripts: Add mavsys tool. Implented only mode operation. Issue #134.
  • plugin: sys_status: Implement set_mode service. Previous command shortcut removed. Issue #136, #134.
  • node: Implement reverse mode lookup. Issue #136.
  • plugin: sys_status: Move custom mode decoder to UAS. Issue #136.
  • node: Catch URL open exception. Also update connection pointer type.
  • nodelib: move sources to subdir
  • node: Move UAS to mavros namespace
  • node: Move node code to library.
  • node: Catch DeviceError; use C++11 foreach shugar.
  • plugin: command: Add COMMAND_INT suport. Fix #98.
  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov

0.7.1 (2014-08-25)

  • plugins: setpoint: Update SET_POSITION_TARGET_LOCAL_NED message. Fix #131.
  • scripts: mavsetp: Enable OFFBOARD mode. Issue #126.
  • plugin: command: Add guided_enable shortcut It enable PX4 OFFBOARD mode. Issue #126.
  • scripts: Add mavsetp script. Only local setpoint for now. Issue #126.
  • plugins: Change UAS FCU link name. Reduce smart pointer count, that hold fcu link object.
  • scripts: mavcmd: Add takeoffcur and landcur commands Fix #91, #92. Inspired by #125.
  • Closes #122, closes #123; plugins: move mocap & vision plugins to extras, change vision plugins name
  • plugins: UAS remove std::atomic<double> It don't work at some compilers. Issue #89.
  • plugin: global_position: Fill NavSatFix status filed. Issue #87, #118.
  • plugins: Add GPS data to UAS
  • plugins: Move setpoint_mixin.h Fix #120.
  • plugin: mocap: Fix load. Issue #121.
  • plugins: global_position: get pose orientation from the one stored in uas
  • plugins: global_position: use relative_alt on position.z; mavros_plugins.xml - corrected declaration of mocap_pose_estimate
  • plugin - global_position - changed parameter path / orientation source
  • launch: APM2 blacklist global_position plugin
  • plugin: global_position: Unit unification.
  • plugin: global_position: Move heaedr; Style fix.
  • added rel_pos and compass_hdg pub; minor corrections
  • Merge branch 'master' of https://github.com/vooon/mavros into global_position
  • global_position plugin - initial commit
  • launch: APM2 blacklist mocap plugin.
  • Updated mavros_plugins.xml
  • Fixed dual sources error warning.
  • Fixed styles.
  • Minor changes.
  • added time stamp to received msgs
  • Removed un-needed times.
  • Added mocap_pose_estimate plugin.
  • Code style update
  • setpoint attitude change - warning message
  • Update on setpoint_attitude plugin

    • changed Twist to TwistStamped
    • added reverse_throttle option for throttle control
    • use cmd_vel as the same topic to control linear a angular velocities (it's commonly used by controllers)

    * added normalization filter to thrust

  • node: Remove deprecated conn parameters. Fix #108

  • plugin: vision_speed: Update plugin API.

  • plugin: setpoint_attitude: Update plugin API.

  • plugin: setpoint_accel: Update plugin API.

  • plugin: setpoint_velocity: Update plugin API.

  • plugin: 3dr_radio: Update plugin API.

  • plugin: safety_area: Update plugin API.

  • plugin: setpoint_position: Update plugin API.

  • plugin: vision_position: Update plugin API.

  • plugin: local_position: Update plugin API.

  • plugin: command: Update plugin API.

  • plugin: rc_io: Update plugin API.

  • plugin: waypoint: Update plugin API.

  • plugin: param: Update plugin API.

  • plugin: gps: Update plugin API.

  • plugin: imu_pub: Update plugin API.

  • plugin: sys_status: Update plugin API.

  • plugin: Update plugin API.

  • plugins: disable most of plugins

  • plugin: setpoint_attitude: Add thrust topic. Fix #106.

  • Fix URLs in readme

  • mavros -> ros-message parameter fix only parameter1 was forwarded into the ros message

  • Switch travis to pixhawk dialect. Default dialect build by ros buildfarm. Also remove duplicate ci statuses from mavros readme.

  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov, mthz

0.7.0 (2014-08-11)

  • Add package index readme, Fix #101
  • move mavros to subdirectory, #101
  • Merge branch 'master' of github.com:vooon/mavros * 'master' of github.com:vooon/mavros: Add link to ros-*-mavlink package wiki page.
  • plugins: setpoint: Update setpoint message name. Issue #94, Fix #97.
  • plugin: setpoint_attitude: Update message name. Issues #94, #97.
  • Add link to ros-*-mavlink package wiki page.
  • plugin: gps: Fix gcc 4.6 build (atomic). Not recommended to use std::atomic with gcc 4.6. So i limited to prederined atomics for simple types like int, float etc.
  • plugin: sys_status: Implement PX4 mode decoding. Fix #84.
  • plugin: gps: Add EPH & EPV to diagnostic. Issue #95
  • plugin: gps: Move message processing to individual handlers. Issue #95.
  • plugin: rc_io: Replace override service with topic. (ROS API change). Fix #93.
  • Add dialect selection notes
  • plugins: Change severity for param & wp done messages.
  • plugins: Store raw autopilot & mav type values. This may fix or not issue #89.
  • plugins: init ctor (coverity)
  • plugin: imu_pub: Add ATTITUDE_QUATERNION support. Also reduce copy-paste and use mode readable bitmask check. Fix #85.
  • scriptis: mavcmd: Spelling
  • scripits: Add mavcmd tool
  • Add links to mavros_extras
  • param: sys_status: Option to disable diagnostics (except heartbeat)
  • plugin: command: Add takeoff and land aliases. Issue #68.
  • plugin: command: Add quirk for PX4. Fix #82.
  • plugin: Add UAS.is_px4() helper. Replace some locks with atomic. Issue #82.
  • launch: Clear PX4 blacklist. Issue #68.
  • launch: Add target ids. Also fix PX4 wrong ?ids usage (it set mavros ids, not target). Issue #68.
  • plugin: imu_pub: Fix HRIMU pressure calc. 1 mBar is 100 Pa. Fix #79.
  • plugins: C++11 chrono want time by ref, return *_DT Fix #80.
  • plugins: Replace boost threads with C++11. And remove boost thread library from build rules. Issue #80.
  • plugins: Replace Boost condition variables with C++11 Issue #80.
  • plugins: Replace boost mutexes with C++11. Issue #80.
  • travis clang to old, fails on boost signals2 library. disable.
  • travis: enable clang build.
  • node: Make project buildable by clang. Clang produce more readable errors and provide some static code analysis, so i want ability to build mavros with that compilator.
  • plugins: replace initial memset with c++ initializer list
  • launch: PX4 default ids=1,50. Also waypoint plugin works (with first_pos_control_flight-5273-gd3d5aa9). Issue #68.
  • launch: Use connection URL
  • plugin: vision_speed: Initial import. Fix #67.
  • plugin: sys_status: Add SYSTEM_TIME sync send. Fix #78.
  • plugin: sys_status: Decode sensor health field. Fix #75.
  • Add ci badges to readme
  • plugin: param: erase invalidates iterator. Real error found by coverity :)
  • plugins: Init ctor
  • plugins: Add ctor initialization. Coverity recommends init all data members.
  • test: trying travis-ci && coverity integration. Real ci doing by ros buildfarm.
  • plugins: Fix clang-check errors.
  • test: Add tcp client reconnect test. Issue #72.
  • test: Split open_url test to individual tests. Also removed tcp client deletion on close, heisenbug here. Issue #72.
  • mavconn: Emit port_closed after thread stop. Also use tx state flag, improve error messages and move io post out of critical section. Issue #72.
  • mavconn: Fix TCP server client deletion. Issue #72.
  • test: Remove not needed sleep.
  • mavconn: Remove new MsgBuffer dup. Message drop if closed. Issue #72.
  • mavconn: Fix TCP server. Issue #72.
  • launch: APM2: Blacklist extras.
  • mavconn: Add mutex to channel allocation.
  • mavconn: Fix TCP server for gcc 4.6 Fix #74.
  • Remove libev from package. Issue #72.
  • mavconn: GCC 4.6 does not support typedef like using. Issue #74.
  • Merge pull request #73 from vooon/mavconn-revert-asio mavconn: Revert to Boost.ASIO
  • mavconn: Cleanup boost threads. I will use C++11 standard libs. Issue #72.
  • mavconn: Remove libev default loop thread. Issue #72.
  • mavconn: Port MAVConnTCPServer to Boost.ASIO. TCP send test fails. Issue #72.
  • mavconn: Port MAVConnTCPClient to Boost.ASIO. Also it disables MAVConnTCPServer before i rewrite it. Issue #72.
  • mavconn: Revert MAConnSerial back to Boost.ASIO. Issue #72.
  • test: Fix send_message tests. Use C++11. Issue #72.
  • mavconn: Revert MAVConnUDP back to Boost.ASIO. Also starting to change boost threads and mutexes to C++11. Issue #72.
  • test: Enable send tests. Issue #72.
  • test: And hand test for mavconn hangs. Issue #72.
  • node: Remove anonimous flag from gcs_bridge. Rename node if you want start several copies.
  • install: Remove duplicate
  • node: Fix mavros_node termination message. Issue #58.
  • node: Use URL in mavros_node. Fix #58.
  • node: Use URL in gcs_bridge. Issue #58.
  • node: Rename ros_udp to gcs_bridge. Because now it's not UDP only. Issue #58.
  • Cleanup boost components
  • mavconn: Implement URL parsing. Supported shemas:

    • 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]
    • TCP client: tcp://[server_host][:port][/?ids=sysid,compid]

    * TCP server: tcp-l://[bind_port][:port][/?ids=sysid,compid] Note: ids from URL overrides ids given to open_url(). Issue #58.

  • test: Add tests for UDP, TCP, SERIAL. Send message testa are broken, need to find workaround. Fix #70.

  • plugin: vision_position: Add transform timestamp check. Issue #60.

  • mavconn: Implement TCP server mode. Fix #57.

  • mavconn: Initial support for TCP client mode. Issue #57.

  • mavconn: Boost::asio cleanup.

  • plugin: Remove TimerService from UAS. Fix #59.

  • plugin: param: Add state check to sheduled pull.

  • mavparam: Add force pull.

  • plugin: param: Use ros::Timer for timeouts Also new option for force pull parameters from FCU instead of cache. Fix #59.

  • Add mavsafety info to README.

  • launch: Add apm2_radio.launch (for use with 3DR Radio)

  • plugin: 3dr_radio: Fix build error. Issue #62.

  • plugin: 3dr_radio: Publish status data for rqt_plot Also tested with SiK 1.7. Fix #62.

  • plugin: setpoint_attitude: Fix ENU->NED conversion. Fix #64. Related #33, #49.

  • launch: Add setpoint plugins to APM2 blacklist

  • plugin: setpoint_attitude: Initial import. XXX: need frame conversion #49. Issue #33, #64.

  • plugin: Move common tf code to mixin. Remove copy-paste tf_listener. Issue #33.

  • plugin: setpoint_position: Generalize topic NS with other setpoint_* Issue #33, #61.

  • plugin: setpoint_accel: Initial import. Issues: #33, #61.

  • plugin: position_velocity: Initial import. Also it fix ignore mask in setpoint_position. Issues #33, #61.

  • plugins: 3rd_radio: Initial import. Untested. Issue #61.

  • scripts: Add mavsafety tool. Also add safety_area to APM2 blacklist. Fix #51.

  • plugins: safty_area: Initial import. This plugin listen ~/safety_area/set and send it's data to FCU. Issue #51.

  • plugins: position: Add TF rate limit. Issue #33.

  • plugin: waypoint: Use ros::Timer for timeouts. Also add some debug messages for next debugging PX4. Issue #59.

  • plugin: sys_status: Use ros::Timer for timeouts Also move message rx to it's own handlers. Issue #59.

  • Remove rosdep.yaml and update readme

  • Add deb build notes to readme. Issue #55.

  • Add sudo notes to readme.

  • Merge pull request #56 from vooon/54_try_libev Switch to libev

  • Add libev to README

  • package: Add temporary rosdep for libev-dev. Issue #54.

  • mavconn: Move MAVConnUDP to libev. And fix docs in serial. Issue #54.

  • mavconn: Move MAVConnSerial to libev. Adds stub for open URL function. Issure #54.

  • Contributors: Vladimir Ermakov, Mohammed Kabir, Nuno Marques, Glenn Gregory

0.6.0 (2014-07-17)

  • plugin: local_position: Use same timestamp in topic and TF. Issue #33.
  • plugins: TF thread required, remove notes. Issue #33.
  • launch: Add example launch for PX4 Issue #45.
  • plugin: imu_pub: Fix attitude store in UAS Issue #33. Fix #53.
  • plugins: Disable position topics if tf_listen enabled Also change default frame names: vision and setpoint. Issue #33.
  • plugins: Fix typo in frame_id params. Issue #33.
  • plugins: Add vision and setpoint TF listeners Also change parameter names to same style. Issue #33.
  • plugin: vision_position: Add PositionWithCovarianceStamped option Issue #33.
  • Add boost filesystem lib to link On some platforms its absence breaks build by: undefined reference to boost::filesystem::path::codecvt()
  • launch: Add example for APM2 Fix #45.
  • plugin: setpoint_position: Initial import And some small doc changes in other position plugins. Issue #33.
  • node: Add connection change message Fix #52.
  • plugins: vision_position: Initial import TODO: check ENU->NED maths. Issue #33.
  • plugins: Remove unneded 'FCU' from diag
  • plugin: local_position: Change plane conversion Bug: #49.
  • plugin: imu_pub: Fix magnetic vector convertions Bug: #49.
  • Use dialects list from package
  • plugin: local_position: Fix orientation source Part of #33.
  • node: Show target system on startup Fix #47.
  • plugin: local_position: Initial add Receive LOCAL_POSITION_NED message and publish it via TF and PoseStamped topic in ENU frame. Part of #33.
  • node: Use boost::make_shared for message allocation Fix #46.
  • plugins: Use boost::make_shared for message allocation Part of #46.
  • plugin: imu_pub: Fix misprint in fill function Fix magnetometer vector convertion (HR IMU). Related #33.
  • plugin: imu_pub: setup cleanup.
  • Update readme
  • plugin: gps: Fix gps_vel calculation Fix #42.
  • plugins: Make name and messages methods const. (breaking). WARNING: this change broke external plugins. Please add const to get_name() and get_supported_messages(). Part of #38.
  • plugins: Use mavlink_msg_*_pack_chan() functions Fix #43.
  • mavconn: Reuse tx buffer (resize by extents) Part of #38.
  • mavconn: Do not finalize messages if id pair match mavlink_*_pack also do finalize, so explicit finalization just recalculate crc and seq number (doubles work). Test later if we need check seq too.
  • mavconn: Documentation and cleanup Make MAVConn classes noncopyable. Remove copy-paste copy and following async_write calls. Reserve some space in tx queues. Replace auto_ptr with unique_ptr.
  • test: Fix header include
  • mavconn: Fix possible array overrun in channel alocation. Problem found by clang.
  • fix some roslint errors
  • mavconn: move headers to include
  • node: Implement plugin blacklist. New parameter: ~/plugin_blacklist lists plugin aliases with glob syntax. Fix #36.
  • plugins: Change constants to constexpr (for gcc 4.6)
  • mavconn: Add gencpp dependency (utils.h requiers generated header)
  • Move duplicate Mavlink.msg copy to utils.h
  • Remove tests that requires connection to FCU
  • plugins: imu_pub: Fix PX4 imu/data linear_accelerarion field Should fix: #39.
  • plugins: imu_pub: Add magnitic covariance Trying to move constants with constexpr. Related: #13.
  • Remove testing info Need to remove tests that could not run on build farm.
  • Contributors: Vladimir Ermakov

0.5.0 (2014-06-19)

  • Remove mavlink submodule and move it to package dependency Bloom release tool don't support git submodules, so i've ceate a package as described in http://wiki.ros.org/bloom/Tutorials/ReleaseThirdParty . Fix #35.
  • plugins: param: add missing gcc 4.6 fix.
  • plugins: fix const initializers for gcc 4.6
  • plugins: imu_pub: fix const initializers for gcc 4.6 Fix for build failure devel-hydro-mavros #4.
  • Add support for GCC 4.6 (C++0x, ubuntu 12.04) I don't use complete c++11, so we could switch to c++0x if it supported.
  • plugins: rc_io: Add override rcin service Fix: #22.
  • plugins: sys_status: fix timeouts Fix #26.
  • plugins: sys_status: add set stream rate service Some additional testing required. Fix #23.
  • Remove unused boost libarary: timer Build on jenkins for hydro failed on find boost_timer.
  • 0.4.1
  • Add changelog for releasing via bloom

0.4.1 (2014-06-11)

  • node: Show serial link status in diag Now 'FCU connection' shows actual status of connection (HEARTBEATS).
  • Fix #29. Autostart mavlink via USB on PX4 Changes mavconn interface, adds new parameter.
  • Fix installation rules. Fix #31.
  • Setup UDP transport for /mavlink messages
  • Fix mavlink dialect selection Fix #28.
  • Add link to wiki.ros.org Part of #27.

0.4.0 (2014-06-07)

  • Release 0.4.0 And some docs for CommandPlugin.
  • plugins: command: Command shortcuts Fix #12.
  • plugins: command: Add ACK waiting list Part of #12.
  • plugins: command: Initial naive realization. Partial #12, #25.
  • mavconn: Fix build on Odroid with Ubuntu 13.10 Fix #24.
  • plugins: rc_io: initial add RC_IO plugin Topics:

    • ~/rc/in -- FCU RC inputs in raw microseconds

    * ~/rc/out -- FCU Servo outputs Fix #17. Partiall #22.

  • Fix installation wstool command. wstool set, not wstool add.

  • Add installation notes to README Installing pymavlink is not required, but try if errors.

  • Fix headers in README.md

  • ros_udp: New node for UDP proxing Add some examples to README.md. Fix #21.

  • sys_status: Add state publication Fix #16.

  • sys_status: Sent HEARTBEAT if conn_heartbeat > 0 Fix #20.

  • sys_status: add sensor diagnostic See #16.

  • sys_status: Add battery status monitoring Fix #19, partial #16.

  • sys_status: HWSTATUS support Fix #18, partial #20.

  • plugins: imu_pub: Add RAW_IMU, SCALED_IMU and SCALED_PRESSURE handlers Fix #13. Refactor message processing. Combination of used messages: On APM: ATTITUDE + RAW_IMU + SCALED_PRESSURE On PX4: ATTITUDE + HIGHRES_IMU On other: ATTITUDE + (RAW_IMU|SCALED_IMU + SCALED_PRESSURE)|HIGHRES_IMU Published topics:

    • ~imu/data - ATTITUDE + accel data from *_IMU
    • ~imu/data_raw - HIGHRES_IMU or SCALED_IMU or RAW_IMU in that order
    • ~imu/mag - magnetometer (same source as data_raw)
    • ~imu/temperature - HIGHRES_IMU or SCALED_PRESSURE

    * ~imu/atm_pressure - same as temperature

  • Update readme

  • mavwp: Add --pull option for 'show' operation. Reread waypoints before show.

  • MissionPlanner use format QGC WPL, Fix #15 Code cleanup;

  • Update mavlink version.

  • Update mavlink version

  • mavparam: fix #14 support for QGC param files

  • mavwp: Add mavwp to install

0.3.0 (2014-03-23)

  • Release 0.3.0
  • mavwp: Add MAV mission manipulation tool Uses WaypointPlugin ROS API for manipulations with FCU mission.

    • show -- show current mission table
    • pull -- update waypoint table
    • dump -- update and save to file
    • load -- loads mission from file
    • clear -- delete all waypoints
    • setcur -- change current waypoint
    • goto -- execute guided goto command (only APM) Currently supports QGroundControl format only.
  • plugins: wp: Add GOTO, update documentation

  • plugins: wp: Auto pull

  • plugins: wp: SetCurrent & Clear now works

  • plugins: wp: Push service works

  • plugins: wp: push almost done

  • plugins: wp: Pull done

  • plugins: param: remove unused ptr

  • plugins: wp: mission pull almost done

  • plugins: wp: Add convertors & handlers

  • plugins: Waypoint plugin initial

  • Use C++11 feuture - auto type

  • plugins: refactor context & link to single UAS class UAS same functions as in QGC.

  • plugins: Add msgs and srvs for Waypoint plugin

  • Update mavlink library

  • Update mavlink version

  • mavparam: Fix for DroidPlanner param files & cleanup DroidPlanner adds some spaces, don't forget to strip it out. Cleanup unused code from Parameter class.

0.2.0 (2014-01-29)

  • mavparam: Add MAV parameter manipulation tool Uses ParamPlugin ROS API for manipulating with fcu params.

    • load -- load parameter from file
    • dump -- dump parameter to file
    • get -- get parameter
    • set -- set parameter Currently supports MissionPlanner format only. But DroidPlanner uses same format.
  • Update README and documentation

  • plugins: param: implement ~param/push service Also implement sync for rosparam:

    • ~param/pull service pulls data to rosparam
    • ~param/push service send data from rosparam
    • ~param/set service update rosparam if success
  • plugins: param: implement ~param/set service

  • plugins: param: implement ~param/get service

  • plugins: param: Implement automatic param list requesting

  • plugins: use recursive_mutex everywhere

  • plugins: param now automaticly requests data after connect

  • plugins: Add common io_service for plugins, implement connection timeout Some plugin require some delayed processes. Now we can use boost::asio::*timer. New parameter:

    • ~/conn_timeout connection timeout in seconds
  • plugins: add param services

  • mavconn: set thread names WARNING: pthread systems only (BSD/Linux)

  • plugins: implement parameters fetch service

  • plugins: fix string copying from mavlink msg

  • plugins: Setup target in mav_context New params:

    • ~target_system_id - FCU System ID
    • ~target_component_id - FCU Component ID
  • plugins: IMU Pub: add stdev parameters, change topic names. Add parameters:

    • ~imu/linear_acceleration_stdev - for linear acceleration covariance
    • ~imu/angular_velocity_stdev - for angular covariance
    • ~imu/orientation_stdev - for orientation covariance Change topic names (as in other IMU drivers):
    • ~imu -> ~/imu/data
    • ~raw/imu -> ~/imu/data_raw
  • plugins: Params initial dirty plugin

  • Fix mavlink dialect choice.

  • plugins: Add context storage for automatic quirk handling ArduPlilot requires at least 2 quirks:

    • STATUSTEXT severity levels
    • parameter values is float
  • Implement MAVLink dialect selection ArduPilotMega is default choice.

  • doc: add configuration for rosdoc_lite

0.1.0 (2014-01-05)

  • Version 0.1.0 Milestone 1: all features from mavlink_ros package.xml was updated.
  • Fix typo and add copyright string NOTE: Please check typos before coping and pasting :)
  • plugins: gps: Add GPS_RAW_INT handler GPS_STATUS not supported by APM:Plane. ROS dosen't have standard message for satellites information.
  • mavconn: small debug changes Limit no GCS message to 10 sec.
  • node: Terminate node on serial port errors
  • plugins: Add GPS plugin SYSTEM_TIME to TimeReference support. TODO GPS fix.
  • Fix build and update MAVLink library
  • plugins: sys_status: Add SYSTEMTEXT handler Two modes:

    • standard MAV_SEVERITY values
    • APM:Plane (default) TODO: add mavlink dialect selection option
  • plugins: add some header doxygen tags Add license to Dummy.cpp (plugin template).

  • plugins: sys_status: Add MEMINFO handler MEMINFO from ardupilotmega.xml message definition. Optional.

  • update README

  • update TODO

  • plugins: Add imu_pub plugin. Publish ATTITUDE and HIGHRES_IMU data. HIGHRES__IMU not tested: Ardupilot sends ATTITUDE only :(

  • node: publish Mavlink.msg only if listners > 0

  • plugins: Add sys_status plugin. Initial.

  • plugins: implement loading & rx routing

  • plugins: initial

  • node: Add diagnostics for mavlink interfaces

  • mavconn: add information log wich serial device we use.

  • mavconn: fix overloaded MAVConn*::send_message(msg)

  • mavros: Add mavros_node (currently serial-ros-udp bridge) Message paths: Serial -+-> ROS /mavlink/from +-> UDP gcs_host:port ROS /mavlink/to -+-> Serial UDP bind_host:port -+

  • Add README and TODO files.

  • mavconn: fix MAVConnUDP, add mavudpproxy test mavudpproxy -- connection proxy for QGroundControl, also used as test for MAVConnUDP and MAVConnSerial.

  • mavconn: add UDP support class

  • mavconn: fix: should use virtual destructor in interface class

  • mavconn: add getters/setters for sys_id, comp_id; send_message return.

  • mavconn: simple test. tested with APM:Plane: works.

  • mavconn: fix linking

  • mavconn: serial interface

  • Add mavconn library prototype mavconn - handles MAVLink connections via Serial, UDP and TCP.

  • Add MAVLink library + build script

  • Initial Import Mavlink.msg from mavlink_ros package ( https://github.com/mavlink/mavlink_ros ).

  • Contributors: Vladimir Ermakov

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/apm2.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/node.launch
      • fcu_url
      • gcs_url
      • tgt_system
      • tgt_component
      • pluginlists_yaml
      • config_yaml
      • log_output [default: screen]
  • launch/apm.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/px4.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/mavlink_bridge.launch
      • ns [default: iris]
      • mavlink_bridge_url [default: udp://127.0.0.1:14553@127.0.0.1:14560]

Messages

No message files found.

Services

No service files found

Plugins

Package Summary

Tags uav mav mavlink plugin apm px4
Version 0.18.2
License GPLv3
Buildtool CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version master
Last Updated 2016-07-03
Dev Status DEVELOPED
Released RELEASED

Package Description

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

Additional Links

Maintainers

  • Vladimir Ermakov

Authors

  • Vladimir Ermakov
README

MAVROS

MAVLink extendable communication node for ROS with proxy for Ground Control Station (e.g. QGroundControl).

ROS API documentation moved to wiki.ros.org.

Features

  • Communication with autopilot via serial port, UDP or TCP (e.g. PX4 Pro or ArduPilot)
  • Internal proxy for Ground Control Station (serial, UDP, TCP)
  • mavlink_ros compatible ROS topics (Mavlink.msg)
  • Plugin system for ROS-MAVLink translation
  • Parameter manipulation tool
  • Waypoint manipulation tool
  • PX4Flow support (by mavros_extras)
  • OFFBOARD mode support.

Limitations

Only for linux. Depends on Boost library >= 1.46 (hydro on 12.04). Catkin build system required (tested with ROS Hydro Medusa, Indigo Igloo and Jade Turtle).

This package are dependent on ros-*-mavlink build from mavlink-gbp-release. Since 2014-06-19 it exists in Hydro and Indigo package index (so you can install via rosdep). Since 2015-02-25 exists for Jade too.

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 boroadcast: 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]

Note:

  • Ids from URL overrides value given by system_id & component_id parameters.
  • bind_host - default 0.0.0.0 - i.e. IP4 ANY
  • UDP default ports: 14555 @ 14550
  • UDP remote address updated every time with incoming packet on bind port.
  • TCP default port: 5760

Coordinate frames

MAVROS does translate Aerospace NED frames, used in FCUs to ROS ENU frames and vice-versa. For translate airframe related data we simply apply rotation 180° abount ROLL (X) axis. For local we apply 180° about ROLL (X) and 90° about YAW (Z) axes. Plase read documents from issue #473 for additional information.

All the conversions are handled in src/lib/uas_frame_conversions.cpp and src/lib/uas_quaternion_utils.cpp and tested in test/test_frame_conversions.cpp and test/test_quaternion_utils.cpp respectively.

Related issues: #49 (outdated), #216 (outdated), #317 (outdated), #319 (outdated), #321 (outdated), #473. Documents: Frame Conversions, Mavlink coordinate frames.

Programs

mavros_node -- main communication node

Main node. Allow disable GCS proxy by setting empty URL.

Run example (autopilot connected via USB at 921600 baud, GCS running on the host with IP 172.16.254.1):

rosrun mavros mavros_node _fcu_url:=/dev/ttyACM0:921600 _gcs_url:=udp://@172.16.254.1

gcs_bridge -- additional proxy

Allows you to add a channel for GCS. For example if you need to connect one GCS for HIL and the second on the tablet.

Example (SITL & QGroundControl):

rosrun mavros mavros_node _gcs_url:='udp://:14556@172.16.254.129:14551' &
rosrun mavros gcs_bridge _gcs_url:='udp://@172.16.254.129'

Launch Files

Launch files are provided for use with common FCUs, in particular Pixhawk:

  • px4.launch -- for use with the PX4 Pro flight stack (for VTOL, multicopters and planes)
  • apm.launch -- for use with APM flight stacks (e.g., all versions of ArduPlane, ArduCopter, etc)

Examples:

roslaunch mavros px4.launch 
roslaunch mavros apm.launch fcu_url:=tcp://localhost gcs_url:=udp://@

Installation

Binary installation (debian)

Since v0.5 that programs available in precompiled debian packages for x86 and amd64 (x86_64). Also v0.9+ exists in ARMv7 repo for Ubuntu armhf. Just use apt-get for installation:

sudo apt-get install ros-jade-mavros ros-jade-mavros-extras

Source installation

Use wstool utility for retriving sources and catkin tool for build.

sudo apt-get install python-catkin-tools python-rosinstall-generator

# 1. unneded if you already has workspace
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
wstool init src

# 2. get source (upstream - released)
rosinstall_generator --upstream mavros | tee /tmp/mavros.rosinstall
# alternative: latest source
rosinstall_generator --upstream-development mavros | tee /tmp/mavros.rosinstall

# 3. latest released mavlink package
# you may run from this line to update ros-*-mavlink package
rosinstall_generator mavlink | tee -a /tmp/mavros.rosinstall
# alternative: to build master on Indigo or Jade:
rosinstall_generator --rosdistro kinetic --upstream mavlink | tee -a /tmp/mavros.rosinstall

# 4. workspace & deps
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro jade -y

# 5. finally - build
catkin build

Build error. if you has error with missing mavlink* then you need fresh mavlink package. You may update from ros-shadow-fixed (binary installation) or redo script from step 3.

Note. Since MAVLink 2.0 merged all dialects supported by same binary. Unfortunately overlap of v1.0 message ID's not fully handled, fisrt loaded message forbid futher changes. Load order always:

  1. common
  2. ardupilotmega
  3. alphabetical ordered list
  4. ...

Note: MAVLINK_DIALECT not used anymore.

Contributing

  1. Fork the repo: fork
  2. Clone the repo (git clone https://github.com/mavlink/mavros.git);
  3. Create a remote connection to your repo (git remote add <remote_repo> git@github.com:<YourGitUser>/mavros.git);
  4. Create a feature/dev branch (git checkout -b <feature_branch>);
  5. Add the changes;
  6. Apply the changes by commiting (git commit -m "<message>" or git commit -a and then write message; if adding new files: git add <path/to/file.ext>);
  7. Check code style uncrustify -c ${ROS_WORKSPACE}/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>;
  8. Fix small code style errors and typos;
  9. Commit with description like "uncrustify" or "code style fix". Please avoid changes in program logic (separate commit are better than mix of style and bug fix);
  10. Run tests:
    • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
    • with catkin tools, issue catkin run_tests;
  11. If everything goes as planned, push the changes (git push -u <remote_repo> <feature_branch>) and issue a pull request.

Glossary

  • GCS — Ground Control Station
  • FCU — Flight Control Unit (aka FC)
  • OBC — OnBoard Computer (your odroid or raspberry)
  • MAVLink -- communication protocol
  • mavlink_ros -- original ROS node (few messages, no proxy)
  • Pixhawk -- Reference hardware platform
  • PX4 -- Reference implementation in the academic community
  • ArduPilot -- tested autopilot APM:Plane (default command set)
  • QGroundControl -- tested ground control station for Android, iOS, Mac OS, Linux and Windows
  • mavros_extras -- extra plugins & node for mavros
CHANGELOG

Changelog for package mavros

0.18.2 (2016-06-30)

  • plugin:sys_status: Fix STATUSTEXT log prefix
  • Contributors: Vladimir Ermakov

0.18.1 (2016-06-24)

  • lib: Fix base mode flag check
  • plugins: Move pluginlib macros.h to tail
  • plugin:param fix #559: Ignore PX4 _HASH_CHECK param
  • Contributors: Vladimir Ermakov

0.18.0 (2016-06-23)

  • lib #439: MAV_CMD to_string is not required.
  • plugin:sys_status #458: Hanlde BATTERY_STATUS (PX4)
  • plugin:sys_status fix #458: Use sensor_msgs/BatteryState message. Minimal data, for all other need to handle BATTERY_STATUS.
  • plugin:command fix #561: PX4 now sends COMMAND_ACK. And like APM do not check confirmation field. :)
  • readme #544: add udp-b://@ URL
  • plugin:hil_controls: Update plugin API
  • Merge branch 'feature/hil_controls_plugin' of https://github.com/pvechersky/mavros into pvechersky-feature/hil_controls_plugin * 'feature/hil_controls_plugin' of https://github.com/pvechersky/mavros: Adding anchor to the HIL_CONTROLS message reference link Ran uncrustify on hil_controls plugin Utilizing synchronise_stamp and adding reference to MAVLINK msg documentation Added a plugin that publishes HIL_CONTROLS as ROS messages
  • node: fix subscription message type checks
  • plugin: use mavlink::to_string() for std::array<char, N>
  • readme: update CI, no more MAVLINK_DIALECT
  • plugin:waypoint: Fix target id's on MISSION_ITEM
  • node: Add ~fcu_protocol parameter
  • Ran uncrustify on hil_controls plugin
  • Utilizing synchronise_stamp and adding reference to MAVLINK msg documentation
  • node: set gcs_url on internal GCS bridge diag hardware Id
  • plugins: Use UAS::msg_set_target()
  • Added a plugin that publishes HIL_CONTROLS as ROS messages
  • lib: PX4 add AUTO.FOLLOW_TARGET
  • mavros: Update tests
  • extras: Update UAS
  • UAS: Update plugins for FTF module
  • UAS: move enum stringify functions
  • lib: Generate MAV_SENSOR_ORIENTATION
  • UAS: move MAV_SENSOR_ORIENTATION out
  • UAS: Move transformation utilities to ftf module
  • plugin:rc_io: Fix log printf-format warning
  • make GCC 4.8 happy. (travis)
  • gcs_bridge: done
  • param:ftp: Update API
  • plugin:param: Works. Tested on APM
  • plugin:param: Update, almost work
  • plugin:waypoint: Fix Item - ROS binding
  • Message type mismatch code do not work
  • plugin:waypoint: Update API
  • plugin:sys_time: Update API
  • plugin:sys_status: Update API
  • plugin:setpoint_raw: Update API
  • plugin:setpoint_attitude: Update API
  • plugin:setpoint_accel: Update API
  • plugin:setpoint_velocity: Update API
  • plugin:setpoint_position: Update API
  • plugin:vfr_hud: Update API
  • plugin:safety_area: Update API
  • plugin:rc_io: Update API
  • plugin:manual_control: Update API, fix uas init
  • plugin:local_position: Update API
  • plugin:imu_pub: Update API
  • plugin:global_position: Update API
  • mavros: make_handle() this shouldn't be const
  • plugin:common: Update API
  • plugin:altitude: uncrustify
  • plugins: Rutine sed + fix misprint
  • plugin:altitude: Update API
  • plugins: Automatic replacement of routine API changes (sed)
  • plugin:actuator_control: Update API
  • plugin:3dr_radio: Update API
  • node: Update plugin loading and message routing
  • node: type_info -> SIGSEGV
  • node: prepare new plugin loading
  • node: Rename plugib base class - API incompatible to old class
  • labmavconn: finding sigsegv
  • Contributors: Pavel, Vladimir Ermakov

0.17.3 (2016-05-20)

  • libmavconn #543: support build with mavlink 2.0 capable mavgen
  • node: Remove warning about MAVLINK_VERSION redefine
  • Fix bug with orientation in setpoint_raw plugin Fixes a bug where the ned_desired_orientation was not actually passed into set_attitude_target. Instead, the desired_orientation (wrong frame) was passed.
  • Contributors: Justin Thomas, Vladimir Ermakov

0.17.2 (2016-04-29)

  • Update README.md
  • Update README.md Updated / completed examples.
  • Update README.md
  • Fix for kinetic std::isnan.
  • Contributors: James Goppert, Lorenz Meier

0.17.1 (2016-03-28)

0.17.0 (2016-02-09)

  • update README
  • rebased with master
  • Fixed ROS_BREAK
  • Updates for ROS_BREAK and code style
  • Nitpicks and uncrustify
  • Updated frame transformations and added odom publisher to local position plugin
  • Contributors: Eddy, Vladimir Ermakov, francois

0.16.6 (2016-02-04)

  • node fix #494: Report FCU firmware type in rosonsole log
  • scripts fix #478: Remove guided_enable garbage. I'm missed this when do #407.
  • Contributors: Vladimir Ermakov

0.16.5 (2016-01-11)

0.16.4 (2015-12-14)

  • scripts: checkid: be always verbose, add --follow
  • scripts: fix copyright indent
  • scripts: mavcmd: Fix bug: param7 not passed to service call!
  • scripts #382: Add ID checker script. It is not complete, but i hope it helps in current state.
  • scripts: mavcmd: Add support for broadcast requests
  • event_launcher: fix bug: Trigger service server is not saved in Launcher Also fixes: environment variables may contain ~ (user dir) in expansion.
  • using timestamp from mavlink message
  • Update mavlink message documentation links
  • lib: update MAV_TYPE stringify
  • lib: Add RATTITUDE PX4 mode
  • remove "altitude_" prefix from members
  • updated copyright
  • implemented altitude plugin
  • Contributors: Andreas Antener, Vladimir Ermakov

0.16.3 (2015-11-19)

  • use safe methods to get imu data in local_position plugin
  • Contributors: Andreas Antener

0.16.2 (2015-11-17)

  • transform yaw and yaw rate from enu to ned
  • Contributors: Andreas Antener

0.16.1 (2015-11-13)

  • python: fix import error of goto service
  • don't warn anymore about px4 not supporting rc_io
  • Contributors: Andreas Antener, Vladimir Ermakov

0.16.0 (2015-11-09)

  • lib: Update ArduCopter mode list
  • plugin: sys_status #423: set_mode set arming and HIL flags based on previous state
  • lib #423: Save base_mode in UAS.
  • Finalized local position topic names
  • readme: add link to catkin-tools docs
  • readme #409: merge mavlink and mavros installation instruction
  • Fixed redundant rotation of IMU data and redundant orientation data
  • plugin: setpoint_raw fix #418: add attitude raw setpoint Related #402.
  • Added velocity output of FCU's local position estimate to ROS node
  • plugin: sys_status fix #417: remove APM statustext quirk
  • plugin: waypoint fix #414: remove GOTO service. It is replaced with more standard global setpoint messages.
  • plugin: setpoint_raw fix #415: add global position target support Related to #402.
  • plugin: command fix #407: remove guided_enable sevice
  • plugin: setpoint_raw #402: implement loopback.
  • plugin: setpoint_raw #402: Initial import.
  • readme fix #410: use only catkin tool
  • readme: add defaults for URL
  • pass new extended state to ros
  • python: add util to convert pymavlink message to Mavlink.msg
  • python: convert input to bytearray
  • python: add payload convertion util
  • gcs_bridge #394: enable both UDPROS and TCPROS transports
  • EL: add try-except on handlers
  • event_launcher: show logfile path
  • event_launcher #386: expand shell vars for logfile
  • Mavros library depends on mavros_msgs headers Adding this dependency makes sure that mavros_msgs message headers are generated before the mavros library is built, since it needs those headers.
  • Contributors: Andreas Antener, Eddy, Jon Binney, Vladimir Ermakov

0.15.0 (2015-09-17)

  • lib: fix timesync uninit bug. Uninitialized variable caused wrong timestamps with APM.
  • python #286: use checksum - save ticks
  • script #385: output to log-file
  • script #385: remove RosrunHandler and RoslaunchHandler
  • script #385: attempt to implement rosrun fails. ROSLaunch class wants all node operations from main thread. That is not possible.
  • script #385: fix shell-killer, but logging are broken and removed
  • script #385: shell-launcher now works!
  • script #385: add example configuration
  • script #385: shell handler done. next - rosparam handling
  • script #385: starting work on simple shell launcher
  • scripts: starting event_launcher
  • python: Remove unneded slice operation. Fix copyright year. list[:len(list)] is equal to list, but creates new list with data from that slice.
  • updated mavlink byte buffer conversion
  • plugin: manual_control: Use shared pointer message Fix alphabetic order of msgs.
  • python: add helper for converting mavros_msgs/Mavlink to pymavlink
  • Add MANUAL_CONTROL handling with new plugin
  • Contributors: Andreas Antener, Vladimir Ermakov, v01d

0.14.2 (2015-08-20)

0.14.1 (2015-08-19)

  • package: Fix depend on rosconsole-bridge
  • Removed <remap>
  • Contributors: Vladimir Ermakov, devbharat

0.14.0 (2015-08-17)

  • python: call of mavros.set_namespace() is required.
  • scripts: mavftp fix #357: add verify command
  • scripts: mavftp #357: progressbar on download operation
  • scripts: mavftp #357: progress bar for upload operation.
  • scripts: mavftp: New command cd. All path arguments now may handle relative paths.
  • readme: fix frame tansform section
  • mavros: readme: update info on frame conversions
  • mavros: readme: update contribution steps
  • node: Replace deprecated copy functions. Also allow mavlink to & from topics to be namespaced.
  • extras: scripts: use API from mavros module
  • scripts: fix for new message location
  • python: update mavros lib to new message location
  • package: remove not exist dependency
  • plugin: waypoint: Fix message include
  • plugin: vfr_hud: Fix message include
  • plugin: rc_io: Fix message include
  • plugin: param: Fix message include
  • plugin: ftp: Fix message include
  • plugin: sys_status: Fix message include
  • plugin: command: Fix message include
  • plugin: 3dr_radio: Fix message include
  • plugin: actuator_control: Fix message include.
  • msgs: update copyright year
  • msgs: deprecate mavros::Mavlink and copy utils.
  • msgs: change description, make catkin lint happy
  • msgs #354: move all messages to mavros_msgs package.
  • Minor typo fix.
  • node: increase diag timer to 2 Hz
  • node: move diagnostic to AsyncSpinner threads.
  • Contributors: TSC21, Tony Baltovski, Vladimir Ermakov

0.13.1 (2015-08-05)

  • lib #358: cleanup. Replace UAS::getYaw() with UAS::quaternion_get_yaw().
  • lib #358: found correct getYaw(). Test for each degrees in -180..180.
  • test #358: test more different angles. Compare rotation result.
  • lib #358: try to implement algo from wikipedia.
  • lib #358: still failing. add recursive test for range -Pi..+Pi
  • lib #358: try solve issue using older eulerAngles()
  • lib #358: remove to_rpy test
  • Merge branch 'master' of github.com:mavlink/mavros * 'master' of github.com:mavlink/mavros: global_position: move relative_alt and compass_heading init back add nav_msgs to dependencies so to make Travis happy global_position: update pose and twist to odom msg
  • test fix #359: split out quaternion tests.
  • lib #359: move quaternion utils.
  • global_position: move relative_alt and compass_heading init back
  • add nav_msgs to dependencies so to make Travis happy
  • global_position: update pose and twist to odom msg
  • test #358: add tests for negative values and quaternion_to_rpy tf2 compatibility check Tests now fails!
  • sctipts: fix gps topic path
  • lib: fix input validation in UAS::orientation_from_str()
  • test: add case for num str->sensor orientation
  • package: fix CHANGELOG.rst
  • Contributors: TSC21, Vladimir Ermakov

0.13.0 (2015-08-01)

  • plugin: setpoint_attitude #352: use new helper.
  • plugin: sys: Fix cppcheck and YouCompleteMe warnings
  • plugin: ftp: Fix cppcheck errors.
  • lib #352: Add helper function UAS::quaternion_to_mavlink()
  • Fixed bug in send_attitude_target() The transformed quaternion wasn't being passed to set_attitude_target(), resulting in an incorrect attitude setpoint. I've now fixed this issue.
  • scripts: fix mavwp
  • test: add test cases for new sensor orientation functions
  • remove tf1 dep
  • lib #319: Remove TF types from UAS
  • plugin: param: new message type: ParamValue
  • msgs: Move MAV_CMD values to separate msg
  • plugin: command: fix build
  • fix whitespaces in python scripts
  • Merge pull request #312 from mhkabir/cam_imu_sync Camera IMU synchronisation support added
  • Added launch file for PX4 posix sitl to launch gcs_bridge node for bridging posix and gazebo
  • scripts: mavftp: little speed up by aligning access to payload length
  • launch: Add optional log_output arg
  • Merge branch 'orientation_enum_name' * orientation_enum_name: distance_sensor #342: correct orientation parameter handling. lib #342: try to convert numeric value too px4_config: adapt to distance_sensor params to new features distance_sensor: restructure orientation matching and verification lib #342: Added sensor orientation string repr.
  • lib #342: try to convert numeric value too
  • px4_config: adapt to distance_sensor params to new features
  • lib #342: Added sensor orientation string repr.
  • launch: update local_position conf
  • test: Add test for UAS::sensor_orientation_matching()
  • Update cmake Eigen3 finding rules. Migration described at: http://wiki.ros.org/jade/Migration#Eigen_CMake_Module_in_cmake_modules
  • lib #319, #341: preparation for str->MAV_SENSOR_ORIENTATION func
  • lib #319: Return quaternion from UAS::sensor_matching()
  • lib: Remove unneded NodeHandle
  • launch fix #340: update default component id of PX4.
  • plugin: sys_status: Add fallback to adressed version request.
  • Can not remove tf package before #319 is done. tf::Vector3 and other tf1-bullet still in use.
  • plugin: sys_status: Use broadcast for version request.
  • fix #71: replace depend tf to tf2_ros.
  • plugin: Use UAS::syncronized_header() for reduce LOC.
  • lib #319: use similar names for covariances as eigen vector
  • lib #319: transform_frame() for Covariance3x3
  • lib #319: remove unused bullet based transform_frame()
  • extras: vision_pose #71: Use TF2 listener. Also #319.
  • plugin #71: Implement TF2 listener. Change param names. Breaks extras.
  • uas #71: Use single TF2 objects for broadcasting and subscription.
  • launch: Update configs.
  • lib: Add UAS::quaternion_to_rpy()
  • plugin: safety_area #319: Change transform_frame()
  • plugin: local_position #71 #319: port to TF2 and Eigen
  • lib: Add UAS::synchonized_header()
  • plugin: command: Add command broadcasting support.
  • Perform the autopilot version request as broadcast
  • lib: Update PX4 mode list
  • plugin: global_position #325: port tf broadcaster to tf2 Also #71.
  • plugin: global_position #325: reenable UTM calc
  • plugin: gps #325: remove gps plugin.
  • plugin: global_position #325: merge gps_raw_int handler
  • plugin: setpoint_accel #319: use eigen frame transform. I don't think that PX4 support any other frame than LOCAL_NED. So i removed comment. Also style fix in setpoint_velocity.
  • plugin: setpoint_velocity #319: use eigen based frame transform.
  • plugin: setpoint_position #273: remove PX4 quirk, it is fixed.
  • plugin: ftp: Update command enum.
  • plugin: imu_pub fix #320: move constants outside class, else runtime linkage error.
  • plugin: imu_pub #320: first attempt
  • eigen #319: handy wrappers.
  • eigen #319: add euler-quat function. Also #321.
  • test #321: remove duplicated test cases, separate by library. Add test for checking compatibility of tf::quaternionFromRPY() and Eigen based math.
  • test #321: testing eigen-based transforms. We should check what convention used by tf::Matrix to be sure that our method is compatible.
  • mavros #319: Add Eigen dependency and cmake rule.
  • test: test for UAS::transform_frame_attitude_rpy() (ERRORs!)
  • test: test for UAS::transform_frame_xyz()
  • test: Initial import test_frame_conv
  • cam_imu_sync : fix running
  • imu_cam_sync : fix formatting
  • command handling in mavcmd for camera trigger
  • Camera IMU synchronisation support added
  • Contributors: Anurag Makineni, Lorenz Meier, Mohammed Kabir, TSC21, Vladimir Ermakov, devbharat

0.12.0 (2015-07-01)

  • plugin: sys_time, sys_status #266: check that rate is zero
  • test #321: disable tests for broken transforms.
  • lib #321: frame transform are broken. again! revert old math. RULE for me: do not accept patch without wide testing from author. That PR changes all plugins code, instead of do API, test and only after that touching working code. My bad.
  • unittest: added 6x6 Covariance conversion test
  • frame_conversions: update comments; filter covariance by value of element 0
  • unittests: corrected outputs from conversion tests
  • test: other quaternion transform tests
  • test: UAS::transform_frame_attitude_q()
  • test: test for UAS::transform_frame_attitude_rpy() (ERRORs!)
  • test: test for UAS::transform_frame_xyz()
  • test: Initial import test_frame_conv
  • coverity: make them happy
  • uncrustify: fix style on frame conversions
  • uncrustify: includes
  • plugin: sys_status #266: replace period with rate parameter
  • plugin: sys_time #266: Replace period with rate parameters
  • frame_conversion: last fix patch
  • frame_conversions: use inline functions to identify direction of conversion
  • changed frame conversion func name; add 3x3 cov matrix frame conversion; general doxygen comment cleanup
  • frame_conversions: added covariance frame conversion for full pose 6x6 matrix
  • frame_conversions: added frame_conversion specific lib file; applied correct frame conversion between ENU<->NED
  • sys_status #300: PX4 place in [0] lest significant byte of git hash.
  • sys_status fix #300: fix u8->hex func.
  • plugin: waypoint: cosmetics.
  • vibration_plugin: first commit
  • Changes some frames from world to body conversion for NED to ENU.
  • mavsys #293: add --wait option
  • mavsys: Fix arguments help
  • mavcmd #293: Add --wait option. New function: util.wait_fcu_connection(timeout=None) implement wait option.
  • sys_status #300: AUTOPILOT_VERSION APM quirk
  • mavros #302: fix style
  • mavros #302: split UAS impl by function blocks
  • mavros fix #301: move sensor orientation util to UAS
  • distance_sensor: typo; style fixe
  • sensor_orientation: list values correction
  • launch: APM:Plane 3.3.0 now support local_position. Blacklist distance_sensor.
  • sensor_orientation: use MAX as last index macro
  • distance_sensor: changed to usable config
  • launch: APM:Plane 3.3.0 now support local_position. Blacklist distance_sensor.
  • sensor_orientation: updated orientation enum; updated data type
  • sensor_orientation: included array type on utils.h
  • sensor_orientation: added sensor orientation matching helper func
  • distance_sensor: updated config file
  • distance_sensor: define sensor position through param config
  • distance_sensor: array limiting; cast correction; other minor correc
  • distance_sensor: small enhancements
  • sys_status #293: initialize state topic
  • sys_status #293: expose connection flag in mavros/State.
  • Contributors: TSC21, Tony Baltovski, Vladimir Ermakov

0.11.2 (2015-04-26)

  • plugin: param fix #276: add check before reset request downcounter. If on MR request FCU responses param with different param_index do not reset repeat counter to prevent endless loop.
  • gcs bridge fix #277: add link diagnostics
  • plugin: setpoint_position #273: add quirk for PX4.
  • readme: fir glossary misprint
  • readme: add notes about catkin tool
  • Contributors: Vladimir Ermakov

0.11.1 (2015-04-06)

  • scripts #262: update mavwp
  • scripts #262: mavsetp, new module mavros.setpoint
  • mavftpfuse #129: cache file attrs
  • mavparam #262: use get_topic()
  • mavsys #262: use get_topic()
  • mavcmd #262: use get_topic()
  • mavftp #263, #262: use crc32 checksums
  • python #262: add get_topic()
  • Update local_position.cpp removed irritating comment
  • readme: add short glossary
  • plugin: setpoint_attitude: remove unneded ns
  • Contributors: Marcel Stuettgen, Vladimir Ermakov

0.11.0 (2015-03-24)

  • plugin: setpoint_position #247: rename topic
  • launch #257: rename blacklist.yaml to pluginlists.yaml
  • node #257: implement while list.
  • plugin: actuator_control #247: update topic name.
  • mavros: Initialize UAS before connecting plugin routing. Inspired by #256.
  • plugin: sys_status: Check sender id. Inspired by #256.
  • plugin: sys_status: Use WARN severity for unknown levels
  • uas: Add UAS::is_my_target() Inspired by #256.
  • plugin: global_position: Fill status and covariance if no raw_fix. Additional fix for #252.
  • launch: change apm target component id APM uses 1/1 (sys/comp) by default.
  • plugin: sys_status: publish state msg after updating uas Before this commit, the custom mode string published in the state message was computed using the autopilot type from the previous heartbeat message--not the autopilot type from the current hearbeat message. Normally that isn't a problem, but when running a GCS and mavros concurrently, both connected to an FCU that routes mavlink packets (such as APM), then this causes the custom mode to be computed incorrectly, because the mode string for the GCS's hearbeat packet will be computed using the FCU's autopilot type, and the mode string for the FCU's heartbeat packet will be computed using the GCS's autopilot type.
  • plugin: global_position: fix nullptr crash This fixes a crash in cases where a GLOBAL_POSITION_INT message is received before a GPS_RAW_INT message, causing the gps_fix pointer member to be dereferenced before it has been set.
  • msgs: fix spelling, add version rq.
  • coverity: init ctor in 3dr_radio
  • launch fix #249: update apm blacklist
  • launch: rename APM2 to APM.
  • launch #211: update configs
  • plugin: gps: remove unused param
  • plugin: sys_time: remove unused param
  • launch fix #248: remove radio launch
  • plugin: 3dr_radio #248: add/remove diag conditionally
  • plugin: sys_status: move connection params to ns
  • plugin: sys_time: fix #206 (param ns)
  • node: Inform what dialect built-in node
  • plugin: sys_status: Conditionaly add APM diag
  • plugin: sys_status: fix #244
  • uas #244: add enum lookups
  • package: update lic
  • license #242: update mavros headers
  • plugin: local_positon: use auto
  • plugin: imu_pub: Update UAS store.
  • plugin: gps: remove diag class, change UAS storage API.
  • plugin api #241: move diag updater to UAS.
  • plugin api #241: remove global private node handle. Now all plugins should define their local node handle (see dummy.cpp). Also partially does #233 (unmerge setpoint topic namespace).
  • plugin api #241: remove get_name()
  • package: mavros now has any-link proxy, not only UDP
  • Update years. I left gpl header, but it is BSD too.
  • Add BSD license option #220
  • plugin: sys_status: AUTOPILOT_VERSION support. Fix #96.
  • mavros fix #235: Use AsyncSpinner to allow plugins chat. Old single-threaded spinner have a dead-lock if you tried to call a service from for example timer callback. For now i hardcoded thread count (4).
  • uncrustify: actuator_control
  • Merge branch 'master' of github.com:mstuettgen/Mavros
  • fixed missing ;
  • code cosmetics
  • further removed unneeded white spaces and minor code cosmetics
  • fixed timestamp and commented in the not-working function call
  • code cosmetics, removed whitespaces and re-ordered function signatures
  • more code comment cosmetic
  • code comment cosmetic
  • uncrustify: fix style
  • readme: add contributing notes
  • uncrustify: mavros base plugins
  • uncrustify: mavros lib
  • uncrustify: mavros headers
  • tools: add uncrustify cfg for fixing codestyle Actually it different from my codestyle, but much closer than others.
  • added more const to function calls to ensure data consistency
  • modified code to fit new message
  • added group_mix to ActuatorControl.msg and a link to mixing-wiki
  • plugin: rc_io: Add override support warning
  • REALLY added ActuatorControl.msg
  • added ActuatorControl.msg
  • fixed latest compiler error
  • renamed cpp file to actuator_control.cpp and added the new plugin to mavros_plugins.xml
  • removed unneeded Mixinx and reverse_throttle, and unneeded variables in function signatures
  • inital draft for set_actuator_control plugin
  • launch: enable setpoint plugins for APM As of ArduCopter 3.2, APM supports position and velocity setpoints via SET_POSITION_TARGET_LOCAL_NED.
  • plugin: setpoint_velocity: Fix vx setpoint vz should have been vx.
  • Contributors: Clay McClure, Marcel Stuettgen, Vladimir Ermakov

0.10.2 (2015-02-25)

  • Document launch files
  • launch: Fix vim modelines #213
  • launch #210: blacklist image_pub by px4 default. Fix #210.
  • Contributors: Clay McClure, Vladimir Ermakov

0.10.1 (2015-02-02)

  • Fix @mhkabir name in contributors.
  • uas #200: Add APM:Rover custom mode decoding. Fix #200.
  • uas #200: Update APM:Plane and APM:Copter modes.
  • Contributors: Vladimir Ermakov

0.10.0 (2015-01-24)

  • mavros #154: Add IO stats to diagnostics. Fix #154.
  • Add rosindex metadata
  • plugin: ftp: init ctor.
  • plugin: sts_time: Code cleanup and codestyle fix.
  • plugin: command: Quirk for older FCU's (component_id) Older FCU's expect that commands addtessed to MAV_COMP_ID_SYSTEM_CONTROL. Now there parameter: ~cmd/use_comp_id_system_control
  • plugin: rc_io: #185 Use synchronized timestamp.
  • plugin: gps: #185 use synchronized timestamp common.xml tells that GPS_RAW_INT have time_usec stamps.
  • uas: Fix ros timestamp calculation. Issues: #186, #185.
  • plugin: add synchronisation to most plugins (fixed) Closes #186.
  • readme: Add notes about coordinate frame conversions #49
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.9.4 (2015-01-06)

  • plugin: sys_time: enable EMA
  • Contributors: Mohammed Kabir

0.9.3 (2014-12-30)

  • plugin: visualization finshed
  • Restore EMA. Works better for low rates.
  • Update sys_time.cpp
  • plugin : add time offset field to dt_diag
  • Final fixes
  • minor
  • plugin : fixes timesync. FCU support checked.
  • Visualisation system import
  • param: Fix float copying too
  • param: Fix missing
  • param: Trynig to fix 'crosses initialization of XXX' error.
  • param: Try to fix #170.
  • Update units
  • New message, moving average compensation
  • Initial import new sync interface
  • plugin: sys_status: Enable TERRAIN health decoding.
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.9.2 (2014-11-04)

0.9.1 (2014-11-03)

  • Update installation notes for #162
  • Contributors: Vladimir Ermakov

0.9.0 (2014-11-03)

0.8.2 (2014-11-03)

  • REP140: update package.xml format. Hydro don't accept this format correctly, but after split i can update.
  • Contributors: Vladimir Ermakov

0.8.1 (2014-11-02)

  • fix build deps for gcs_bridge
  • mavconn #161: Enable rosconsole bridge.
  • mavconn #161: Move mavconn tests.
  • mavconn #161: Fix headers used in mavros. Add readme.
  • mavconn #161: Fix mavros build.
  • mavconn #161: Move library to its own package Also rosconsole replaced by console_bridge, so now library can be used without ros infrastructure.
  • plugin: sys_time: Set right suffixes to uint64_t constants. Issue #156.
  • plugin: sys_time: Add time syncronization diag. Issue #156.
  • plugin: sys_time: Debug result. Issue #156.
  • plugin: Store time offset in UAS. TODO: implement fcu_time(). Issue #156.
  • plugin: sys_time: Fix code style. Also reduce class variables count (most not used outside the method). Issue #156.
  • Update repo links. Package moved to mavlink organization.
  • Nanosecond fix
  • Fix
  • Fixes
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update CMakeLists.txt
  • Update mavros_plugins.xml
  • Update sys_time.cpp
  • Fix build
  • sys_time import. Removed all time related stuff from gps and sys_status
  • Initial sys_time plugin import
  • plugin: ftp: Bytes written now transfered in payload.
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.8.0 (2014-09-22)

  • plugin: ftp: Disable debugging and change level for some log messages. Issue #128.
  • plugin: ftp: Translate protocol errors to errno. Issue #128.
  • scripts: mavftp: Add upload subcommand. Issue #128.
  • python: Add more ftp utils. Issue #128.
  • plugin: ftp: Fix write offset calculation. Issue #128.
  • plugin: ftp: Add FTP:Checksum. Issue #128.
  • plugin: ftp: Add support for FTP:Rename. Issue #128.
  • python: Add FTP:Truncate
  • plugin: ftp: Add FTP:Truncate call. Issue #128.
  • python: Move common mission classes to mavros.mission module. Issue #157.
  • python: Move useful utils to mavros.param module. Issue #157.
  • python: Move common utils to mavros.utils module. Issue #157.
  • python: Create python module for ftp utils. Issue #128, #157.
  • scripts: ftp: Implement file-like object for IO. Issue #128.
  • plugin: ftp: Implement write file. Issue #128.
  • scripts: mavftp: Add remove subcommand. Issue #128.
  • plugin: ftp: Add FTP:Remove call. Issue #128.
  • plugin: ftp: Add response errno from server.
  • plugin: ftp: Add support for 'Skip' list entries. Issue #128.
  • scripts: mavftp: Add mkdir/rmdir support. Issue #128.
  • plugin: ftp: Add mkdir/rmdir support. Issue #128.
  • plugins: ftp: Update protocol headers. Issue #128.
  • Revert "Update package.xml format to REP140 (2)." This reverts commit 81286eb84090a95759591cfab89dd9718ff35b7e. ROS Hydro don't fully support REP140: rospack can't find plugin descriptions. Fix #151.
  • scripts: mavwp: Fix --follow mode
  • plugin: imu_pub: Fix RAW_IMU/SCALED_IMU angular scale constant. Fix #152.
  • launch: remove px4_local_gcs.launch again. It removed in 826be386938c2735c9dab72283ba4ac1c68dc860, but accidentally returned.
  • extras: launch: Use includes. Fix #144.
  • launch: PX4: use node.launch in PX4 scripts. Also remove px4_local_gcs.launch: please use roslaunch mavros px4.launch gcs_url:=udp://@localhost instead. Issue #144.
  • launch: APM2: Add node.launch and update apm scripts to use it. Issue #144.
  • plugin: command: Fix CommandInt x,y types.
  • Update package.xml format to REP140 (2). Fix #104.
  • launch: Blacklist FTP for APM.
  • scripts: mavwp: Add decoding for some DO-* mission items.
  • scripts: mavwp: Add preserve home location option at load operation. Useful if FCU stores home location in WP0 (APM).
  • Added src location.
  • Updated README wstool instructions.
  • plugin: ftp: Init ctor
  • service: mavftp: Initial import. Issue #128.
  • plugin: ftp: Implemnet reset call. Sometimes kCmdReset can restore normal operation, but it might be dangerous. Issue #128.
  • plugin: ftp: Implement FTP:Read call. Issue #128.
  • plugin: ftp: Fix open error. Issue #128.
  • plugin: ftp: Implement FTP:Open (read) and FTP:Close. Issue #128.
  • plugin: ftp: Implement FTP:List method. Issue #128.
  • plugin: ftp: Implement list parsing Issue #128.
  • plugin: ftp: Fix CRC32 calculation. Issue #128.
  • plugin: ftp: Add plugin skeleton. Based on QGroundContol QGCUASFileManager.h/cc. Issue #128.
  • plugin: ftp: Add size info
  • plugin: ftp: Add plugin service API. Issue #128.
  • plugin: vfr_hud: Initial import. Also this plugin publish APM specific WIND estimation message. Fix #86.
  • node: coverity fails at UAS initilizer list
  • plugin: setpoint_attitude: Init ctor, remove code dup.
  • cmake: Add check MAVLINK_DIALECT value Fix #139.
  • Move common cmake rules to modules. Same mech as in cmake_modules package. Issue #139.
  • launch: corrected launch for gcs bridge
  • scripts: mavsetp: Fix misprint.
  • launch files: added px4 launch files for connection with radio and gcs
  • scripts: mavsetp: Fix twist.angular vector construction. Small style fix.
  • Update doxygen documentation. Add split lines in UAS, and make UAS.connection atomic. Add rosdoc configuration for mavros_extras.
  • scripts: mavsetp: corrected API; added possibility of parse angles in dg or rad
  • scripts: mavsetp: corrected msg API; mavteleop: added prefix to rc override
  • scripts: mavsetp: added local accel; corrected how the OFFBOARD mode is swtch.
  • scripts: mavsetp: changed the way offboard mode is switched
  • node: init ctor (coverity)
  • nodelib: add std::array header
  • return msg generator deps for mavconn
  • scripts: mavsys: Implement set rate command.
  • scripts: Add mavsys tool. Implented only mode operation. Issue #134.
  • plugin: sys_status: Implement set_mode service. Previous command shortcut removed. Issue #136, #134.
  • node: Implement reverse mode lookup. Issue #136.
  • plugin: sys_status: Move custom mode decoder to UAS. Issue #136.
  • node: Catch URL open exception. Also update connection pointer type.
  • nodelib: move sources to subdir
  • node: Move UAS to mavros namespace
  • node: Move node code to library.
  • node: Catch DeviceError; use C++11 foreach shugar.
  • plugin: command: Add COMMAND_INT suport. Fix #98.
  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov

0.7.1 (2014-08-25)

  • plugins: setpoint: Update SET_POSITION_TARGET_LOCAL_NED message. Fix #131.
  • scripts: mavsetp: Enable OFFBOARD mode. Issue #126.
  • plugin: command: Add guided_enable shortcut It enable PX4 OFFBOARD mode. Issue #126.
  • scripts: Add mavsetp script. Only local setpoint for now. Issue #126.
  • plugins: Change UAS FCU link name. Reduce smart pointer count, that hold fcu link object.
  • scripts: mavcmd: Add takeoffcur and landcur commands Fix #91, #92. Inspired by #125.
  • Closes #122, closes #123; plugins: move mocap & vision plugins to extras, change vision plugins name
  • plugins: UAS remove std::atomic<double> It don't work at some compilers. Issue #89.
  • plugin: global_position: Fill NavSatFix status filed. Issue #87, #118.
  • plugins: Add GPS data to UAS
  • plugins: Move setpoint_mixin.h Fix #120.
  • plugin: mocap: Fix load. Issue #121.
  • plugins: global_position: get pose orientation from the one stored in uas
  • plugins: global_position: use relative_alt on position.z; mavros_plugins.xml - corrected declaration of mocap_pose_estimate
  • plugin - global_position - changed parameter path / orientation source
  • launch: APM2 blacklist global_position plugin
  • plugin: global_position: Unit unification.
  • plugin: global_position: Move heaedr; Style fix.
  • added rel_pos and compass_hdg pub; minor corrections
  • Merge branch 'master' of https://github.com/vooon/mavros into global_position
  • global_position plugin - initial commit
  • launch: APM2 blacklist mocap plugin.
  • Updated mavros_plugins.xml
  • Fixed dual sources error warning.
  • Fixed styles.
  • Minor changes.
  • added time stamp to received msgs
  • Removed un-needed times.
  • Added mocap_pose_estimate plugin.
  • Code style update
  • setpoint attitude change - warning message
  • Update on setpoint_attitude plugin

    • changed Twist to TwistStamped
    • added reverse_throttle option for throttle control
    • use cmd_vel as the same topic to control linear a angular velocities (it's commonly used by controllers)

    * added normalization filter to thrust

  • node: Remove deprecated conn parameters. Fix #108

  • plugin: vision_speed: Update plugin API.

  • plugin: setpoint_attitude: Update plugin API.

  • plugin: setpoint_accel: Update plugin API.

  • plugin: setpoint_velocity: Update plugin API.

  • plugin: 3dr_radio: Update plugin API.

  • plugin: safety_area: Update plugin API.

  • plugin: setpoint_position: Update plugin API.

  • plugin: vision_position: Update plugin API.

  • plugin: local_position: Update plugin API.

  • plugin: command: Update plugin API.

  • plugin: rc_io: Update plugin API.

  • plugin: waypoint: Update plugin API.

  • plugin: param: Update plugin API.

  • plugin: gps: Update plugin API.

  • plugin: imu_pub: Update plugin API.

  • plugin: sys_status: Update plugin API.

  • plugin: Update plugin API.

  • plugins: disable most of plugins

  • plugin: setpoint_attitude: Add thrust topic. Fix #106.

  • Fix URLs in readme

  • mavros -> ros-message parameter fix only parameter1 was forwarded into the ros message

  • Switch travis to pixhawk dialect. Default dialect build by ros buildfarm. Also remove duplicate ci statuses from mavros readme.

  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov, mthz

0.7.0 (2014-08-11)

  • Add package index readme, Fix #101
  • move mavros to subdirectory, #101
  • Merge branch 'master' of github.com:vooon/mavros * 'master' of github.com:vooon/mavros: Add link to ros-*-mavlink package wiki page.
  • plugins: setpoint: Update setpoint message name. Issue #94, Fix #97.
  • plugin: setpoint_attitude: Update message name. Issues #94, #97.
  • Add link to ros-*-mavlink package wiki page.
  • plugin: gps: Fix gcc 4.6 build (atomic). Not recommended to use std::atomic with gcc 4.6. So i limited to prederined atomics for simple types like int, float etc.
  • plugin: sys_status: Implement PX4 mode decoding. Fix #84.
  • plugin: gps: Add EPH & EPV to diagnostic. Issue #95
  • plugin: gps: Move message processing to individual handlers. Issue #95.
  • plugin: rc_io: Replace override service with topic. (ROS API change). Fix #93.
  • Add dialect selection notes
  • plugins: Change severity for param & wp done messages.
  • plugins: Store raw autopilot & mav type values. This may fix or not issue #89.
  • plugins: init ctor (coverity)
  • plugin: imu_pub: Add ATTITUDE_QUATERNION support. Also reduce copy-paste and use mode readable bitmask check. Fix #85.
  • scriptis: mavcmd: Spelling
  • scripits: Add mavcmd tool
  • Add links to mavros_extras
  • param: sys_status: Option to disable diagnostics (except heartbeat)
  • plugin: command: Add takeoff and land aliases. Issue #68.
  • plugin: command: Add quirk for PX4. Fix #82.
  • plugin: Add UAS.is_px4() helper. Replace some locks with atomic. Issue #82.
  • launch: Clear PX4 blacklist. Issue #68.
  • launch: Add target ids. Also fix PX4 wrong ?ids usage (it set mavros ids, not target). Issue #68.
  • plugin: imu_pub: Fix HRIMU pressure calc. 1 mBar is 100 Pa. Fix #79.
  • plugins: C++11 chrono want time by ref, return *_DT Fix #80.
  • plugins: Replace boost threads with C++11. And remove boost thread library from build rules. Issue #80.
  • plugins: Replace Boost condition variables with C++11 Issue #80.
  • plugins: Replace boost mutexes with C++11. Issue #80.
  • travis clang to old, fails on boost signals2 library. disable.
  • travis: enable clang build.
  • node: Make project buildable by clang. Clang produce more readable errors and provide some static code analysis, so i want ability to build mavros with that compilator.
  • plugins: replace initial memset with c++ initializer list
  • launch: PX4 default ids=1,50. Also waypoint plugin works (with first_pos_control_flight-5273-gd3d5aa9). Issue #68.
  • launch: Use connection URL
  • plugin: vision_speed: Initial import. Fix #67.
  • plugin: sys_status: Add SYSTEM_TIME sync send. Fix #78.
  • plugin: sys_status: Decode sensor health field. Fix #75.
  • Add ci badges to readme
  • plugin: param: erase invalidates iterator. Real error found by coverity :)
  • plugins: Init ctor
  • plugins: Add ctor initialization. Coverity recommends init all data members.
  • test: trying travis-ci && coverity integration. Real ci doing by ros buildfarm.
  • plugins: Fix clang-check errors.
  • test: Add tcp client reconnect test. Issue #72.
  • test: Split open_url test to individual tests. Also removed tcp client deletion on close, heisenbug here. Issue #72.
  • mavconn: Emit port_closed after thread stop. Also use tx state flag, improve error messages and move io post out of critical section. Issue #72.
  • mavconn: Fix TCP server client deletion. Issue #72.
  • test: Remove not needed sleep.
  • mavconn: Remove new MsgBuffer dup. Message drop if closed. Issue #72.
  • mavconn: Fix TCP server. Issue #72.
  • launch: APM2: Blacklist extras.
  • mavconn: Add mutex to channel allocation.
  • mavconn: Fix TCP server for gcc 4.6 Fix #74.
  • Remove libev from package. Issue #72.
  • mavconn: GCC 4.6 does not support typedef like using. Issue #74.
  • Merge pull request #73 from vooon/mavconn-revert-asio mavconn: Revert to Boost.ASIO
  • mavconn: Cleanup boost threads. I will use C++11 standard libs. Issue #72.
  • mavconn: Remove libev default loop thread. Issue #72.
  • mavconn: Port MAVConnTCPServer to Boost.ASIO. TCP send test fails. Issue #72.
  • mavconn: Port MAVConnTCPClient to Boost.ASIO. Also it disables MAVConnTCPServer before i rewrite it. Issue #72.
  • mavconn: Revert MAConnSerial back to Boost.ASIO. Issue #72.
  • test: Fix send_message tests. Use C++11. Issue #72.
  • mavconn: Revert MAVConnUDP back to Boost.ASIO. Also starting to change boost threads and mutexes to C++11. Issue #72.
  • test: Enable send tests. Issue #72.
  • test: And hand test for mavconn hangs. Issue #72.
  • node: Remove anonimous flag from gcs_bridge. Rename node if you want start several copies.
  • install: Remove duplicate
  • node: Fix mavros_node termination message. Issue #58.
  • node: Use URL in mavros_node. Fix #58.
  • node: Use URL in gcs_bridge. Issue #58.
  • node: Rename ros_udp to gcs_bridge. Because now it's not UDP only. Issue #58.
  • Cleanup boost components
  • mavconn: Implement URL parsing. Supported shemas:

    • 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]
    • TCP client: tcp://[server_host][:port][/?ids=sysid,compid]

    * TCP server: tcp-l://[bind_port][:port][/?ids=sysid,compid] Note: ids from URL overrides ids given to open_url(). Issue #58.

  • test: Add tests for UDP, TCP, SERIAL. Send message testa are broken, need to find workaround. Fix #70.

  • plugin: vision_position: Add transform timestamp check. Issue #60.

  • mavconn: Implement TCP server mode. Fix #57.

  • mavconn: Initial support for TCP client mode. Issue #57.

  • mavconn: Boost::asio cleanup.

  • plugin: Remove TimerService from UAS. Fix #59.

  • plugin: param: Add state check to sheduled pull.

  • mavparam: Add force pull.

  • plugin: param: Use ros::Timer for timeouts Also new option for force pull parameters from FCU instead of cache. Fix #59.

  • Add mavsafety info to README.

  • launch: Add apm2_radio.launch (for use with 3DR Radio)

  • plugin: 3dr_radio: Fix build error. Issue #62.

  • plugin: 3dr_radio: Publish status data for rqt_plot Also tested with SiK 1.7. Fix #62.

  • plugin: setpoint_attitude: Fix ENU->NED conversion. Fix #64. Related #33, #49.

  • launch: Add setpoint plugins to APM2 blacklist

  • plugin: setpoint_attitude: Initial import. XXX: need frame conversion #49. Issue #33, #64.

  • plugin: Move common tf code to mixin. Remove copy-paste tf_listener. Issue #33.

  • plugin: setpoint_position: Generalize topic NS with other setpoint_* Issue #33, #61.

  • plugin: setpoint_accel: Initial import. Issues: #33, #61.

  • plugin: position_velocity: Initial import. Also it fix ignore mask in setpoint_position. Issues #33, #61.

  • plugins: 3rd_radio: Initial import. Untested. Issue #61.

  • scripts: Add mavsafety tool. Also add safety_area to APM2 blacklist. Fix #51.

  • plugins: safty_area: Initial import. This plugin listen ~/safety_area/set and send it's data to FCU. Issue #51.

  • plugins: position: Add TF rate limit. Issue #33.

  • plugin: waypoint: Use ros::Timer for timeouts. Also add some debug messages for next debugging PX4. Issue #59.

  • plugin: sys_status: Use ros::Timer for timeouts Also move message rx to it's own handlers. Issue #59.

  • Remove rosdep.yaml and update readme

  • Add deb build notes to readme. Issue #55.

  • Add sudo notes to readme.

  • Merge pull request #56 from vooon/54_try_libev Switch to libev

  • Add libev to README

  • package: Add temporary rosdep for libev-dev. Issue #54.

  • mavconn: Move MAVConnUDP to libev. And fix docs in serial. Issue #54.

  • mavconn: Move MAVConnSerial to libev. Adds stub for open URL function. Issure #54.

  • Contributors: Vladimir Ermakov, Mohammed Kabir, Nuno Marques, Glenn Gregory

0.6.0 (2014-07-17)

  • plugin: local_position: Use same timestamp in topic and TF. Issue #33.
  • plugins: TF thread required, remove notes. Issue #33.
  • launch: Add example launch for PX4 Issue #45.
  • plugin: imu_pub: Fix attitude store in UAS Issue #33. Fix #53.
  • plugins: Disable position topics if tf_listen enabled Also change default frame names: vision and setpoint. Issue #33.
  • plugins: Fix typo in frame_id params. Issue #33.
  • plugins: Add vision and setpoint TF listeners Also change parameter names to same style. Issue #33.
  • plugin: vision_position: Add PositionWithCovarianceStamped option Issue #33.
  • Add boost filesystem lib to link On some platforms its absence breaks build by: undefined reference to boost::filesystem::path::codecvt()
  • launch: Add example for APM2 Fix #45.
  • plugin: setpoint_position: Initial import And some small doc changes in other position plugins. Issue #33.
  • node: Add connection change message Fix #52.
  • plugins: vision_position: Initial import TODO: check ENU->NED maths. Issue #33.
  • plugins: Remove unneded 'FCU' from diag
  • plugin: local_position: Change plane conversion Bug: #49.
  • plugin: imu_pub: Fix magnetic vector convertions Bug: #49.
  • Use dialects list from package
  • plugin: local_position: Fix orientation source Part of #33.
  • node: Show target system on startup Fix #47.
  • plugin: local_position: Initial add Receive LOCAL_POSITION_NED message and publish it via TF and PoseStamped topic in ENU frame. Part of #33.
  • node: Use boost::make_shared for message allocation Fix #46.
  • plugins: Use boost::make_shared for message allocation Part of #46.
  • plugin: imu_pub: Fix misprint in fill function Fix magnetometer vector convertion (HR IMU). Related #33.
  • plugin: imu_pub: setup cleanup.
  • Update readme
  • plugin: gps: Fix gps_vel calculation Fix #42.
  • plugins: Make name and messages methods const. (breaking). WARNING: this change broke external plugins. Please add const to get_name() and get_supported_messages(). Part of #38.
  • plugins: Use mavlink_msg_*_pack_chan() functions Fix #43.
  • mavconn: Reuse tx buffer (resize by extents) Part of #38.
  • mavconn: Do not finalize messages if id pair match mavlink_*_pack also do finalize, so explicit finalization just recalculate crc and seq number (doubles work). Test later if we need check seq too.
  • mavconn: Documentation and cleanup Make MAVConn classes noncopyable. Remove copy-paste copy and following async_write calls. Reserve some space in tx queues. Replace auto_ptr with unique_ptr.
  • test: Fix header include
  • mavconn: Fix possible array overrun in channel alocation. Problem found by clang.
  • fix some roslint errors
  • mavconn: move headers to include
  • node: Implement plugin blacklist. New parameter: ~/plugin_blacklist lists plugin aliases with glob syntax. Fix #36.
  • plugins: Change constants to constexpr (for gcc 4.6)
  • mavconn: Add gencpp dependency (utils.h requiers generated header)
  • Move duplicate Mavlink.msg copy to utils.h
  • Remove tests that requires connection to FCU
  • plugins: imu_pub: Fix PX4 imu/data linear_accelerarion field Should fix: #39.
  • plugins: imu_pub: Add magnitic covariance Trying to move constants with constexpr. Related: #13.
  • Remove testing info Need to remove tests that could not run on build farm.
  • Contributors: Vladimir Ermakov

0.5.0 (2014-06-19)

  • Remove mavlink submodule and move it to package dependency Bloom release tool don't support git submodules, so i've ceate a package as described in http://wiki.ros.org/bloom/Tutorials/ReleaseThirdParty . Fix #35.
  • plugins: param: add missing gcc 4.6 fix.
  • plugins: fix const initializers for gcc 4.6
  • plugins: imu_pub: fix const initializers for gcc 4.6 Fix for build failure devel-hydro-mavros #4.
  • Add support for GCC 4.6 (C++0x, ubuntu 12.04) I don't use complete c++11, so we could switch to c++0x if it supported.
  • plugins: rc_io: Add override rcin service Fix: #22.
  • plugins: sys_status: fix timeouts Fix #26.
  • plugins: sys_status: add set stream rate service Some additional testing required. Fix #23.
  • Remove unused boost libarary: timer Build on jenkins for hydro failed on find boost_timer.
  • 0.4.1
  • Add changelog for releasing via bloom

0.4.1 (2014-06-11)

  • node: Show serial link status in diag Now 'FCU connection' shows actual status of connection (HEARTBEATS).
  • Fix #29. Autostart mavlink via USB on PX4 Changes mavconn interface, adds new parameter.
  • Fix installation rules. Fix #31.
  • Setup UDP transport for /mavlink messages
  • Fix mavlink dialect selection Fix #28.
  • Add link to wiki.ros.org Part of #27.

0.4.0 (2014-06-07)

  • Release 0.4.0 And some docs for CommandPlugin.
  • plugins: command: Command shortcuts Fix #12.
  • plugins: command: Add ACK waiting list Part of #12.
  • plugins: command: Initial naive realization. Partial #12, #25.
  • mavconn: Fix build on Odroid with Ubuntu 13.10 Fix #24.
  • plugins: rc_io: initial add RC_IO plugin Topics:

    • ~/rc/in -- FCU RC inputs in raw microseconds

    * ~/rc/out -- FCU Servo outputs Fix #17. Partiall #22.

  • Fix installation wstool command. wstool set, not wstool add.

  • Add installation notes to README Installing pymavlink is not required, but try if errors.

  • Fix headers in README.md

  • ros_udp: New node for UDP proxing Add some examples to README.md. Fix #21.

  • sys_status: Add state publication Fix #16.

  • sys_status: Sent HEARTBEAT if conn_heartbeat > 0 Fix #20.

  • sys_status: add sensor diagnostic See #16.

  • sys_status: Add battery status monitoring Fix #19, partial #16.

  • sys_status: HWSTATUS support Fix #18, partial #20.

  • plugins: imu_pub: Add RAW_IMU, SCALED_IMU and SCALED_PRESSURE handlers Fix #13. Refactor message processing. Combination of used messages: On APM: ATTITUDE + RAW_IMU + SCALED_PRESSURE On PX4: ATTITUDE + HIGHRES_IMU On other: ATTITUDE + (RAW_IMU|SCALED_IMU + SCALED_PRESSURE)|HIGHRES_IMU Published topics:

    • ~imu/data - ATTITUDE + accel data from *_IMU
    • ~imu/data_raw - HIGHRES_IMU or SCALED_IMU or RAW_IMU in that order
    • ~imu/mag - magnetometer (same source as data_raw)
    • ~imu/temperature - HIGHRES_IMU or SCALED_PRESSURE

    * ~imu/atm_pressure - same as temperature

  • Update readme

  • mavwp: Add --pull option for 'show' operation. Reread waypoints before show.

  • MissionPlanner use format QGC WPL, Fix #15 Code cleanup;

  • Update mavlink version.

  • Update mavlink version

  • mavparam: fix #14 support for QGC param files

  • mavwp: Add mavwp to install

0.3.0 (2014-03-23)

  • Release 0.3.0
  • mavwp: Add MAV mission manipulation tool Uses WaypointPlugin ROS API for manipulations with FCU mission.

    • show -- show current mission table
    • pull -- update waypoint table
    • dump -- update and save to file
    • load -- loads mission from file
    • clear -- delete all waypoints
    • setcur -- change current waypoint
    • goto -- execute guided goto command (only APM) Currently supports QGroundControl format only.
  • plugins: wp: Add GOTO, update documentation

  • plugins: wp: Auto pull

  • plugins: wp: SetCurrent & Clear now works

  • plugins: wp: Push service works

  • plugins: wp: push almost done

  • plugins: wp: Pull done

  • plugins: param: remove unused ptr

  • plugins: wp: mission pull almost done

  • plugins: wp: Add convertors & handlers

  • plugins: Waypoint plugin initial

  • Use C++11 feuture - auto type

  • plugins: refactor context & link to single UAS class UAS same functions as in QGC.

  • plugins: Add msgs and srvs for Waypoint plugin

  • Update mavlink library

  • Update mavlink version

  • mavparam: Fix for DroidPlanner param files & cleanup DroidPlanner adds some spaces, don't forget to strip it out. Cleanup unused code from Parameter class.

0.2.0 (2014-01-29)

  • mavparam: Add MAV parameter manipulation tool Uses ParamPlugin ROS API for manipulating with fcu params.

    • load -- load parameter from file
    • dump -- dump parameter to file
    • get -- get parameter
    • set -- set parameter Currently supports MissionPlanner format only. But DroidPlanner uses same format.
  • Update README and documentation

  • plugins: param: implement ~param/push service Also implement sync for rosparam:

    • ~param/pull service pulls data to rosparam
    • ~param/push service send data from rosparam
    • ~param/set service update rosparam if success
  • plugins: param: implement ~param/set service

  • plugins: param: implement ~param/get service

  • plugins: param: Implement automatic param list requesting

  • plugins: use recursive_mutex everywhere

  • plugins: param now automaticly requests data after connect

  • plugins: Add common io_service for plugins, implement connection timeout Some plugin require some delayed processes. Now we can use boost::asio::*timer. New parameter:

    • ~/conn_timeout connection timeout in seconds
  • plugins: add param services

  • mavconn: set thread names WARNING: pthread systems only (BSD/Linux)

  • plugins: implement parameters fetch service

  • plugins: fix string copying from mavlink msg

  • plugins: Setup target in mav_context New params:

    • ~target_system_id - FCU System ID
    • ~target_component_id - FCU Component ID
  • plugins: IMU Pub: add stdev parameters, change topic names. Add parameters:

    • ~imu/linear_acceleration_stdev - for linear acceleration covariance
    • ~imu/angular_velocity_stdev - for angular covariance
    • ~imu/orientation_stdev - for orientation covariance Change topic names (as in other IMU drivers):
    • ~imu -> ~/imu/data
    • ~raw/imu -> ~/imu/data_raw
  • plugins: Params initial dirty plugin

  • Fix mavlink dialect choice.

  • plugins: Add context storage for automatic quirk handling ArduPlilot requires at least 2 quirks:

    • STATUSTEXT severity levels
    • parameter values is float
  • Implement MAVLink dialect selection ArduPilotMega is default choice.

  • doc: add configuration for rosdoc_lite

0.1.0 (2014-01-05)

  • Version 0.1.0 Milestone 1: all features from mavlink_ros package.xml was updated.
  • Fix typo and add copyright string NOTE: Please check typos before coping and pasting :)
  • plugins: gps: Add GPS_RAW_INT handler GPS_STATUS not supported by APM:Plane. ROS dosen't have standard message for satellites information.
  • mavconn: small debug changes Limit no GCS message to 10 sec.
  • node: Terminate node on serial port errors
  • plugins: Add GPS plugin SYSTEM_TIME to TimeReference support. TODO GPS fix.
  • Fix build and update MAVLink library
  • plugins: sys_status: Add SYSTEMTEXT handler Two modes:

    • standard MAV_SEVERITY values
    • APM:Plane (default) TODO: add mavlink dialect selection option
  • plugins: add some header doxygen tags Add license to Dummy.cpp (plugin template).

  • plugins: sys_status: Add MEMINFO handler MEMINFO from ardupilotmega.xml message definition. Optional.

  • update README

  • update TODO

  • plugins: Add imu_pub plugin. Publish ATTITUDE and HIGHRES_IMU data. HIGHRES__IMU not tested: Ardupilot sends ATTITUDE only :(

  • node: publish Mavlink.msg only if listners > 0

  • plugins: Add sys_status plugin. Initial.

  • plugins: implement loading & rx routing

  • plugins: initial

  • node: Add diagnostics for mavlink interfaces

  • mavconn: add information log wich serial device we use.

  • mavconn: fix overloaded MAVConn*::send_message(msg)

  • mavros: Add mavros_node (currently serial-ros-udp bridge) Message paths: Serial -+-> ROS /mavlink/from +-> UDP gcs_host:port ROS /mavlink/to -+-> Serial UDP bind_host:port -+

  • Add README and TODO files.

  • mavconn: fix MAVConnUDP, add mavudpproxy test mavudpproxy -- connection proxy for QGroundControl, also used as test for MAVConnUDP and MAVConnSerial.

  • mavconn: add UDP support class

  • mavconn: fix: should use virtual destructor in interface class

  • mavconn: add getters/setters for sys_id, comp_id; send_message return.

  • mavconn: simple test. tested with APM:Plane: works.

  • mavconn: fix linking

  • mavconn: serial interface

  • Add mavconn library prototype mavconn - handles MAVLink connections via Serial, UDP and TCP.

  • Add MAVLink library + build script

  • Initial Import Mavlink.msg from mavlink_ros package ( https://github.com/mavlink/mavlink_ros ).

  • Contributors: Vladimir Ermakov

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/apm2.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/node.launch
      • fcu_url
      • gcs_url
      • tgt_system
      • tgt_component
      • pluginlists_yaml
      • config_yaml
      • log_output [default: screen]
  • launch/apm.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/px4.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 1]
      • log_output [default: screen]
  • launch/mavlink_bridge.launch
      • ns [default: iris]
      • mavlink_bridge_url [default: udp://127.0.0.1:14553@127.0.0.1:14560]

Messages

No message files found.

Services

No service files found

Plugins

mavros package from mavros repo

libmavconn mavros mavros_extras

Package Summary

Tags uav mav mavlink plugin apm px4
Version 0.8.6
License GPLv3
Buildtool CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version hydro-devel
Last Updated 2015-03-04
Dev Status DEVELOPED
Released RELEASED

Package Description

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

Additional Links

Maintainers

  • Vladimir Ermakov

Authors

  • Vladimir Ermakov
README

MAVROS

MAVLink extendable communication node for ROS with proxy for Ground Control Station (e.g. QGroundControl).

ROS API documentation moved to wiki.ros.org.

Features

  • Communication with autopilot via serial port, UDP or TCP (e.g. ArduPilot)
  • Internal proxy for Ground Control Station (serial, UDP, TCP)
  • mavlink_ros compatible ROS topics (Mavlink.msg)
  • Plugin system for ROS-MAVLink translation
  • Parameter manipulation tool
  • Waypoint manipulation tool
  • PX4Flow support (by mavros_extras)

Limitations

Only for linux. Depends on Boost library >= 1.46 (hydro on 12.04). Catkin build system required (tested with ROS Hydro Medusa and Indigo Igloo).

This package are dependent on ros-*-mavlink build from mavlink-gbp-release. Since 2014-06-19 it exists in hydro and indigo package index (so you can install via rosdep).

Connection URL

New in 0.7.0. Connection now 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]
  • TCP client: tcp://[server_host][:port][/?ids=sysid,compid]
  • TCP server: tcp-l://[bind_port][:port][/?ids=sysid,compid]

Note: ids from URL overrides ids given by system_id & component_id parameters.

Programs

mavros_node -- main communication node

Main node. Allow disable GCS proxy by setting empty URL.

Run example:

rosrun mavros mavros_node _fcu_url:=/dev/ttyACM0:115200 _gcs_url:=tcp-l://

gcs_bridge -- additional UDP proxy

Allows you to add a channel for GCS. For example if you need to connect one GCS for HIL and the second on the tablet.

Previous name: ros_udp.

Example (HIL & DroidPlanner):

rosrun mavros mavros_node _gcs_url:='udp://:14556@hil-host:14551' &
rosrun mavros gcs_bridge _gcs_url:='udp://@nexus7'

mavparam -- parameter manipulation

Just see --help.

Examples:

rosrun mavros mavparam dump /tmp/apm.param
rosrun mavros mavparam load /tmp/apm2.param

mavwp -- mission manipulation

See --help.

Examples:

rosrun mavros mavwp show -p
rosrun mavros dump /tmp/mission.txt

mavsafety -- safety tool

See --help.

Examples:

rosrun mavros mavsafety arm
rosrun mavros mavsafety disarm

mavcmd -- commander tool

See --help.

Examples:

rosrun mavros mavcmd takeoff 20 15 0 0 50
rosrun mavros mavcmd sethome --current-gps 0 0 0

Installation

Use wstool utility for installation. In your workspace do:

wstool init src (if not already initialized)
wstool set -t src mavros --git https://github.com/mavlink/mavros.git
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro hydro -y

Then use regular catkin_make for build and install. Notes: since v0.5 (and #35) mavlink submodule moved to special ROS 3rd party package ros-*-mavlink.

Important. The current implementation of mavlink does not allow to select dialect in run-time, so mavros package (and all plugin packages) have compile-time option MAVLINK_DIALECT, default is 'aurdupilotmega'.

If you want change dialect you can:

  1. Add cmake definition to catkin: catkin_make -DMAVLINK_DIALECT=pixhawk
  2. Edit configuration by catkin_make edit_cache
  3. Use cmake-gui build, better: it creates drop-down list with all available dialects plus it will be used in next catkin_make edit_cache. Ubuntu: sudo apt-get install cmake-qt-gui

If rosdep could not install mavlink library, you could install it from source:

mkdir -p ~/ros_deps/src
cd ~/ros_deps
rosinstall_generator mavlink | tee rosinstall.yaml
wstool init src ./rosinstall.yaml
catkin_make_isolated --install-space $ROSINSTALL --install -DCMAKE_BUILD_TYPE=Release

$ROSINSTALL must be writable for user or you can add sudo -s to last command. Or you could build debian package by pulling right bloom branch from mavlink-gbp-release (common naming: debian/<rosdistro>/<osdistro>/<package>) using dh binary.

CHANGELOG

Changelog for package mavros

0.8.6 (2015-03-04)

  • plugin: param: Fix build error #237. Master alredy fixed, see #170.
  • Contributors: Vladimir Ermakov

0.8.5 (2014-11-04)

0.8.4 (2014-11-03)

0.8.3 (2014-11-03)

  • 0.8.2
  • prepare minor release 0.8.2 for hydro
  • Contributors: Vladimir Ermakov

0.8.2 (2014-11-03)

0.8.1 (2014-11-02)

  • fix build deps for gcs_bridge
  • mavconn #161: Enable rosconsole bridge.
  • mavconn #161: Move mavconn tests.
  • mavconn #161: Fix headers used in mavros. Add readme.
  • mavconn #161: Fix mavros build.
  • mavconn #161: Move library to its own package Also rosconsole replaced by console_bridge, so now library can be used without ros infrastructure.
  • plugin: sys_time: Set right suffixes to uint64_t constants. Issue #156.
  • plugin: sys_time: Add time syncronization diag. Issue #156.
  • plugin: sys_time: Debug result. Issue #156.
  • plugin: Store time offset in UAS. TODO: implement fcu_time(). Issue #156.
  • plugin: sys_time: Fix code style. Also reduce class variables count (most not used outside the method). Issue #156.
  • Update repo links. Package moved to mavlink organization.
  • Nanosecond fix
  • Fix
  • Fixes
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update sys_time.cpp
  • Update CMakeLists.txt
  • Update mavros_plugins.xml
  • Update sys_time.cpp
  • Fix build
  • sys_time import. Removed all time related stuff from gps and sys_status
  • Initial sys_time plugin import
  • plugin: ftp: Bytes written now transfered in payload.
  • Contributors: Mohammed Kabir, Vladimir Ermakov

0.8.0 (2014-09-22)

  • plugin: ftp: Disable debugging and change level for some log messages. Issue #128.
  • plugin: ftp: Translate protocol errors to errno. Issue #128.
  • scripts: mavftp: Add upload subcommand. Issue #128.
  • python: Add more ftp utils. Issue #128.
  • plugin: ftp: Fix write offset calculation. Issue #128.
  • plugin: ftp: Add FTP:Checksum. Issue #128.
  • plugin: ftp: Add support for FTP:Rename. Issue #128.
  • python: Add FTP:Truncate
  • plugin: ftp: Add FTP:Truncate call. Issue #128.
  • python: Move common mission classes to mavros.mission module. Issue #157.
  • python: Move useful utils to mavros.param module. Issue #157.
  • python: Move common utils to mavros.utils module. Issue #157.
  • python: Create python module for ftp utils. Issue #128, #157.
  • scripts: ftp: Implement file-like object for IO. Issue #128.
  • plugin: ftp: Implement write file. Issue #128.
  • scripts: mavftp: Add remove subcommand. Issue #128.
  • plugin: ftp: Add FTP:Remove call. Issue #128.
  • plugin: ftp: Add response errno from server.
  • plugin: ftp: Add support for 'Skip' list entries. Issue #128.
  • scripts: mavftp: Add mkdir/rmdir support. Issue #128.
  • plugin: ftp: Add mkdir/rmdir support. Issue #128.
  • plugins: ftp: Update protocol headers. Issue #128.
  • Revert "Update package.xml format to REP140 (2)." This reverts commit 81286eb84090a95759591cfab89dd9718ff35b7e. ROS Hydro don't fully support REP140: rospack can't find plugin descriptions. Fix #151.
  • scripts: mavwp: Fix --follow mode
  • plugin: imu_pub: Fix RAW_IMU/SCALED_IMU angular scale constant. Fix #152.
  • launch: remove px4_local_gcs.launch again. It removed in 826be386938c2735c9dab72283ba4ac1c68dc860, but accidentally returned.
  • extras: launch: Use includes. Fix #144.
  • launch: PX4: use node.launch in PX4 scripts. Also remove px4_local_gcs.launch: please use roslaunch mavros px4.launch gcs_url:=udp://@localhost instead. Issue #144.
  • launch: APM2: Add node.launch and update apm scripts to use it. Issue #144.
  • plugin: command: Fix CommandInt x,y types.
  • Update package.xml format to REP140 (2). Fix #104.
  • launch: Blacklist FTP for APM.
  • scripts: mavwp: Add decoding for some DO-* mission items.
  • scripts: mavwp: Add preserve home location option at load operation. Useful if FCU stores home location in WP0 (APM).
  • Added src location.
  • Updated README wstool instructions.
  • plugin: ftp: Init ctor
  • service: mavftp: Initial import. Issue #128.
  • plugin: ftp: Implemnet reset call. Sometimes kCmdReset can restore normal operation, but it might be dangerous. Issue #128.
  • plugin: ftp: Implement FTP:Read call. Issue #128.
  • plugin: ftp: Fix open error. Issue #128.
  • plugin: ftp: Implement FTP:Open (read) and FTP:Close. Issue #128.
  • plugin: ftp: Implement FTP:List method. Issue #128.
  • plugin: ftp: Implement list parsing Issue #128.
  • plugin: ftp: Fix CRC32 calculation. Issue #128.
  • plugin: ftp: Add plugin skeleton. Based on QGroundContol QGCUASFileManager.h/cc. Issue #128.
  • plugin: ftp: Add size info
  • plugin: ftp: Add plugin service API. Issue #128.
  • plugin: vfr_hud: Initial import. Also this plugin publish APM specific WIND estimation message. Fix #86.
  • node: coverity fails at UAS initilizer list
  • plugin: setpoint_attitude: Init ctor, remove code dup.
  • cmake: Add check MAVLINK_DIALECT value Fix #139.
  • Move common cmake rules to modules. Same mech as in cmake_modules package. Issue #139.
  • launch: corrected launch for gcs bridge
  • scripts: mavsetp: Fix misprint.
  • launch files: added px4 launch files for connection with radio and gcs
  • scripts: mavsetp: Fix twist.angular vector construction. Small style fix.
  • Update doxygen documentation. Add split lines in UAS, and make UAS.connection atomic. Add rosdoc configuration for mavros_extras.
  • scripts: mavsetp: corrected API; added possibility of parse angles in dg or rad
  • scripts: mavsetp: corrected msg API; mavteleop: added prefix to rc override
  • scripts: mavsetp: added local accel; corrected how the OFFBOARD mode is swtch.
  • scripts: mavsetp: changed the way offboard mode is switched
  • node: init ctor (coverity)
  • nodelib: add std::array header
  • return msg generator deps for mavconn
  • scripts: mavsys: Implement set rate command.
  • scripts: Add mavsys tool. Implented only mode operation. Issue #134.
  • plugin: sys_status: Implement set_mode service. Previous command shortcut removed. Issue #136, #134.
  • node: Implement reverse mode lookup. Issue #136.
  • plugin: sys_status: Move custom mode decoder to UAS. Issue #136.
  • node: Catch URL open exception. Also update connection pointer type.
  • nodelib: move sources to subdir
  • node: Move UAS to mavros namespace
  • node: Move node code to library.
  • node: Catch DeviceError; use C++11 foreach shugar.
  • plugin: command: Add COMMAND_INT suport. Fix #98.
  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov

0.7.1 (2014-08-25)

  • plugins: setpoint: Update SET_POSITION_TARGET_LOCAL_NED message. Fix #131.
  • scripts: mavsetp: Enable OFFBOARD mode. Issue #126.
  • plugin: command: Add guided_enable shortcut It enable PX4 OFFBOARD mode. Issue #126.
  • scripts: Add mavsetp script. Only local setpoint for now. Issue #126.
  • plugins: Change UAS FCU link name. Reduce smart pointer count, that hold fcu link object.
  • scripts: mavcmd: Add takeoffcur and landcur commands Fix #91, #92. Inspired by #125.
  • Closes #122, closes #123; plugins: move mocap & vision plugins to extras, change vision plugins name
  • plugins: UAS remove std::atomic<double> It don't work at some compilers. Issue #89.
  • plugin: global_position: Fill NavSatFix status filed. Issue #87, #118.
  • plugins: Add GPS data to UAS
  • plugins: Move setpoint_mixin.h Fix #120.
  • plugin: mocap: Fix load. Issue #121.
  • plugins: global_position: get pose orientation from the one stored in uas
  • plugins: global_position: use relative_alt on position.z; mavros_plugins.xml - corrected declaration of mocap_pose_estimate
  • plugin - global_position - changed parameter path / orientation source
  • launch: APM2 blacklist global_position plugin
  • plugin: global_position: Unit unification.
  • plugin: global_position: Move heaedr; Style fix.
  • added rel_pos and compass_hdg pub; minor corrections
  • Merge branch 'master' of https://github.com/vooon/mavros into global_position
  • global_position plugin - initial commit
  • launch: APM2 blacklist mocap plugin.
  • Updated mavros_plugins.xml
  • Fixed dual sources error warning.
  • Fixed styles.
  • Minor changes.
  • added time stamp to received msgs
  • Removed un-needed times.
  • Added mocap_pose_estimate plugin.
  • Code style update
  • setpoint attitude change - warning message
  • Update on setpoint_attitude plugin

    • changed Twist to TwistStamped
    • added reverse_throttle option for throttle control
    • use cmd_vel as the same topic to control linear a angular velocities (it's commonly used by controllers)

    * added normalization filter to thrust

  • node: Remove deprecated conn parameters. Fix #108

  • plugin: vision_speed: Update plugin API.

  • plugin: setpoint_attitude: Update plugin API.

  • plugin: setpoint_accel: Update plugin API.

  • plugin: setpoint_velocity: Update plugin API.

  • plugin: 3dr_radio: Update plugin API.

  • plugin: safety_area: Update plugin API.

  • plugin: setpoint_position: Update plugin API.

  • plugin: vision_position: Update plugin API.

  • plugin: local_position: Update plugin API.

  • plugin: command: Update plugin API.

  • plugin: rc_io: Update plugin API.

  • plugin: waypoint: Update plugin API.

  • plugin: param: Update plugin API.

  • plugin: gps: Update plugin API.

  • plugin: imu_pub: Update plugin API.

  • plugin: sys_status: Update plugin API.

  • plugin: Update plugin API.

  • plugins: disable most of plugins

  • plugin: setpoint_attitude: Add thrust topic. Fix #106.

  • Fix URLs in readme

  • mavros -> ros-message parameter fix only parameter1 was forwarded into the ros message

  • Switch travis to pixhawk dialect. Default dialect build by ros buildfarm. Also remove duplicate ci statuses from mavros readme.

  • Contributors: Nuno Marques, Tony Baltovski, Vladimir Ermakov, mthz

0.7.0 (2014-08-11)

  • Add package index readme, Fix #101
  • move mavros to subdirectory, #101
  • Merge branch 'master' of github.com:vooon/mavros * 'master' of github.com:vooon/mavros: Add link to ros-*-mavlink package wiki page.
  • plugins: setpoint: Update setpoint message name. Issue #94, Fix #97.
  • plugin: setpoint_attitude: Update message name. Issues #94, #97.
  • Add link to ros-*-mavlink package wiki page.
  • plugin: gps: Fix gcc 4.6 build (atomic). Not recommended to use std::atomic with gcc 4.6. So i limited to prederined atomics for simple types like int, float etc.
  • plugin: sys_status: Implement PX4 mode decoding. Fix #84.
  • plugin: gps: Add EPH & EPV to diagnostic. Issue #95
  • plugin: gps: Move message processing to individual handlers. Issue #95.
  • plugin: rc_io: Replace override service with topic. (ROS API change). Fix #93.
  • Add dialect selection notes
  • plugins: Change severity for param & wp done messages.
  • plugins: Store raw autopilot & mav type values. This may fix or not issue #89.
  • plugins: init ctor (coverity)
  • plugin: imu_pub: Add ATTITUDE_QUATERNION support. Also reduce copy-paste and use mode readable bitmask check. Fix #85.
  • scriptis: mavcmd: Spelling
  • scripits: Add mavcmd tool
  • Add links to mavros_extras
  • param: sys_status: Option to disable diagnostics (except heartbeat)
  • plugin: command: Add takeoff and land aliases. Issue #68.
  • plugin: command: Add quirk for PX4. Fix #82.
  • plugin: Add UAS.is_px4() helper. Replace some locks with atomic. Issue #82.
  • launch: Clear PX4 blacklist. Issue #68.
  • launch: Add target ids. Also fix PX4 wrong ?ids usage (it set mavros ids, not target). Issue #68.
  • plugin: imu_pub: Fix HRIMU pressure calc. 1 mBar is 100 Pa. Fix #79.
  • plugins: C++11 chrono want time by ref, return *_DT Fix #80.
  • plugins: Replace boost threads with C++11. And remove boost thread library from build rules. Issue #80.
  • plugins: Replace Boost condition variables with C++11 Issue #80.
  • plugins: Replace boost mutexes with C++11. Issue #80.
  • travis clang to old, fails on boost signals2 library. disable.
  • travis: enable clang build.
  • node: Make project buildable by clang. Clang produce more readable errors and provide some static code analysis, so i want ability to build mavros with that compilator.
  • plugins: replace initial memset with c++ initializer list
  • launch: PX4 default ids=1,50. Also waypoint plugin works (with first_pos_control_flight-5273-gd3d5aa9). Issue #68.
  • launch: Use connection URL
  • plugin: vision_speed: Initial import. Fix #67.
  • plugin: sys_status: Add SYSTEM_TIME sync send. Fix #78.
  • plugin: sys_status: Decode sensor health field. Fix #75.
  • Add ci badges to readme
  • plugin: param: erase invalidates iterator. Real error found by coverity :)
  • plugins: Init ctor
  • plugins: Add ctor initialization. Coverity recommends init all data members.
  • test: trying travis-ci && coverity integration. Real ci doing by ros buildfarm.
  • plugins: Fix clang-check errors.
  • test: Add tcp client reconnect test. Issue #72.
  • test: Split open_url test to individual tests. Also removed tcp client deletion on close, heisenbug here. Issue #72.
  • mavconn: Emit port_closed after thread stop. Also use tx state flag, improve error messages and move io post out of critical section. Issue #72.
  • mavconn: Fix TCP server client deletion. Issue #72.
  • test: Remove not needed sleep.
  • mavconn: Remove new MsgBuffer dup. Message drop if closed. Issue #72.
  • mavconn: Fix TCP server. Issue #72.
  • launch: APM2: Blacklist extras.
  • mavconn: Add mutex to channel allocation.
  • mavconn: Fix TCP server for gcc 4.6 Fix #74.
  • Remove libev from package. Issue #72.
  • mavconn: GCC 4.6 does not support typedef like using. Issue #74.
  • Merge pull request #73 from vooon/mavconn-revert-asio mavconn: Revert to Boost.ASIO
  • mavconn: Cleanup boost threads. I will use C++11 standard libs. Issue #72.
  • mavconn: Remove libev default loop thread. Issue #72.
  • mavconn: Port MAVConnTCPServer to Boost.ASIO. TCP send test fails. Issue #72.
  • mavconn: Port MAVConnTCPClient to Boost.ASIO. Also it disables MAVConnTCPServer before i rewrite it. Issue #72.
  • mavconn: Revert MAConnSerial back to Boost.ASIO. Issue #72.
  • test: Fix send_message tests. Use C++11. Issue #72.
  • mavconn: Revert MAVConnUDP back to Boost.ASIO. Also starting to change boost threads and mutexes to C++11. Issue #72.
  • test: Enable send tests. Issue #72.
  • test: And hand test for mavconn hangs. Issue #72.
  • node: Remove anonimous flag from gcs_bridge. Rename node if you want start several copies.
  • install: Remove duplicate
  • node: Fix mavros_node termination message. Issue #58.
  • node: Use URL in mavros_node. Fix #58.
  • node: Use URL in gcs_bridge. Issue #58.
  • node: Rename ros_udp to gcs_bridge. Because now it's not UDP only. Issue #58.
  • Cleanup boost components
  • mavconn: Implement URL parsing. Supported shemas:

    • 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]
    • TCP client: tcp://[server_host][:port][/?ids=sysid,compid]

    * TCP server: tcp-l://[bind_port][:port][/?ids=sysid,compid] Note: ids from URL overrides ids given to open_url(). Issue #58.

  • test: Add tests for UDP, TCP, SERIAL. Send message testa are broken, need to find workaround. Fix #70.

  • plugin: vision_position: Add transform timestamp check. Issue #60.

  • mavconn: Implement TCP server mode. Fix #57.

  • mavconn: Initial support for TCP client mode. Issue #57.

  • mavconn: Boost::asio cleanup.

  • plugin: Remove TimerService from UAS. Fix #59.

  • plugin: param: Add state check to sheduled pull.

  • mavparam: Add force pull.

  • plugin: param: Use ros::Timer for timeouts Also new option for force pull parameters from FCU instead of cache. Fix #59.

  • Add mavsafety info to README.

  • launch: Add apm2_radio.launch (for use with 3DR Radio)

  • plugin: 3dr_radio: Fix build error. Issue #62.

  • plugin: 3dr_radio: Publish status data for rqt_plot Also tested with SiK 1.7. Fix #62.

  • plugin: setpoint_attitude: Fix ENU->NED conversion. Fix #64. Related #33, #49.

  • launch: Add setpoint plugins to APM2 blacklist

  • plugin: setpoint_attitude: Initial import. XXX: need frame conversion #49. Issue #33, #64.

  • plugin: Move common tf code to mixin. Remove copy-paste tf_listener. Issue #33.

  • plugin: setpoint_position: Generalize topic NS with other setpoint_* Issue #33, #61.

  • plugin: setpoint_accel: Initial import. Issues: #33, #61.

  • plugin: position_velocity: Initial import. Also it fix ignore mask in setpoint_position. Issues #33, #61.

  • plugins: 3rd_radio: Initial import. Untested. Issue #61.

  • scripts: Add mavsafety tool. Also add safety_area to APM2 blacklist. Fix #51.

  • plugins: safty_area: Initial import. This plugin listen ~/safety_area/set and send it's data to FCU. Issue #51.

  • plugins: position: Add TF rate limit. Issue #33.

  • plugin: waypoint: Use ros::Timer for timeouts. Also add some debug messages for next debugging PX4. Issue #59.

  • plugin: sys_status: Use ros::Timer for timeouts Also move message rx to it's own handlers. Issue #59.

  • Remove rosdep.yaml and update readme

  • Add deb build notes to readme. Issue #55.

  • Add sudo notes to readme.

  • Merge pull request #56 from vooon/54_try_libev Switch to libev

  • Add libev to README

  • package: Add temporary rosdep for libev-dev. Issue #54.

  • mavconn: Move MAVConnUDP to libev. And fix docs in serial. Issue #54.

  • mavconn: Move MAVConnSerial to libev. Adds stub for open URL function. Issure #54.

  • Contributors: Vladimir Ermakov, M.H.Kabir, Nuno Marques, Glenn Gregory

0.6.0 (2014-07-17)

  • plugin: local_position: Use same timestamp in topic and TF. Issue #33.
  • plugins: TF thread required, remove notes. Issue #33.
  • launch: Add example launch for PX4 Issue #45.
  • plugin: imu_pub: Fix attitude store in UAS Issue #33. Fix #53.
  • plugins: Disable position topics if tf_listen enabled Also change default frame names: vision and setpoint. Issue #33.
  • plugins: Fix typo in frame_id params. Issue #33.
  • plugins: Add vision and setpoint TF listeners Also change parameter names to same style. Issue #33.
  • plugin: vision_position: Add PositionWithCovarianceStamped option Issue #33.
  • Add boost filesystem lib to link On some platforms its absence breaks build by: undefined reference to boost::filesystem::path::codecvt()
  • launch: Add example for APM2 Fix #45.
  • plugin: setpoint_position: Initial import And some small doc changes in other position plugins. Issue #33.
  • node: Add connection change message Fix #52.
  • plugins: vision_position: Initial import TODO: check ENU->NED maths. Issue #33.
  • plugins: Remove unneded 'FCU' from diag
  • plugin: local_position: Change plane conversion Bug: #49.
  • plugin: imu_pub: Fix magnetic vector convertions Bug: #49.
  • Use dialects list from package
  • plugin: local_position: Fix orientation source Part of #33.
  • node: Show target system on startup Fix #47.
  • plugin: local_position: Initial add Receive LOCAL_POSITION_NED message and publish it via TF and PoseStamped topic in ENU frame. Part of #33.
  • node: Use boost::make_shared for message allocation Fix #46.
  • plugins: Use boost::make_shared for message allocation Part of #46.
  • plugin: imu_pub: Fix misprint in fill function Fix magnetometer vector convertion (HR IMU). Related #33.
  • plugin: imu_pub: setup cleanup.
  • Update readme
  • plugin: gps: Fix gps_vel calculation Fix #42.
  • plugins: Make name and messages methods const. (breaking). WARNING: this change broke external plugins. Please add const to get_name() and get_supported_messages(). Part of #38.
  • plugins: Use mavlink_msg_*_pack_chan() functions Fix #43.
  • mavconn: Reuse tx buffer (resize by extents) Part of #38.
  • mavconn: Do not finalize messages if id pair match mavlink_*_pack also do finalize, so explicit finalization just recalculate crc and seq number (doubles work). Test later if we need check seq too.
  • mavconn: Documentation and cleanup Make MAVConn classes noncopyable. Remove copy-paste copy and following async_write calls. Reserve some space in tx queues. Replace auto_ptr with unique_ptr.
  • test: Fix header include
  • mavconn: Fix possible array overrun in channel alocation. Problem found by clang.
  • fix some roslint errors
  • mavconn: move headers to include
  • node: Implement plugin blacklist. New parameter: ~/plugin_blacklist lists plugin aliases with glob syntax. Fix #36.
  • plugins: Change constants to constexpr (for gcc 4.6)
  • mavconn: Add gencpp dependency (utils.h requiers generated header)
  • Move duplicate Mavlink.msg copy to utils.h
  • Remove tests that requires connection to FCU
  • plugins: imu_pub: Fix PX4 imu/data linear_accelerarion field Should fix: #39.
  • plugins: imu_pub: Add magnitic covariance Trying to move constants with constexpr. Related: #13.
  • Remove testing info Need to remove tests that could not run on build farm.
  • Contributors: Vladimir Ermakov

0.5.0 (2014-06-19)

  • Remove mavlink submodule and move it to package dependency Bloom release tool don't support git submodules, so i've ceate a package as described in http://wiki.ros.org/bloom/Tutorials/ReleaseThirdParty . Fix #35.
  • plugins: param: add missing gcc 4.6 fix.
  • plugins: fix const initializers for gcc 4.6
  • plugins: imu_pub: fix const initializers for gcc 4.6 Fix for build failure devel-hydro-mavros #4.
  • Add support for GCC 4.6 (C++0x, ubuntu 12.04) I don't use complete c++11, so we could switch to c++0x if it supported.
  • plugins: rc_io: Add override rcin service Fix: #22.
  • plugins: sys_status: fix timeouts Fix #26.
  • plugins: sys_status: add set stream rate service Some additional testing required. Fix #23.
  • Remove unused boost libarary: timer Build on jenkins for hydro failed on find boost_timer.
  • 0.4.1
  • Add changelog for releasing via bloom

0.4.1 (2014-06-11)

  • node: Show serial link status in diag Now 'FCU connection' shows actual status of connection (HEARTBEATS).
  • Fix #29. Autostart mavlink via USB on PX4 Changes mavconn interface, adds new parameter.
  • Fix installation rules. Fix #31.
  • Setup UDP transport for /mavlink messages
  • Fix mavlink dialect selection Fix #28.
  • Add link to wiki.ros.org Part of #27.

0.4.0 (2014-06-07)

  • Release 0.4.0 And some docs for CommandPlugin.
  • plugins: command: Command shortcuts Fix #12.
  • plugins: command: Add ACK waiting list Part of #12.
  • plugins: command: Initial naive realization. Partial #12, #25.
  • mavconn: Fix build on Odroid with Ubuntu 13.10 Fix #24.
  • plugins: rc_io: initial add RC_IO plugin Topics:

    • ~/rc/in -- FCU RC inputs in raw microseconds

    * ~/rc/out -- FCU Servo outputs Fix #17. Partiall #22.

  • Fix installation wstool command. wstool set, not wstool add.

  • Add installation notes to README Installing pymavlink is not required, but try if errors.

  • Fix headers in README.md

  • ros_udp: New node for UDP proxing Add some examples to README.md. Fix #21.

  • sys_status: Add state publication Fix #16.

  • sys_status: Sent HEARTBEAT if conn_heartbeat > 0 Fix #20.

  • sys_status: add sensor diagnostic See #16.

  • sys_status: Add battery status monitoring Fix #19, partial #16.

  • sys_status: HWSTATUS support Fix #18, partial #20.

  • plugins: imu_pub: Add RAW_IMU, SCALED_IMU and SCALED_PRESSURE handlers Fix #13. Refactor message processing. Combination of used messages: On APM: ATTITUDE + RAW_IMU + SCALED_PRESSURE On PX4: ATTITUDE + HIGHRES_IMU On other: ATTITUDE + (RAW_IMU|SCALED_IMU + SCALED_PRESSURE)|HIGHRES_IMU Published topics:

    • ~imu/data - ATTITUDE + accel data from *_IMU
    • ~imu/data_raw - HIGHRES_IMU or SCALED_IMU or RAW_IMU in that order
    • ~imu/mag - magnetometer (same source as data_raw)
    • ~imu/temperature - HIGHRES_IMU or SCALED_PRESSURE

    * ~imu/atm_pressure - same as temperature

  • Update readme

  • mavwp: Add --pull option for 'show' operation. Reread waypoints before show.

  • MissionPlanner use format QGC WPL, Fix #15 Code cleanup;

  • Update mavlink version.

  • Update mavlink version

  • mavparam: fix #14 support for QGC param files

  • mavwp: Add mavwp to install

0.3.0 (2014-03-23)

  • Release 0.3.0
  • mavwp: Add MAV mission manipulation tool Uses WaypointPlugin ROS API for manipulations with FCU mission.

    • show -- show current mission table
    • pull -- update waypoint table
    • dump -- update and save to file
    • load -- loads mission from file
    • clear -- delete all waypoints
    • setcur -- change current waypoint
    • goto -- execute guided goto command (only APM) Currently supports QGroundControl format only.
  • plugins: wp: Add GOTO, update documentation

  • plugins: wp: Auto pull

  • plugins: wp: SetCurrent & Clear now works

  • plugins: wp: Push service works

  • plugins: wp: push almost done

  • plugins: wp: Pull done

  • plugins: param: remove unused ptr

  • plugins: wp: mission pull almost done

  • plugins: wp: Add convertors & handlers

  • plugins: Waypoint plugin initial

  • Use C++11 feuture - auto type

  • plugins: refactor context & link to single UAS class UAS same functions as in QGC.

  • plugins: Add msgs and srvs for Waypoint plugin

  • Update mavlink library

  • Update mavlink version

  • mavparam: Fix for DroidPlanner param files & cleanup DroidPlanner adds some spaces, don't forget to strip it out. Cleanup unused code from Parameter class.

0.2.0 (2014-01-29)

  • mavparam: Add MAV parameter manipulation tool Uses ParamPlugin ROS API for manipulating with fcu params.

    • load -- load parameter from file
    • dump -- dump parameter to file
    • get -- get parameter
    • set -- set parameter Currently supports MissionPlanner format only. But DroidPlanner uses same format.
  • Update README and documentation

  • plugins: param: implement ~param/push service Also implement sync for rosparam:

    • ~param/pull service pulls data to rosparam
    • ~param/push service send data from rosparam
    • ~param/set service update rosparam if success
  • plugins: param: implement ~param/set service

  • plugins: param: implement ~param/get service

  • plugins: param: Implement automatic param list requesting

  • plugins: use recursive_mutex everywhere

  • plugins: param now automaticly requests data after connect

  • plugins: Add common io_service for plugins, implement connection timeout Some plugin require some delayed processes. Now we can use boost::asio::*timer. New parameter:

    • ~/conn_timeout connection timeout in seconds
  • plugins: add param services

  • mavconn: set thread names WARNING: pthread systems only (BSD/Linux)

  • plugins: implement parameters fetch service

  • plugins: fix string copying from mavlink msg

  • plugins: Setup target in mav_context New params:

    • ~target_system_id - FCU System ID
    • ~target_component_id - FCU Component ID
  • plugins: IMU Pub: add stdev parameters, change topic names. Add parameters:

    • ~imu/linear_acceleration_stdev - for linear acceleration covariance
    • ~imu/angular_velocity_stdev - for angular covariance
    • ~imu/orientation_stdev - for orientation covariance Change topic names (as in other IMU drivers):
    • ~imu -> ~/imu/data
    • ~raw/imu -> ~/imu/data_raw
  • plugins: Params initial dirty plugin

  • Fix mavlink dialect choice.

  • plugins: Add context storage for automatic quirk handling ArduPlilot requires at least 2 quirks:

    • STATUSTEXT severity levels
    • parameter values is float
  • Implement MAVLink dialect selection ArduPilotMega is default choice.

  • doc: add configuration for rosdoc_lite

0.1.0 (2014-01-05)

  • Version 0.1.0 Milestone 1: all features from mavlink_ros package.xml was updated.
  • Fix typo and add copyright string NOTE: Please check typos before coping and pasting :)
  • plugins: gps: Add GPS_RAW_INT handler GPS_STATUS not supported by APM:Plane. ROS dosen't have standard message for satellites information.
  • mavconn: small debug changes Limit no GCS message to 10 sec.
  • node: Terminate node on serial port errors
  • plugins: Add GPS plugin SYSTEM_TIME to TimeReference support. TODO GPS fix.
  • Fix build and update MAVLink library
  • plugins: sys_status: Add SYSTEMTEXT handler Two modes:

    • standard MAV_SEVERITY values
    • APM:Plane (default) TODO: add mavlink dialect selection option
  • plugins: add some header doxygen tags Add license to Dummy.cpp (plugin template).

  • plugins: sys_status: Add MEMINFO handler MEMINFO from ardupilotmega.xml message definition. Optional.

  • update README

  • update TODO

  • plugins: Add imu_pub plugin. Publish ATTITUDE and HIGHRES_IMU data. HIGHRES__IMU not tested: Ardupilot sends ATTITUDE only :(

  • node: publish Mavlink.msg only if listners > 0

  • plugins: Add sys_status plugin. Initial.

  • plugins: implement loading & rx routing

  • plugins: initial

  • node: Add diagnostics for mavlink interfaces

  • mavconn: add information log wich serial device we use.

  • mavconn: fix overloaded MAVConn*::send_message(msg)

  • mavros: Add mavros_node (currently serial-ros-udp bridge) Message paths: Serial -+-> ROS /mavlink/from +-> UDP gcs_host:port ROS /mavlink/to -+-> Serial UDP bind_host:port -+

  • Add README and TODO files.

  • mavconn: fix MAVConnUDP, add mavudpproxy test mavudpproxy -- connection proxy for QGroundControl, also used as test for MAVConnUDP and MAVConnSerial.

  • mavconn: add UDP support class

  • mavconn: fix: should use virtual destructor in interface class

  • mavconn: add getters/setters for sys_id, comp_id; send_message return.

  • mavconn: simple test. tested with APM:Plane: works.

  • mavconn: fix linking

  • mavconn: serial interface

  • Add mavconn library prototype mavconn - handles MAVLink connections via Serial, UDP and TCP.

  • Add MAVLink library + build script

  • Initial Import Mavlink.msg from mavlink_ros package ( https://github.com/mavlink/mavlink_ros ).

  • Contributors: Vladimir Ermakov

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/px4_radio.launch
      • fcu_url [default: /dev/ttyUSB0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 50]
  • launch/apm2.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 50]
  • launch/node.launch
      • fcu_url
      • gcs_url
      • tgt_system
      • tgt_component
      • blacklist_yaml
      • config_yaml
  • launch/apm2_radio.launch
      • fcu_url [default: /dev/ttyUSB0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 50]
  • launch/px4.launch
      • fcu_url [default: /dev/ttyACM0:57600]
      • gcs_url [default: ]
      • tgt_system [default: 1]
      • tgt_component [default: 50]

Plugins

No version for distro groovy. Known supported distros are highlighted in the buttons above.
No version for distro fuerte. Known supported distros are highlighted in the buttons above.
No version for distro electric. Known supported distros are highlighted in the buttons above.
No version for distro diamondback. Known supported distros are highlighted in the buttons above.