Hi to all,
I usually use pixhawk with ardurover for my skid-steering rovers, however, at the moment, I’m building a four wheeled robot with four steering wheels, too. This means that I have a total of 8 brushless motors (4 for the traction controlled in direction and speed, 4 for the steering controlled in angle position at fixed velocity). I wrote a C++ ROS node that correctly control all the motors and it works fine.
Now, I want to use ardurover running on a pixhawk to make the rover move autonomously; the problem is that the output from the pixhawk will be the servo output (PWM) on RC1 and RC3 while my motors work over CANbus.
So, the idea is to leave the servo output floating without connecting anything and to use mavros in ROS2 to subscribe to /mavros/rc/out and read the pulses and then translate them into motors commands. I’m planning to do something like this:
Pixhawk → RC output → my ros node use mavros to read from /mavros/rc/out and translate the PWM made for translation and rotation into motor commands.
Is it a good idea or it is better to do not rely on /mavros/rc/out topic?
Thank you!