Arducopter + MAVROS + GCS issues after 20190227 update

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.

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

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

Hi @heckgui,

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

Hi @heckgui,

Sorry it took so long to get back to you.

I’ve tried to follow this sequence of actions.

May I ask you to clarify whether you only use the command sudo systemctl daemon-reload on step 4?
Doesn’t you restart arducopter with sudo systemctl restart arducopter command before this step?

It seems this strange behavior occurs because you don’t reload the arducopter service and it continues to feed the data on a default port (14550). That’s why you should restart the service after the 3d step to make it work.

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.