PX4 + R1 rover first observations and questions

We are testing PX4 with a 4 wheels rover. According to what I read, the rover that have been tested so far by the PX4 team with V.1.10 is the R1 rover. Our goal is to use the offboard mode to control it (thanks to the px4 team for the ongoing work on that topic).

I would like to share our first observations and get feedback from the communauty.

Once the PX4 has been connected (MAIN01 & MAIN02) to the elctronic of the rover , we use the radio to check the behavior.

When controlled by radio, we observed the following behavior:

  • throttle at 0 : the wheels are rotating (forward) slowly
  • throttle up : both wheels moving forward very fast
  • throttle down : both wheels stopped
  • throttle at 0; yaw stick left : left wheel moving forward only
  • throttle at 0, yaw stick on right : right wheel moving forward only
  • throttle down: yaw stick left : both wheels rotating forward/backward
  • throttle down: yaw stick right : both wheels rotating backward/forward

I would like to know if other people using a similar "R1 rover " setup get the same behavior? and second why the backward linear move is not working (the radio has been calibrated with QGC before) ?

The last problem I encountered is Arming. We cannot arm like we arm a drone for instance .i.e, pitch stick down and roll stick right. The only method which is working is via commander.

I will be really interested in the feedback from other people trying to use PX4 with a “R1 rover” configuration.

1 Like

Discussion regarding arming / reverse can be found in this issue

Yes thank you for the documentation.
In order to Arm the drone, you need;

  • throttle stick down
  • yaw stick right
    and we can arm - but as it is written in the documentation :slight_smile:
  • no way to disarm (beside kill switch)
  • backward motion not implemented yet

@FaboNo Is this a blocker for you?

@Jaeyoung-Lim Thank you for your concern. Actually not really for the moment - as the rover can rotate we can deal with it. The most important for us now is that the L1 controler is working with mavros. I just uploaded the master branch from qgc and I will test it these coming days.

@FaboNo This should work out of the box

@Jaeyoung-Lim Yes I am confident the controler will work :slight_smile: However I am stuck with arming right now:

ros::ServiceClient arming_client = nh_.serviceClient<mavros_msgs::CommandBool> (“mavros/cmd/arming”);

mavros_msgs::CommandBool arm_cmd;
arm_cmd.request.value = true;

if (arming_client.call(arm_cmd) && arm_cmd.response.success)
ROS_INFO(“Vehicle armed out of the loop”);

I can switch to offboard mode without any problem, but arming is not working; i.e. stay in the call. I was using an “old” version of mavros so I downloaded the last one - just to be sure - and it does not work either.

So I am wondering if the fact to switch on the “rover frame” as an impact on arming as well?

@FaboNo Could you maybe compare it to the auto-arming logic on https://github.com/Jaeyoung-Lim/mavros_controllers ? I used this code to generate offboard mode setpoints for rover - and arming works

@Jaeyoung-Lim yes we use the same code. In fact the rover is not arming because I am facing “mag inconsistencies” again and again, I mean despite multiple calibrations. Long time I did not get this one. So I have to find out the reason before moving on.

@Jaeyoung-Lim I just saw that the R1 was available in Gazebo - thank you for that - so I tried the simulation:


I successfully went through arming and offboard mode but as soon as I want to maje to move by sending
mavros/setpoint_position/local message such as:

header:
seq: 3754
stamp:
secs: 223
nsecs: 284000000
frame_id:
pose:
position:
x: 1.0
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: -0.00535036973036
w: 0.999985686669

Nothing happen - Do you know what is wrong here?