Home        Store        Learn        Blog

Regarding GCS Heartbeat disarming

We’ve been having some trouble getting depth hold and arming to persist, for example we’d like the GCS heartbeat failsafe to result in enabling depth hold mode. Setting the parameter with rosservice call /param/set "param_id: 'FS_GCS_ENABLE' value: integer: 3 real: 0.0" seems to do nothing, after loss of activity we get the error message FCU: Lost manual control and thrusters are disarmed.

Would anyone happen to know how to handle this? We’ve also tried with rosrun mavparam but this didn’t make any difference either.

The expected behavior we’re trying to create is being able to have the robot default to depth hold, or at least not disarm, while we’re on/off positioning it in the water. For example, positioning, writing some code, and not having it disarm in the meantime.

Note: Ubuntu 16.04 LTS with ros kinetic onboard the ROV with a fork of the bluerov repo from 2017‑05‑15, I tried to find a version number but I couldn’t.

Hi @morten_nissov ,

The failsafe logic is located in ArduSub/failsafe.cpp and hasn’t changed much in the last 4 years.

I would check what it looks like in your fork.

Is the behavior of the failsafe described by this cpp file effected by the rosparams? The weird part for us was that it seemed not to be the case, but it seems there is more than one way to set parameters so maybe they are not equivalent.