-
 

mavros repository

uav mav mavlink plugin apm px4

Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags uav mav mavlink plugin apm px4
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libmavconn 2.9.0
mavros 2.9.0
mavros_extras 2.9.0
mavros_msgs 2.9.0

README

MAVROS

GitHub release (latest by date) Gitter CI

MAVLink extendable communication node for ROS.

  • Since 2014-08-11 this repository contains several packages.
  • Since 2014-11-02 hydro support separated from master to hydro-devel branch.
  • Since 2015-03-04 all packages also dual licensed under terms of BSD license.
  • Since 2015-08-10 all messages moved to mavros_msgs package
  • Since 2016-02-05 (v0.17) frame conversion changed again
  • Since 2016-06-22 (pre v0.18) Indigo and Jade separated from master to indigo-devel branch.
  • Since 2016-06-23 (0.18.0) support MAVLink 2.0 without signing.
  • Since 2017-08-23 (0.20.0) GeographicLib and it’s datasets are required. Used to convert AMSL (FCU) and WGS84 (ROS) altitudes.
  • Since 2018-05-11 (0.25.0) support building master for Indigo and Jade stopped. Mainly because update of console-bridge package.
  • Since 2018-05-14 (0.25.1) support for Indigo returned. We use compatibility layer for console-bridge.
  • Since 2019-01-03 (0.28.0) support for Indigo by master not guaranteed. Consider update to more recent distro.
  • 2020-01-01 version 1.0.0 released, please see #1369 for reasons and its purpose.
  • 2021-05-28 version 2.0.0 released, it’s the first alpha release for ROS2.
  • 2023-09-09 version 2.6.0, dropped support for EOLed ROS2 releases. Now it require Humble+ (Humble, Iron, Rolling…).

mavros package

It is the main package, please see its README. Here you may read installation instructions.

mavros_extras package

This package contains some extra nodes and plugins for mavros, please see its README.

libmavconn package

This package contain mavconn library, see its README. LibMAVConn may be used outside of ROS environment.

test_mavros package

This package contain hand-tests and manual page for APM and PX4 SITL. Please see README first!

mavros_msgs package

This package contains messages and services used in MAVROS.

Support forums and chats

Please ask your questions not related to bugs/feature or requests on:

We’d like to keep the project bug tracker as free as possible, so please contact via the above methods. You can also PM us via Gitter and the PX4 Slack.

CI Statuses

  • ROS2 Humble: Build Status
  • ROS2 Iron: Build Status
  • ROS2 Jazzy: Build Status
  • ROS2 Rolling: Build Status

CONTRIBUTING

Contributing

  1. Fork the repo.
  2. Clone the repo into your workspace:
  git clone https://github.com/mavlink/mavros.git
  
  1. Create a remote connection to your repo:
  git remote add origin git@github.com:<YourGitUser>/mavros.git
  
  1. Create a feature/dev branch:
  git checkout -b <feature_branch>
  
  1. Make your changes.
  2. Commit the changes. The -a option automatically adds and removes files for you.
  git commit -a -m "<message>"
  
  1. Check your code style:
  uncrustify -c ${ROS_WORKSPACE}/src/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>
  
  1. Fix small code style errors and typos.
  2. Commit with a description like “uncrustify” or “code style fix”. Please avoid changes in program logic (separate commits are better than a mix of style and bug fixes).
  3. Run tests:
  • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
  • with catkin tools, issue catkin run_tests;
  1. If everything goes as planned, push the changes and issue a pull request.
git push -u origin <feature_branch>

cog.py generators

In many places we need to copy some data from MAVLink, and in many places we have regular patterns of code (e.g. copied message fields). To avoid manual copy-paste work (and errors!) we use the the cog.py code generator/preprocessor.

Cog generates C++ code from code blocks written in Python that you add into your C++ code file as specially formatted comments. Since you are now using Python, you can import and make use of the pymavlink module, which already comes with MAVlink message definitions that you can reuse. An example you may look at is the utils::to_string() implementation for some enums in lib/enum_to_string.cpp.

Install cog and pymavlink:

pip install --user cogapp pymavlink

Add your generator code to your file as comments enclosed in the [[[cog:]]] and [[[end]]] tags. Then invoke cog so that it updates your file:

cog.py -cr your_file.h/cpp

In addition, this script will re-generate all files with cog code:

./mavros/tools/cogall.sh


Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags uav mav mavlink plugin apm px4
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libmavconn 2.9.0
mavros 2.9.0
mavros_extras 2.9.0
mavros_msgs 2.9.0

README

MAVROS

GitHub release (latest by date) Gitter CI

MAVLink extendable communication node for ROS.

  • Since 2014-08-11 this repository contains several packages.
  • Since 2014-11-02 hydro support separated from master to hydro-devel branch.
  • Since 2015-03-04 all packages also dual licensed under terms of BSD license.
  • Since 2015-08-10 all messages moved to mavros_msgs package
  • Since 2016-02-05 (v0.17) frame conversion changed again
  • Since 2016-06-22 (pre v0.18) Indigo and Jade separated from master to indigo-devel branch.
  • Since 2016-06-23 (0.18.0) support MAVLink 2.0 without signing.
  • Since 2017-08-23 (0.20.0) GeographicLib and it’s datasets are required. Used to convert AMSL (FCU) and WGS84 (ROS) altitudes.
  • Since 2018-05-11 (0.25.0) support building master for Indigo and Jade stopped. Mainly because update of console-bridge package.
  • Since 2018-05-14 (0.25.1) support for Indigo returned. We use compatibility layer for console-bridge.
  • Since 2019-01-03 (0.28.0) support for Indigo by master not guaranteed. Consider update to more recent distro.
  • 2020-01-01 version 1.0.0 released, please see #1369 for reasons and its purpose.
  • 2021-05-28 version 2.0.0 released, it’s the first alpha release for ROS2.
  • 2023-09-09 version 2.6.0, dropped support for EOLed ROS2 releases. Now it require Humble+ (Humble, Iron, Rolling…).

mavros package

It is the main package, please see its README. Here you may read installation instructions.

mavros_extras package

This package contains some extra nodes and plugins for mavros, please see its README.

libmavconn package

This package contain mavconn library, see its README. LibMAVConn may be used outside of ROS environment.

test_mavros package

This package contain hand-tests and manual page for APM and PX4 SITL. Please see README first!

mavros_msgs package

This package contains messages and services used in MAVROS.

Support forums and chats

Please ask your questions not related to bugs/feature or requests on:

We’d like to keep the project bug tracker as free as possible, so please contact via the above methods. You can also PM us via Gitter and the PX4 Slack.

CI Statuses

  • ROS2 Humble: Build Status
  • ROS2 Iron: Build Status
  • ROS2 Jazzy: Build Status
  • ROS2 Rolling: Build Status

CONTRIBUTING

Contributing

  1. Fork the repo.
  2. Clone the repo into your workspace:
  git clone https://github.com/mavlink/mavros.git
  
  1. Create a remote connection to your repo:
  git remote add origin git@github.com:<YourGitUser>/mavros.git
  
  1. Create a feature/dev branch:
  git checkout -b <feature_branch>
  
  1. Make your changes.
  2. Commit the changes. The -a option automatically adds and removes files for you.
  git commit -a -m "<message>"
  
  1. Check your code style:
  uncrustify -c ${ROS_WORKSPACE}/src/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>
  
  1. Fix small code style errors and typos.
  2. Commit with a description like “uncrustify” or “code style fix”. Please avoid changes in program logic (separate commits are better than a mix of style and bug fixes).
  3. Run tests:
  • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
  • with catkin tools, issue catkin run_tests;
  1. If everything goes as planned, push the changes and issue a pull request.
git push -u origin <feature_branch>

cog.py generators

In many places we need to copy some data from MAVLink, and in many places we have regular patterns of code (e.g. copied message fields). To avoid manual copy-paste work (and errors!) we use the the cog.py code generator/preprocessor.

Cog generates C++ code from code blocks written in Python that you add into your C++ code file as specially formatted comments. Since you are now using Python, you can import and make use of the pymavlink module, which already comes with MAVlink message definitions that you can reuse. An example you may look at is the utils::to_string() implementation for some enums in lib/enum_to_string.cpp.

Install cog and pymavlink:

pip install --user cogapp pymavlink

Add your generator code to your file as comments enclosed in the [[[cog:]]] and [[[end]]] tags. Then invoke cog so that it updates your file:

cog.py -cr your_file.h/cpp

In addition, this script will re-generate all files with cog code:

./mavros/tools/cogall.sh


Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags uav mav mavlink plugin apm px4
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libmavconn 2.9.0
mavros 2.9.0
mavros_extras 2.9.0
mavros_msgs 2.9.0

README

MAVROS

GitHub release (latest by date) Gitter CI

MAVLink extendable communication node for ROS.

  • Since 2014-08-11 this repository contains several packages.
  • Since 2014-11-02 hydro support separated from master to hydro-devel branch.
  • Since 2015-03-04 all packages also dual licensed under terms of BSD license.
  • Since 2015-08-10 all messages moved to mavros_msgs package
  • Since 2016-02-05 (v0.17) frame conversion changed again
  • Since 2016-06-22 (pre v0.18) Indigo and Jade separated from master to indigo-devel branch.
  • Since 2016-06-23 (0.18.0) support MAVLink 2.0 without signing.
  • Since 2017-08-23 (0.20.0) GeographicLib and it’s datasets are required. Used to convert AMSL (FCU) and WGS84 (ROS) altitudes.
  • Since 2018-05-11 (0.25.0) support building master for Indigo and Jade stopped. Mainly because update of console-bridge package.
  • Since 2018-05-14 (0.25.1) support for Indigo returned. We use compatibility layer for console-bridge.
  • Since 2019-01-03 (0.28.0) support for Indigo by master not guaranteed. Consider update to more recent distro.
  • 2020-01-01 version 1.0.0 released, please see #1369 for reasons and its purpose.
  • 2021-05-28 version 2.0.0 released, it’s the first alpha release for ROS2.
  • 2023-09-09 version 2.6.0, dropped support for EOLed ROS2 releases. Now it require Humble+ (Humble, Iron, Rolling…).

mavros package

It is the main package, please see its README. Here you may read installation instructions.

mavros_extras package

This package contains some extra nodes and plugins for mavros, please see its README.

libmavconn package

This package contain mavconn library, see its README. LibMAVConn may be used outside of ROS environment.

test_mavros package

This package contain hand-tests and manual page for APM and PX4 SITL. Please see README first!

mavros_msgs package

This package contains messages and services used in MAVROS.

Support forums and chats

Please ask your questions not related to bugs/feature or requests on:

We’d like to keep the project bug tracker as free as possible, so please contact via the above methods. You can also PM us via Gitter and the PX4 Slack.

CI Statuses

  • ROS2 Humble: Build Status
  • ROS2 Iron: Build Status
  • ROS2 Jazzy: Build Status
  • ROS2 Rolling: Build Status

CONTRIBUTING

Contributing

  1. Fork the repo.
  2. Clone the repo into your workspace:
  git clone https://github.com/mavlink/mavros.git
  
  1. Create a remote connection to your repo:
  git remote add origin git@github.com:<YourGitUser>/mavros.git
  
  1. Create a feature/dev branch:
  git checkout -b <feature_branch>
  
  1. Make your changes.
  2. Commit the changes. The -a option automatically adds and removes files for you.
  git commit -a -m "<message>"
  
  1. Check your code style:
  uncrustify -c ${ROS_WORKSPACE}/src/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>
  
  1. Fix small code style errors and typos.
  2. Commit with a description like “uncrustify” or “code style fix”. Please avoid changes in program logic (separate commits are better than a mix of style and bug fixes).
  3. Run tests:
  • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
  • with catkin tools, issue catkin run_tests;
  1. If everything goes as planned, push the changes and issue a pull request.
git push -u origin <feature_branch>

cog.py generators

In many places we need to copy some data from MAVLink, and in many places we have regular patterns of code (e.g. copied message fields). To avoid manual copy-paste work (and errors!) we use the the cog.py code generator/preprocessor.

Cog generates C++ code from code blocks written in Python that you add into your C++ code file as specially formatted comments. Since you are now using Python, you can import and make use of the pymavlink module, which already comes with MAVlink message definitions that you can reuse. An example you may look at is the utils::to_string() implementation for some enums in lib/enum_to_string.cpp.

Install cog and pymavlink:

pip install --user cogapp pymavlink

Add your generator code to your file as comments enclosed in the [[[cog:]]] and [[[end]]] tags. Then invoke cog so that it updates your file:

cog.py -cr your_file.h/cpp

In addition, this script will re-generate all files with cog code:

./mavros/tools/cogall.sh


Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags uav mav mavlink plugin apm px4
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libmavconn 2.9.0
mavros 2.9.0
mavros_extras 2.9.0
mavros_msgs 2.9.0

README

MAVROS

GitHub release (latest by date) Gitter CI

MAVLink extendable communication node for ROS.

  • Since 2014-08-11 this repository contains several packages.
  • Since 2014-11-02 hydro support separated from master to hydro-devel branch.
  • Since 2015-03-04 all packages also dual licensed under terms of BSD license.
  • Since 2015-08-10 all messages moved to mavros_msgs package
  • Since 2016-02-05 (v0.17) frame conversion changed again
  • Since 2016-06-22 (pre v0.18) Indigo and Jade separated from master to indigo-devel branch.
  • Since 2016-06-23 (0.18.0) support MAVLink 2.0 without signing.
  • Since 2017-08-23 (0.20.0) GeographicLib and it’s datasets are required. Used to convert AMSL (FCU) and WGS84 (ROS) altitudes.
  • Since 2018-05-11 (0.25.0) support building master for Indigo and Jade stopped. Mainly because update of console-bridge package.
  • Since 2018-05-14 (0.25.1) support for Indigo returned. We use compatibility layer for console-bridge.
  • Since 2019-01-03 (0.28.0) support for Indigo by master not guaranteed. Consider update to more recent distro.
  • 2020-01-01 version 1.0.0 released, please see #1369 for reasons and its purpose.
  • 2021-05-28 version 2.0.0 released, it’s the first alpha release for ROS2.
  • 2023-09-09 version 2.6.0, dropped support for EOLed ROS2 releases. Now it require Humble+ (Humble, Iron, Rolling…).

mavros package

It is the main package, please see its README. Here you may read installation instructions.

mavros_extras package

This package contains some extra nodes and plugins for mavros, please see its README.

libmavconn package

This package contain mavconn library, see its README. LibMAVConn may be used outside of ROS environment.

test_mavros package

This package contain hand-tests and manual page for APM and PX4 SITL. Please see README first!

mavros_msgs package

This package contains messages and services used in MAVROS.

Support forums and chats

Please ask your questions not related to bugs/feature or requests on:

We’d like to keep the project bug tracker as free as possible, so please contact via the above methods. You can also PM us via Gitter and the PX4 Slack.

CI Statuses

  • ROS2 Humble: Build Status
  • ROS2 Iron: Build Status
  • ROS2 Jazzy: Build Status
  • ROS2 Rolling: Build Status

CONTRIBUTING

Contributing

  1. Fork the repo.
  2. Clone the repo into your workspace:
  git clone https://github.com/mavlink/mavros.git
  
  1. Create a remote connection to your repo:
  git remote add origin git@github.com:<YourGitUser>/mavros.git
  
  1. Create a feature/dev branch:
  git checkout -b <feature_branch>
  
  1. Make your changes.
  2. Commit the changes. The -a option automatically adds and removes files for you.
  git commit -a -m "<message>"
  
  1. Check your code style:
  uncrustify -c ${ROS_WORKSPACE}/src/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>
  
  1. Fix small code style errors and typos.
  2. Commit with a description like “uncrustify” or “code style fix”. Please avoid changes in program logic (separate commits are better than a mix of style and bug fixes).
  3. Run tests:
  • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
  • with catkin tools, issue catkin run_tests;
  1. If everything goes as planned, push the changes and issue a pull request.
git push -u origin <feature_branch>

cog.py generators

In many places we need to copy some data from MAVLink, and in many places we have regular patterns of code (e.g. copied message fields). To avoid manual copy-paste work (and errors!) we use the the cog.py code generator/preprocessor.

Cog generates C++ code from code blocks written in Python that you add into your C++ code file as specially formatted comments. Since you are now using Python, you can import and make use of the pymavlink module, which already comes with MAVlink message definitions that you can reuse. An example you may look at is the utils::to_string() implementation for some enums in lib/enum_to_string.cpp.

Install cog and pymavlink:

pip install --user cogapp pymavlink

Add your generator code to your file as comments enclosed in the [[[cog:]]] and [[[end]]] tags. Then invoke cog so that it updates your file:

cog.py -cr your_file.h/cpp

In addition, this script will re-generate all files with cog code:

./mavros/tools/cogall.sh


Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version master
Last Updated 2024-10-10
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags uav mav mavlink plugin apm px4
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libmavconn 1.20.0
mavros 1.20.0
mavros_extras 1.20.0
mavros_msgs 1.20.0
test_mavros 1.20.0

README

MAVROS

GitHub release (latest by date) Gitter CI

MAVLink extendable communication node for ROS.

  • Since 2014-08-11 this repository contains several packages.
  • Since 2014-11-02 hydro support separated from master to hydro-devel branch.
  • Since 2015-03-04 all packages also dual licensed under terms of BSD license.
  • Since 2015-08-10 all messages moved to mavros_msgs package
  • Since 2016-02-05 (v0.17) frame conversion changed again
  • Since 2016-06-22 (pre v0.18) Indigo and Jade separated from master to indigo-devel branch.
  • Since 2016-06-23 (0.18.0) support MAVLink 2.0 without signing.
  • Since 2017-08-23 (0.20.0) GeographicLib and it’s datasets are required. Used to convert AMSL (FCU) and WGS84 (ROS) altitudes.
  • Since 2018-05-11 (0.25.0) support building master for Indigo and Jade stopped. Mainly because update of console-bridge package.
  • Since 2018-05-14 (0.25.1) support for Indigo returned. We use compatibility layer for console-bridge.
  • Since 2019-01-03 (0.28.0) support for Indigo by master not guaranteed. Consider update to more recent distro.
  • 2020-01-01 version 1.0.0 released, please see #1369 for reasons and its purpose.
  • 2021-05-28 version 2.0.0 released, it’s the first alpha release for ROS2.

mavros package

It is the main package, please see its README. Here you may read installation instructions.

mavros_extras package

This package contains some extra nodes and plugins for mavros, please see its README.

libmavconn package

This package contain mavconn library, see its README. LibMAVConn may be used outside of ROS environment.

test_mavros package

This package contain hand-tests and manual page for APM and PX4 SITL. Please see README first!

mavros_msgs package

This package contains messages and services used in MAVROS.

Support forums and chats

Please ask your questions not related to bugs/feature or requests on:

We’d like to keep the project bug tracker as free as possible, so please contact via the above methods. You can also PM us via Gitter and the PX4 Slack.

CI Statuses

  • ROS Melodic: Build Status
  • ROS Noetic: Build Status

CONTRIBUTING

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 committing (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}/src/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.

cog.py generators

In many places we need to copy some data from MAVLink, and in many places we have regular patterns of code (e.g. copy message fields). To avoid manual copy-paste work (and errors!) we use cog.py generator/preprocessor. Generator program written in comment blocks on Python (that allow import pymavlink), output will be inserted between markers. As an example you may look at utils::to_string() implementation for some enums: lib/enum_to_string.cpp.

To install it :

pip install --user cogapp pymavlink

Then fill the behaviour you when between the [[[cog:]]] [[[end]]] balise and invoke cog like this:

cog.py -cr your_file.h/cpp

Your file will be updated by cog.

./mavros/tools/cogall.sh

This script will regenerate all files with generators.


Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version ros2
Last Updated 2024-10-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags uav mav mavlink plugin apm px4
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libmavconn 2.9.0
mavros 2.9.0
mavros_extras 2.9.0
mavros_msgs 2.9.0

README

MAVROS

GitHub release (latest by date) Gitter CI

MAVLink extendable communication node for ROS.

  • Since 2014-08-11 this repository contains several packages.
  • Since 2014-11-02 hydro support separated from master to hydro-devel branch.
  • Since 2015-03-04 all packages also dual licensed under terms of BSD license.
  • Since 2015-08-10 all messages moved to mavros_msgs package
  • Since 2016-02-05 (v0.17) frame conversion changed again
  • Since 2016-06-22 (pre v0.18) Indigo and Jade separated from master to indigo-devel branch.
  • Since 2016-06-23 (0.18.0) support MAVLink 2.0 without signing.
  • Since 2017-08-23 (0.20.0) GeographicLib and it’s datasets are required. Used to convert AMSL (FCU) and WGS84 (ROS) altitudes.
  • Since 2018-05-11 (0.25.0) support building master for Indigo and Jade stopped. Mainly because update of console-bridge package.
  • Since 2018-05-14 (0.25.1) support for Indigo returned. We use compatibility layer for console-bridge.
  • Since 2019-01-03 (0.28.0) support for Indigo by master not guaranteed. Consider update to more recent distro.
  • 2020-01-01 version 1.0.0 released, please see #1369 for reasons and its purpose.
  • 2021-05-28 version 2.0.0 released, it’s the first alpha release for ROS2.
  • 2023-09-09 version 2.6.0, dropped support for EOLed ROS2 releases. Now it require Humble+ (Humble, Iron, Rolling…).

mavros package

It is the main package, please see its README. Here you may read installation instructions.

mavros_extras package

This package contains some extra nodes and plugins for mavros, please see its README.

libmavconn package

This package contain mavconn library, see its README. LibMAVConn may be used outside of ROS environment.

test_mavros package

This package contain hand-tests and manual page for APM and PX4 SITL. Please see README first!

mavros_msgs package

This package contains messages and services used in MAVROS.

Support forums and chats

Please ask your questions not related to bugs/feature or requests on:

We’d like to keep the project bug tracker as free as possible, so please contact via the above methods. You can also PM us via Gitter and the PX4 Slack.

CI Statuses

  • ROS2 Humble: Build Status
  • ROS2 Iron: Build Status
  • ROS2 Jazzy: Build Status
  • ROS2 Rolling: Build Status

CONTRIBUTING

Contributing

  1. Fork the repo.
  2. Clone the repo into your workspace:
  git clone https://github.com/mavlink/mavros.git
  
  1. Create a remote connection to your repo:
  git remote add origin git@github.com:<YourGitUser>/mavros.git
  
  1. Create a feature/dev branch:
  git checkout -b <feature_branch>
  
  1. Make your changes.
  2. Commit the changes. The -a option automatically adds and removes files for you.
  git commit -a -m "<message>"
  
  1. Check your code style:
  uncrustify -c ${ROS_WORKSPACE}/src/mavros/mavros/tools/uncrustify-cpp.cfg --replace --no-backup <path/to/file.ext>
  
  1. Fix small code style errors and typos.
  2. Commit with a description like “uncrustify” or “code style fix”. Please avoid changes in program logic (separate commits are better than a mix of style and bug fixes).
  3. Run tests:
  • with catkin_make, issue catkin_make tests and then catkin_make run_tests;
  • with catkin tools, issue catkin run_tests;
  1. If everything goes as planned, push the changes and issue a pull request.
git push -u origin <feature_branch>

cog.py generators

In many places we need to copy some data from MAVLink, and in many places we have regular patterns of code (e.g. copied message fields). To avoid manual copy-paste work (and errors!) we use the the cog.py code generator/preprocessor.

Cog generates C++ code from code blocks written in Python that you add into your C++ code file as specially formatted comments. Since you are now using Python, you can import and make use of the pymavlink module, which already comes with MAVlink message definitions that you can reuse. An example you may look at is the utils::to_string() implementation for some enums in lib/enum_to_string.cpp.

Install cog and pymavlink:

pip install --user cogapp pymavlink

Add your generator code to your file as comments enclosed in the [[[cog:]]] and [[[end]]] tags. Then invoke cog so that it updates your file:

cog.py -cr your_file.h/cpp

In addition, this script will re-generate all files with cog code:

./mavros/tools/cogall.sh


Repository Summary

Checkout URI https://github.com/mavlink/mavros.git
VCS Type git
VCS Version master
Last Updated 2024-10-10
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags uav mav mavlink plugin apm px4
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libmavconn 1.20.0
mavros 1.20.0
mavros_extras 1.20.0
mavros_msgs 1.20.0
test_mavros 1.20.0

README

MAVROS

GitHub release (latest by date) Gitter CI

MAVLink extendable communication node for ROS.

  • Since 2014-08-11 this repository contains several packages.
  • Since 2014-11-02 hydro support separated from master to hydro-devel branch.
  • Since 2015-03-04 all packages also dual licensed under terms of BSD license.
  • Since 2015-08-10 all messages moved to mavros_msgs package
  • Since 2016-02-05 (v0.17) frame conversion changed again
  • Since 2016-06-22 (pre v0.18) Indigo and Jade separated from master to indigo-devel branch.
  • Since 2016-06-23 (0.18.0) support MAVLink 2.0 without signing.
  • Since 2017-08-23 (0.20.0) GeographicLib and it’s datasets are required. Used to convert AMSL (FCU) and WGS84 (ROS) altitudes.
  • Since 2018-05-11 (0.25.0) support building master for Indigo and Jade stopped. Mainly because update of console-bridge package.
  • Since 2018-05-14 (0.25.1) support for Indigo returned. We use compatibility layer for console-bridge.
  • Since 2019-01-03 (0.28.0) support for Indigo by master not guaranteed. Consider update to more recent distro.
  • 2020-01-01 version 1.0.0 released, please see #1369 for reasons and its purpose.
  • 2021-05-28 version 2.0.0 released, it’s the first alpha release for ROS2.

mavros package

It is the main package, please see its README. Here you may read installation instructions.

mavros_extras package

This package contains some extra nodes and plugins for mavros, please see its README.

libmavconn package

This package contain mavconn library, see its README. LibMAVConn may be used outside of ROS environment.

test_mavros package

This package contain hand-tests and manual page for APM and PX4 SITL. Please see README first!

mavros_msgs package

This package contains messages and services used in MAVROS.

Support forums and chats

Please ask your questions not related to bugs/feature or requests on:

We’d like to keep the project bug tracker as free as possible, so please contact via the above methods. You can also PM us via Gitter and the PX4 Slack.

CI Statuses

  • ROS Melodic: Build Status
  • ROS Noetic: Build Status

CONTRIBUTING

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 committing (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}/src/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.

cog.py generators

In many places we need to copy some data from MAVLink, and in many places we have regular patterns of code (e.g. copy message fields). To avoid manual copy-paste work (and errors!) we use cog.py generator/preprocessor. Generator program written in comment blocks on Python (that allow import pymavlink), output will be inserted between markers. As an example you may look at utils::to_string() implementation for some enums: lib/enum_to_string.cpp.

To install it :

pip install --user cogapp pymavlink

Then fill the behaviour you when between the [[[cog:]]] [[[end]]] balise and invoke cog like this:

cog.py -cr your_file.h/cpp

Your file will be updated by cog.

./mavros/tools/cogall.sh

This script will regenerate all files with generators.