Giter VIP home page Giter VIP logo

mavros's Introduction

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 Rolling: Build Status

mavros's People

Contributors

alexistm avatar amilcarlucas avatar andreasantener avatar baumanta avatar bob4drone avatar bromeara avatar charlie-burge avatar claymation avatar dayjaby avatar jaeyoung-lim avatar jamesstewy avatar karthikdesai avatar khancyr avatar lorenzmeier avatar mhkabir avatar mortenfyhn avatar mrivi avatar mstuettgen avatar okalachev avatar pavloblindnology avatar rmackay9 avatar rob-clarke avatar saifullah3396 avatar shubham-shahh avatar shylent avatar szobov avatar tonybaltovski avatar tsc21 avatar vacabun avatar vooon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mavros's Issues

Replacing Boost with Pthreads

I believe that the use of boost asio in mavros is not necessarily a good choice. The boost dependency is just adding overhead and not of any real use. Porting over mavros to pthreads would work out way better. A worker thread for the receiving component would be much easier and portable.

Also, running mavros on older versions like Linaro 12.11 would be possible as there are problems with running certain onboard nodes in Linaro 13.05 + Hydro.

Cannot compile mavros

I tried building mavros with catkin on ROS Hydro + Ubuntu 13.04 on an Odroid U3.

Catkin build fails at 86% :

[ 84%] [ 85%] [ 86%] Building CXX object mavros/CMakeFiles/mavconn.dir/src/mavconn/mavconn_interface.cpp.o
Building CXX object mavros/CMakeFiles/mavconn.dir/src/mavconn/mavconn_serial.cpp.o
Building CXX object mavros/CMakeFiles/mavconn.dir/src/mavconn/mavconn_udp.cpp.o
In file included from /home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_serial.h:25:0,
from /home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_serial.cpp:23:
/home/odroid/catkin_ws/src/mavros/include/mavros/mavconn_interface.h:77:9: error: 'set' in namespace 'std' does not name a typeIn file included from /home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_udp.h:25:0,
from /home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_udp.cpp:23:
/home/odroid/catkin_ws/src/mavros/include/mavros/mavconn_interface.h:77:9: error: 'set' in namespace 'std' does not name a type

In file included from /home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_interface.cpp:23:0:
/home/odroid/catkin_ws/src/mavros/include/mavros/mavconn_interface.h:77:9: error: 'set' in namespace 'std' does not name a type
/home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_interface.cpp:32:1: error: 'set' in namespace 'std' does not name a type
/home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_interface.cpp: In static member function 'static int mavconn::MAVConnInterface::new_channel()':
/home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_interface.cpp:47:7: error: 'allocated_channels' was not declared in this scope
/home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_interface.cpp: In static member function 'static void mavconn::MAVConnInterface::delete_channel(int)':
/home/odroid/catkin_ws/src/mavros/src/mavconn/mavconn_interface.cpp:63:2: error: 'allocated_channels' was not declared in this scope
make[2]: *** [mavros/CMakeFiles/mavconn.dir/src/mavconn/mavconn_interface.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [mavros/CMakeFiles/mavconn.dir/src/mavconn/mavconn_serial.cpp.o] Error 1
make[2]: *** [mavros/CMakeFiles/mavconn.dir/src/mavconn/mavconn_udp.cpp.o] Error 1
make[1]: *** [mavros/CMakeFiles/mavconn.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed

Release 0.6.0

I going to release 0.6.0.

Memory leak problem (#38) moved to 0.7 (because valgrind don't show useful info), but with some performance enhancements in mavconn lib (reduce allocations, removed 3-rd coping and CRC calc on TX).

PX4 waypoint and command plugins issue (#48) also moved to 0.7 (2-3 weeks before i get my clone).
You can simply remove it by rosparam /mavros/plugin_blacklist '["waypoint", "command"]'.
Sadly that PX4 have no SIL mode. Someone must check whats going wrong (i implemented WP protocol by spec and APM works fine).

Blokers:

  • #45 - at least scripts for APM (e.g. blacklist *position)
  • #33 - tests
  • #49 - tests + documentation notes

Sending commands to FCU

What would be best way we could implement sending of messages via Mavlink to a connected FCU?

I want to send the VISION_POSITION_ESTIMATE mavlink message, with data from another node.

Auto start mavlink via NSH on PX4

When a PX4/Pixhawk board is connected via USB, it automatically brings up a nsh shell and not mavlink. Basically mavros shows "connected" without checking for a Mavlink heartbeat.

You can get a MAVLink instance on /dev/ttyS0 via serial:

const char init[] = {0x0d, 0x0d, 0x0d};
link->write(init, sizeof(init));
const char* cmd = "sh /etc/init.d/rc.usb\n";
link->write(cmd, strlen(cmd));
link->write(init, 4);

Would be great if this was implemented into mavros.

Add support QGC param file

Add support QGC format to mavparam.

Currently my QGC on linux won't save params (I've got file with header only).

Memory leak on 0.5.0

I tested mavros_node for a while and found a memory leak (about 300 KiB/min).
This is strange, because i use smart pointers everywhere. But I have little experience in C++.
For current tasks of leakage is not critical, but should be corrected to the next big release.

Test environment:

  • ROS Indigo compiled from source for armhf
  • Wandboard Quad host machine
  • mavros 0.5.0 connected to APM 2.6 via USB at 57600
  • ros2ntpd 1.0.0 connected to /mavros/time_reference topic

mavros build issue

The steps followed in a BeagleBone-based board are described here.

Basically:

....
Found 123 MAVLink message types in 2 XML files
Generating C implementation in directory /root/catkin_ws/devel/include/mavlink/v1.0/pixhawk
Generating C implementation in directory /root/catkin_ws/devel/include/mavlink/v1.0/common
Copying fixed headers
Traceback (most recent call last):
  File "/root/catkin_ws/src/mavros/mavlink/pymavlink/generator/mavgen.py", line 166, in <module>
    mavgen(opts, args)
  File "/root/catkin_ws/src/mavros/mavlink/pymavlink/generator/mavgen.py", line 93, in mavgen
    mavgen_c.generate(opts.output, xml)
  File "/usr/local/lib/python2.7/dist-packages/pymavlink/generator/mavgen_c.py", line 650, in generate
    copy_fixed_headers(basename, xml_list[0])
  File "/usr/local/lib/python2.7/dist-packages/pymavlink/generator/mavgen_c.py", line 493, in copy_fixed_headers
    shutil.copy(src, dest)
  File "/usr/lib/python2.7/shutil.py", line 117, in copy
    copyfile(src, dst)
  File "/usr/lib/python2.7/shutil.py", line 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '/usr/local/lib/python2.7/dist-packages/pymavlink/generator/C/include_v1.0/pixhawk/pixhawk.pb.h'
make[2]: *** [mavros/pixhawk.xml-v1.0-stamp] Error 1
make[1]: *** [mavros/CMakeFiles/pixhawk.xml-v1.0.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed

It seems to me like i'm missing some dependencies. btw, package looking really good.

Connected to PX4 but cannot send commands, getting error: curr partner id mismatch

@vooon @mhkabir
I am connected to PX4 via USB and can receive data, but when I try to send any commands I get the following error message about id mismatch.
FCU: REJ. WP CMD: curr partner id mismatch

Commands I have tried:
rosrun mavros mavwp show -p
rosservice call /mavros/cmd/command 400 0 1.0 0.0 0.0 0.0 0.0 0.0 0.0

I have set target_system_id and target_component_id in mavros to the same in PX4 parameters MAV_SYS_ID and MAV_COMP_ID. It seems the PX4 FMU is still rejecting my commands as it thinks there is still a mismatch.

Bara on px4users was having the same issue if I recall but I didn't see the fix mentioned. Could it be to do with mavlink built with MAVLINK_DIALECT = ardupilotmega by default?

Any ideas?

Combine /imu/data and /imu/data_raw

As far as I understand:

  1. The "data" topic (from ATTITUDE_MSG) is publishing orientation and angular acceleration.
  2. The "data_raw" topic(from HIGHRES_IMU_MSG) is publishing angular and linear acceleration but no orientation.

Can we get a single topic with all 3 sets of data in one message? To get this combined message at 100Hz, I would need to stream both HIGHRES_IMU and ATTITUDE at 100Hz right?

Kabir

mavparam utility

Command line utility for load, dump, set and get FCU parameters.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.