Rover not respecting requested yaw in GUIDED mode

I have a skid steer rover running a 4.0+ branch firmware with some fixes that @stephendade had made to get the EKF to initialize without GPS.

When I send a set point using a position and a yaw the rover will go to that position, but not end up with that yaw. However when I bit mask to ignore the position and just yaw in place, that does work.

The way I understood, with ArduCopter, was that the vehicle would try to attain the requested position at the yaw specified. The way ArduCopter, seemingly, accomplishes that is to yaw, then fly to the point. However, the rover of course can not yaw to the desired yaw then travel to the point. So it would need to first travel to the point, then yaw in place to get to the desired yaw. This however, does not happen.

I am unsure if I am misunderstanding how the rover is intended to work, or if this is a bug.

If the goal is that the arducopter and ardurover have essentially the same interface and a setpoint message to one or the other creates the same real world output then this would seem like a bug.

However if they are meant to handle the set points differently then I should break my pos+yaw set points into a sequence of pos then yaw commands, so that I can achieve a yaw at a given position.


@rmackay9 any thoughts?

Hi @mcelhennyi, I’m afraid Rover won’t use the yaw in this case. It just hasn’t been written to be able to get to a position at a given yaw. It’s theoretically possible with the upcoming S-curve navigation that it could do that but it doesn’t current and I suspect when S-curves goes in it also won’t immediately be able to do this.

@rmackay9 Is it possible and would it be simple to add some sort of yaw action on the back end of arriving at a position, given you are in skid steer mode?

So I can plan a path to a point, assume the rover will move directly to that point via shortest path, but that when it gets to that point it will yaw to the correct orientation?

The S-curve would be nice for a standard steered rover, but if you have a skidsteer style it would be better from a higherlevel of control PoV if it would just yaw to the commanded orientation once it got to the waypoint it wants.

Then, at least a skid steer, would look the same, as copter, from offboard control perspective in terms of messages that are required to get to a target state. So I can command to a point with a yaw, which the copter does by yawing then traveling, but rover would have to travel then yaw…but the final outcome is the vehicle is facing some yaw angle at the given point.


What you describe is certainly possible but it’s not something that I can commit to doing personally in the near term. It’s probably best to raise an issue on the issues list. Perhaps with an issue another developer will pick it up although I can’t make any promises.

1 Like

Here is my issue.