How does OverrideRCIn mavros message work?

Hey!

I am trying to control the BlueROV2 Heavy configuration (with Navigator) using mavros (ros2, humble) and more specifically using its OverrideRCIn message. I have found that this message contains 18 controllable channels, however it seems unclear what each channel actuates. So my question, does anyone know what each channel in this message represent?

I am able to actuate the lights by using this message but that was done by simply guessing a channel.

Hope there is some mavros expert out there!
Thanks!

Hi @Albin -
Welcome to the forums!
The mappings of the servo channels depend on what frame type is configured - for a heavy, 1-8 are numbered as followed:
image

Accessories can me mapped to generic servo outputs:


The camera tilt and lights are typically mapped to other channels as you’ve found. Some documentation is here, but we’re working on updating it!

Hey Tony, thanks for the fast response!

Ok so the output channels represents the pwms for each actuator? But you cannot send pwm values to those output channels right? They only display the pwm acting on each actuator?

How about the input channels? The OverrideRCIn message have 18 channels (mavros/mavros_msgs/msg/OverrideRCIn.msg at ros2 · mavlink/mavros · GitHub) corresponding to RC_CHANNELS_OVERRIDE (Messages (common) · MAVLink Developer Guide). But how does that map to the RC Input channels in the attached documentation which only say it have 11 channels? It seems that alot of the stuff in the documentation is for the Pixhawk and not the Navigator?

Hi @Albin -
That’s correct, the output channels are the PWM signals being output. Those telemetry streams are only displaying the output, correct.

Can you share at a higher level what you are trying to accomplish? If you’d like to control an ArduSub vehicle via code, pymavlink is likely the best starting point.

The documentation was originally for the pixhawk, but in most cases applies to the Navigator as well - as mentioned we’re working on a big refresh!

Thanks again for the rapid response!

Yes, I am trying to implement my own control system to the BlueROV2. I have looked into using pymavlink but as of my understanding it still boils down to understanding what the rc input channels actually maps to (the same with mavros since it is utilizing the same mavlink message, RC_CHANNELS_OVERRIDE).

Ok so it seems that if the mapping is outdated in the ArduSub documentation and my question is then, how does ArduSub use this 18 channel mavlink message and where I can find that information? If I can’t find it in the ArduSub documentation you provided, do you have any tips on where to find it? Or even drop a sneak peek of that part in the new big refresh of the documentation? :eyes:

Hi @Albin -
This documentation contains information on those messages. Is your goal to develop a python script that drives the ROV? Can you share more detail?

Understanding the channels vs. their function is detailed here - not all functions are defined past the defaults used for thrusters.