Arducopter + MAVROS + GCS issues after 20190227 update


(Guilherme Heck) #1

Hello everybody!

I’m using NAVIO2 since 2018 to control my Hexacopter. I was connect arducopter through MAVROS under UDP and then to GCS like EMLID doc/video shows (https://docs.emlid.com/navio2/common/dev/ros/#running-mavros-node). Everything worked fine until recently when I updated the OS to the 20190227 version. After that, I wasn’t able to access the arducopter through MAVROS anymore.

It is possible to connect the arducopter directly to GCS without MAVROS (setting /etc/defaults/arducopter). However, when I set to send telemetry through MAVROS like EMLID shows in specific MAVROS doc/video (https://docs.emlid.com/navio2/common/dev/ros/#running-mavros-node), the data never arrive to GCS.
When I launch MAVROS, the terminal shows the arducopter messages like everything is fine. Rostopic also works and shows all diagnostics as usual. However, GCS doesn’t receive anything.

This issue seems to appear only in arducopter.
To test, I checked with other frame modes (ardurover, for example) and the connection with GCS through MAVROS works fine. The issue is only with arducopter in the updated version.

Has someone the same issue?

Thanks in advance.


(Tatiana Andreeva) #3

Hi @heckgui,

I tried to run arducopter using mavros on our last image and it works.

Please, share the following info:

  • the content of the etc\default\arducopet file
  • ports and IP address you specified in this command: rosrun mavros mavros_node \ _fcu_url:=udp://:14650@ \ _gcs_url:=udp://:14551@192.168.1.189:14550

(Guilherme Heck) #5

Hi @tatiana.andreeva,

Sorry by my last message (deleted by me). I wrote it before deeper tests.

The GCS through MAVROS seems to work starting arducopter by “sudo systemctl start arducopter”. However, my GCS shown issues with RC. It didn’t appear in there anymore. All RC channels had PWM = 0.

So, I tried to launch the arducopter by emlidtool like I was done before (sudo emlidtool ardupilot). Without MAVROS, all worked fine (include RC). Surprisingly, MAVROS + GCS worked too!

It is important highlight that, in a fresh installation, if you (1) launch emlidtool, (2) start arducopter by emlidtool, (3) edit arducopter file to redirect to local udp port (-A udp:127.0.0.1:14650), (4) restart daemon and (5) launch ros node (rosrun), the GCS will not receive the telemetry.

However, if you (1) run the “sudo systemctl start arducopter”, (2) edit arducopter file to redirect to local udp port (-A udp:127.0.0.1:14650), (3) restart daemon, (4) launch ros node (rosrun), and THEN (5) run the emlidtool, everything works fine. I don’t know why, but works to me.

Seems to me that the emlidtool set something that isn’t work properly with MAVROS + GCS if launched first.

Follows the arducopter file content (changed # to //):

cat /etc/default/arducopter
// Default settings for ArduPilot for Linux.
// The file is sourced by systemd from arducopter.service

TELEM1="-A udp:127.0.0.1:14650"
//TELEM2="-C /dev/ttyAMA0"

// Options to pass to ArduPilot
ARDUPILOT_OPTS="$TELEM1 $TELEM2"

                      #    # ###### #      #####  
                      #    # #      #      #    # 
                      ###### #####  #      #    # 
                      #    # #      #      #####  
                      #    # #      #      #      
                      #    # ###### ###### #      

// -A is a console switch (usually this is a Wi-Fi link)

// -C is a telemetry switch
// Usually this is either /dev/ttyAMA0 - UART connector on your Navio
// or /dev/ttyUSB0 if you’re using a serial to USB convertor

// -B or -E is used to specify non default GPS

// Type “emlidtool ardupilot” for further help


(Tatiana Andreeva) #6

Hi @heckgui,

I’ll try to reproduce the behavior you described and inform you about the result.