Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Sep 27 14:53
    Rand0409 commented #1661
  • Sep 25 14:35
    vooon labeled #1788
  • Sep 25 10:16
    ParkYoungHoo1 edited #1788
  • Sep 25 10:16
    ParkYoungHoo1 opened #1788
  • Sep 24 22:29

    vooon on 2.3.0


  • Sep 24 22:29

    vooon on ros2

    2.3.0 (compare)

  • Sep 24 22:23

    vooon on ros2

    update changelog Signed-off-by… (compare)

  • Sep 24 22:20

    vooon on ros2

    extras: fix linter errors (compare)

  • Sep 24 20:55

    vooon on ros2

    extras: fix toMsg (compare)

  • Sep 24 20:44

    vooon on ros2

    extras: fix build (compare)

  • Sep 24 20:24
    vooon demilestoned #1772
  • Sep 24 20:24
    vooon milestoned #1772
  • Sep 24 20:24
    vooon milestoned #1588
  • Sep 24 20:24
    vooon demilestoned #1588
  • Sep 24 20:24
    vooon demilestoned #1684
  • Sep 24 20:24
    vooon milestoned #1684
  • Sep 24 20:23
    vooon demilestoned #1601
  • Sep 24 20:23
    vooon milestoned #1601
  • Sep 24 20:23
    vooon demilestoned #1695
  • Sep 24 20:23
    vooon milestoned #1695

Hi mav-people, hope you all keeping safe.
I've been playing with SITL and mavros for a little while on my virtual machine.
now i'm trying to connect a raspberrypi with a SITL (running on virtual machine). I use roslaunch with mavros to run the apm.launch file and I set the fcu_url with the correct ip (on idp) and correct port range : udp://
but this doesn't work ... I have this error :
[FATAL] [1626267950.410009640]: FCU: DeviceError:udp:bind: Cannot assign requested address

When I try with fcu_url like this : udp://:14560@
roslaunch succefully launches, but it doesn't connect to any channel, therefore I have no events coming from the master node running on the raspberry ...

can anybody provide some guidance on this ?
thank you

Jaime Machuca
Sito doesn’t open that port by dafault you would have to add the output in mavproxy
1 reply
Jaime Machuca
The udp port

Hi, @jmachuca77

it opens 14550 and 14551 on --out that's why I tested using that one (or did I miss something ?)

I couldn't connect the rasp directly with SITL, so I tried differently :

I'm running a mavros node created using the apm.launch file provided for ardupilot. ROS Master is running on a virtualbox VM (bridge mode, e.g the vm has its own ip addr in the network just like any other regular machine). It works flawlessly.

I have a code that connects a node and subscribe to topics under /mavros , like battery or other... When I run this code from the host machine, everything works smoothly.
When I run the same code from my raspberry pi (which is connected to the same network) the node is created, but I get no updates for the topics....
I followed the http://wiki.ros.org/ROS/NetworkSetup
I ran roswtf and the only thing I got is this :

WARNING The following nodes are unexpectedly connected:
 * unknown (>/rosout (/rosout) is my rasp ip addr

I've searching for days now, and I can't figure out why I can't get update for my subscribed topics even though I'm able to get them with rostopics echo etc ....

any hint or idea is much appreciated
Hi. I'm trying to use the mavros HilGPS to send HIL_GPS messages to AP. It works, but when the drone takes of, it fails because of EKF velocity variance. I think the issue is with the velocity, because HilGPS.vel is an uint16_t, which then gets multiplied by 100 in the mavros hil plugin to send it in cm/s. That means that it is not possible to send a velocity of let's say 50 cm/s using mavros HilGPS and the hil pluging. Am I misunderstanding something? Is there a workaround?
John Ericksen
I posted a question here about using setpoint_position/local and local_position/pose, and I could use some help: https://discuss.ardupilot.org/t/mavros-setpoint-position-local-acceptance/74497
Seyyed Hossein Hasanpour

Hello everyone.
I have been trying to learn more about fake GPS and how I can use/implement it in mavros for the last couple of days now, without any luck.
I want to use the generated GPS coordinates instead of the real GPS sensor. I'm currently working on an approach that uses visual cues to approximate GPS coordinate. For now, I just use static GPS coordinate in a test mavros application. I dont know how I'm supposed to publish them aside from mavros/global_position/global topic.
This is the sample app:

#include <ros/ros.h>
#include <sensor_msgs/NavSatFix.h>

int main(int argc, char **argv)
    ros::init(argc, argv, "offb_node_gps_publisher");
    ros::NodeHandle nh;
    ros::Publisher pub_global_gps = nh.advertise<sensor_msgs::NavSatFix>("mavros/global_position/global", 10);
    sensor_msgs::NavSatFix gps_target;
    //the setpoint publishing rate MUST be faster than 2Hz
    ros::Rate rate(20.0);

    int i = 0;
    while (ros::ok())
        gps_target.header.stamp = ros::Time::now();
        gps_target.header.frame_id = "map";
        gps_target.header.seq = i++;
        gps_target.position_covariance_type = gps_target.COVARIANCE_TYPE_DIAGONAL_KNOWN;
        // Sample covariance taken from fake gps. we either should use Unknown, or 
        // COVARIANCE_TYPE_APPROXIMATED and comeup with a proper covariance?
        gps_target.position_covariance = {1, 0, 0, 0, 1, 0, 0, 0, 1};
        gps_target.status.status = sensor_msgs::NavSatStatus::STATUS_FIX;
        gps_target.status.service = sensor_msgs::NavSatStatus::SERVICE_GPS;
        gps_target.latitude = 20;
        gps_target.longitude = 20;
        gps_target.altitude = 10;

    return 0;

I'm currently using gazebo for the simulation and noticed, when running gazebo, gps coordinates are being published on global_position/global topic as well(from gazebo i guess), nullifying my gpu coordinates. also I cant test everything and see whats missing and whats not.
Can anyone please tell me what I should do? is there any example for this?
Any help is greatly appreciated.

Hi all. Are there any examples of using the mavlink/to topic to send messages such as NAMED_VALUE_FLOAT to other FCU's on a group of mavlink networked UAVs from a ros node? I am not sure how to structure the payload64, build the checksum, and how or why to use mavros_msgs::mavlink::convert(). I am guessing this has been done before, I am just having a difficult time finding someone who has done it. Thank you.
Dimitris Katikaridis
Good evening. Is there any way to automatically "rotate" to next waypoint heading ?my MPC_YAW_MODE is already '4' (towards waypoint)
i need this while sending waypointlist from mavros node
José Alfredo Rosas Córdova

Hello. I am interested in trying the MAVROS version for ROS2 but before I try to install anything I just wanted to confirm that the installation instructions are the same as the ones described here:

I assume one must only change this line:
sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras

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

would that be correct?

I'm trying to send OBSTACLE_DISTANCE message through MAVROS using companion computer setup. I'm using rosservice call /mavros/cmd/command tool to send message. It is showing success true in broadcast mode but not reaching QGC. I'm connected to QGC cuz everyother command is working. What could be the possible reason?
1 reply
@JARC99 - no MAVROS doesn’t yet exist for ROS2. If you’re using px4 and want to use ROS2, you’ll have to use the direct method: https://docs.px4.io/master/en/ros/ros2.html
Hi can i check if anyone has faced the same issue as the one in ros2/ros1_bridge#334 ?
Anthony Phan

Hi All,

Can MavROS be used to send sensor information to your flight controller? For example I have an altitude sensor that is connected to the companion computer (running MAVROS) and i'd like the autopilot to use this altitude sensor

much of the information online seems to only discuss the autopilot publishing sensor data for other systems to listen to but not the opposite
Jaime Machuca
You can. For example the obstacle_sensor data is sent back to the autopilot. Thought for other sensor data you would most likely need to add your own plugin and possibly modify the autopilot code to accept the data and use it.
I'm playing around with the alpha build of MAVROS for Foxy and have things mostly working. What I'm struggling to understand, however, is how plugin parameters are being handled in the new version. In ros1 I know yaml files were used, but I'm can't follow the setup with node_declate_and_watch_parameter etc. If I wanted to set a plugin parameter like local_position/tf/enable what would be the workflow? I can't see any obvious parameters in ros2. Any advice?
1 reply
Bhaskar Bhardwaj
I’m using pixhawk 2.4.8+jetson xavier and i’m using VINS_FUSION for locatization of my drone…now please help that how i can use OFFBOARD mode and what topic i've to publish to make my drone fly and also my drone should take inputs of local position from VINS_FUSION because i'm not using GPS...
Please help…i’m done with all the things but stuck in flying part of drone…?
1 reply
Hi did anyone experience the issue of not receiving messages from multiple topics when using mavros on ros2 but works when connection to QGC or Mission Planner? more details here mavlink/mavros#1601

Hi, What's the maximum rate at which we can stream IMU data through mavros?
when I use long SET_MESSAGE_INTERVAL 27 10000 this command I can stream IMU data at 333hz at /mavros/imu/data_raw topic the problem with this, is that no matter whatever time i pass with the message I cannot control the IMU rate its always at 333hz

I have read in some posts that, if pixhawk is under load, it will reduce the stream rate, is this true?
I have read several posts but I didn't find any concrete answer to this


1 reply
Hi all,

We are a team of researchers from the University of Sannio (Italy) that is conducting research on the adoption and use of simulators for developing cyber-physical systems (CPSs). This is a non-profit research conducted as part of the European H2020 Project COSMOS “DevOps for Complex Cyber-Physical Systems” https://www.cosmos-devops.org.

We would be grateful if you could participate in the survey. It is composed of only 6 questions, and it will take no longer than 5 minutes. Participation in this survey is voluntary and confidential. No personal information is mandatory, and personal data will be treated as strictly confidential.

The goal of this survey questionnaire is to investigate how and why open-source developers adopt simulators, as well as hardware-in-the-loop, during their normal development tasks.

We will store data in compliance with the GDPR (General Data Protection Regulation). By completing this survey, you are consenting to participate in this study.

Please click on the link below to fill in the survey:

We thank you in advance for your collaboration. We will only analyze aggregated data, and individual responses will not be traced back to an individual respondent. If you have questions about the questionnaire or our research, please do not hesitate to contact us.

Fiorella Zampetti, fzampetti@unisannio.it, fiorellazampetti@gmail.com
Vittoria Nardone, vnardone@unisannio.it
Massimiliano Di Penta, dipenta@unisannio.it

Hi Everyone - has anyone managed to download an older version of mavros with mavlink from source? I'm trying to download mavros 0.25. However I'm not sure which mavlink version to specify for this and when I just use release/kinetic/mavlink/2021.3.3-1 i get errors later on using wstool . What version should mavlink be for mavros? Are there some detailed instructions to refer to/could we make them ? Thanks!
Debanik Roy
ros2 run mavros mavros_node _fcu_url:=/dev/ttyACM0:115200 error
erminate called after throwing an instance of 'rclcpp::exceptions::InvalidTopicNameError'
what(): Invalid topic name: topic name must not have a tilde '~' that is not followed by a forward slash '/':
Leonardo Garberoglio

Hi, I'm trying to get mavros/rc/override working on ardurover/pixhawk 1.
roslaunch cluster apm.launch fcu_url:=/dev/ttyAMA0:921600 tgt_system:=2 ns:=asv
(I have included name space on my package, it's the only change)
rosrun mavros mavparam -n /asv/mavros get SYSID_MYGCS
returns 2
rostopic pub /asv/mavros/rc/override mavros_msgs/OverrideRCIn "channels: [1500, 0, 1600, 0, 0, 0, 0, 0]"
rostopic echo /asv/mavros/rc/in
channels: [1508, 1508, 1512, 1514, 1080, 1073]

So, it's not overriding RC channel.
BTW: [ INFO] [1644023610.766033253]: Plugin rc_io loaded
[ INFO] [1644023610.791011352]: Plugin rc_io initialized

is that the plugin used to RC override? I have some other plugins blacklisted.

Hi, I am trying to access to ODOMETRY messages. However I noticed that during building those messages are ignored Ignoring MAVLink2 message ODOMETRY. How can I activate this message?
hello doesanyone have any nodes? i need some code for my app
Hey guys. I have a servo attached to my Pixhawk that I would like to change the PWM of through MAVROS. does anyone know of a way to do this? It seems like actuator control or OverrideRCIn may be able to work but I can't quite get them to. Any help would be much appreciated. Thanks! P.S. I am using ROS1
Hi @vooon , @SalahuddinAsh , @fnoop ; have seen you dealing with similar stuff and seem to know very well about addressing the right solutions.. I am using Px4 and Odroid as companion computer. I have connected EPM magnet (which just works like servo) I just need PWM signal 2000,1500, 1000(High,Neutral,Low) to one of the AUX1 outputs directly from my controller(code on Odroid), I could easily send PWM signal to AUX1 using RC(manually by flipping switches) but I am trying hard to figure out how to do that while automating... Please Please Please guide me on this, I am stuck with this from past 2 weeks.. I have setup Mavlink protocol using UART, I also tried doing it using(dronekit) MAV_CMD_DO_SET_SERVO and vehicle.send_mavlink(msg) but when connected with oscilloscope I don't see any change in PWM values. I would be more interested to know if I can do it directly using Mavros?
^^ yes. I have gotten the MAV_CMD_DO_SET_SERVO working. However, because it is a service, I am having issues with it hitching and not moving the servos continously. I believe this has something to do with mavros needing to verify that the service was completed. I am trying now to use OverrideRCIn but am having trouble getting it to actually output to any port. Please help if anyone can. Thanks
@maxBHarris Thanks a lot for letting me know. Can you please explain a bit on how you used MAV_CMD_DO_SET_SERVO as service? I want to try that out and check for my application if I will have similar issue!.. I did think of using OverrideRC/in and specifying a specific PWM in 'us' to the channel# in our case it would be 9(AUX1) i guess, I need to test this though..
@KBhanup the overrideRCIn technique is what I am trying right now. To get the MAV_CMD_DO_DET_SERVO to work, I just called it as a service. Here is a link to the topic name and file that it uses. http://docs.ros.org/en/api/mavros_msgs/html/srv/CommandLong.html the "command" integer is 183 for DO_SET_SERVO. Then, you should be able to specify the port channel in param 1 and the PWM in param 2. However, I found that it was quite jittery and didn't update as fast as I need
@maxBHarris Thanks! I will try that. I am also planning to go ahead with mavros/rc/override and publish PWM values only to channels 6 and 7
@KBhanup you were able to get OverrideRCIn working at all? Could you please share your code on how you were able to do that?
I can't get it to actually effect any of my channels
Also @vooon is there any way to access what the current ROI is through a lua script? I am would like to do some calculations based on what the current ROI is and was hoping there was a way to access that position much like how you can access home location. However, I haven't been able to find any way to do so. Thanks
Does anyone know how one can change the EKF origin through mavros? It is a mavlink message, but I don't know how to send a mavlink message that is not a mavros message/topic.
Also, does anyone have experience with CMD_DO_GIMBAL_MANAGER_PITCHYAW? I can't seem to find much documentation on it or its predecessor. Do you need to be in offboard mode to use it? If not, how do you properly feed it information? And how does it convert angles to gimbal control? Do you need to somehow configure it with the details of your gimbal beforehand? Any help would be great. Thanks!
Does anyone happen to know if lua scripting in ardupilot supports the IO library? If so, how would one access a file on the FCU SD card? Thanks
JD Florez
Does anyone know how to make service calls from a script/node? I'm super new to this and I'd like to automatically arm the motors at the start of my code, but I know that to be a service call.
I know that the arming call is: ros2 service call /mavros/cmd/arming mavros_msgs/srv/CommandBool value:\ true\
i met a very weird problem. i connect the cuav 5+ to the intel nuc via usb-c. i can find the port /dev/ttyACM0, but i got no data in topic /mavros/imu/data_raw when launch the px4.launch. the more interesting thing is when i use qgc connect the cuav 5+ and then disconnect it, it comes the data. who can help me with this?
John Ericksen
So, I seem to be able to run the ros2 version of mavros, but I'm getting a lot of errors during runtime:
[ERROR] [1660005613.572976536] [mavros.distance_sensor]: DS: no mapping for sensor id: 0, type: 0, orientation: 25
I'm looking for a way to disable the distance_sensor plugin, but I don't seem to be able to specify a blacklist of plugins. Is there a way to do this in ros2?
Hello all, one quick question.
What ROS/MAVROS version is compatible with apm2.8? I have raspi3B as a companion computer. Thanks.
I was wondering if anyone has successfully run MAVROS with ROS2 yet. If so, how did you do it? I am attempting to get a Pixhawk1 v2.4.7 running the latest stable Ardupilot version working with MAVROS. As of right now, I am simply testing the board itself through a USB connection and have not connected any peripherals yet. Any suggestions would be greatly appreciated. Thanks!
2 replies