Yaw not changing during LOITER_TURNS waypoint

I’m having an issue where my quad doesn’t rotate in the yaw axis when performing a Loiter (turns) waypoint. It will go to the waypoint and hover in place (radius=0) or move in a circle without yawing. In QGroundControl I can see a blue target direction indicator circling around the compass, but the quad’s heading does not change.

When following regular waypoints the quad does yaw toward the next waypoint.

I’m using the default CIRCLE_RATE = 20deg/s.

What firmware version are you running and can you post the logs? If I remember correctly, one of the older 4.0.X versions had an issue where the aircraft would not yaw to the center while circling.

1 Like

I’m on 4.0.3, pretty recent. I’ll have a telemetry log for you tomorrow.

Post the .bin log not the telemetry log. nad Manav is right, there was a problem with this that should be fixed in current Stable.

Here the log. Quick mission taking off, doing a zero-radius double turn followed by a 5m radius, and landing. The quad didn’t yaw during the turns.

Hi @npyoung. This was definitely a problem that was reported a few months back. We fixed it in master, however, I am not sure if 4.0.3 had it. 4.0.4 has it for sure!

I just tested with 4.0.4rc. It looks like the yaw works now, but zero-radius turns don’t. If I give it radius < 1.0 it appears to use a radius of a few meters. One can use radius=1 to approximate a pure panning effect, but it would be preferable to be able to just yaw the thing in place.

Zero should do that…

Setting the CIRCLE_RADIUS to zero will cause the copter to simply stay in place and slowly rotate (useful for panorama shots).

…according to the docs. It’s also weird that anything less than 1.0 gives you what appears to be the same radius of a few meters. Seems like a bug.

Also, QGroundControl is now complaining about the new Pixhawk firmware not having a primary compass parameter. Is this intended and QGC just hasn’t updated itself for the beta firmware?

According to the docs, the parameter is in increments of 100cm - so going below that doesn’t work I think (besides 0cm). This may be why any number less than a 1m causes some issues.

I don’t know, it works in SITL as expected on Master. Set CIRCLE_RADIUS to 0 and then it will respect whatever Radius you set for Loiter Turns as Waypoint. Set it to 0 it turns in place.

On the real quad a zero radius circle definitely gives me a roughly 10m circle.

I peaked inside the .plan files and QGC is indeed setting the radius to 0 as it should. Ardupilot is doing something wrong with that 0. It really should come out in SITL too if it’s an Ardupilot problem. Can anyone else verify this behavior on a real flight?