I am trying OFFBOARD control of a rover using pixhawk set up with PX4. The Pixhawk is connected to a Jetson TX2 onboard the rover. I use the the IMU data from the Pixhawk along with wheel encoder data to perform localization which is published as a transform from the map frame to a chassis frame.
My question is, when we use the setpoint commands for OFFBOARD control, what frame id has to be published in the message? Would a missing or incorrect frame id in the message cause it not to work?
I tried different setpoint commands (position, velocity, raw) but no luck getting the rover to move. I am able to perform mode switching and arming successfully but the published setpoint commands don’t seem to have an effect.
Any help would be appreciated.
We did some offboard control in the avoidance repo: here a link to the line where the offboard position setpoint is sent, you could use that as an example: https://github.com/PX4/avoidance/blob/86de5bdda843f73593148dda05b6ff6d35fdc5b1/local_planner/src/nodes/local_planner_node.cpp#L403
So to your question: I assume every frame known to mavros should technically work (fcu, local_origin, maybe others). Of course the frame must be specified and correct. You need to send you message with a certain minimum frequency (if I remember correctly at least 2 Hz), otherwise PX4 will reject the setpoints and switch back to position control. Once your setpoint stream is sent, you should only have to switch to Offboard mode from your Groundstation and the vehicle should follow the setpoints.
Have you checked whether if offboard mode is supported in Rover?
I came across a conversation on some dev work which hinted at it being on PX4.
And coupled with a lot of forum posts about people getting it to work with ArduPilot’s GUIDED mode for a rover.
This is the reason I assumed it was supported.
Where can I find a confirmation of whether OFFBOARD is supported for the Rover platform on PX4?
Thanks for the message. You may have saved me some considerable time.
The last I remember when I tried to use PX4 with a rover that it doesn’t support OFFBOARD mode and I had to passthrough PWM commands directly and build our own position controller.
Thank you all.
I have come to the same conclusion that setpoint commands dont work on the rover frame right now. Will be using mavros/actuator_controls for OFFBOARD control