-add FlightTaskAutoMapper that handles the different types of waypoint and
generates setpoints for all types except of position and loiter
- FlightTaskAutoLine generates the setpoint types position and loiter if
the flight between waypoint is a straight line
* added ability to slew rate limit the roll angle output of the l1 controller
* FixedWingPositionControl: this avoids the steps in roll angle setpoint which occur when the controller
switches to a new waypoint
* GroundRoverPositionControl: adapted to new l1 API
The check is unnecessary. In the worst case the semaphore gets unlocked
twice, but it's not an issue because the waiter is only interested in the
first sem_post(), and the semaphore is then not used anymore.
poll() is one of the heavily used methods and thus needs to be optimized
as much as possible.
Test on Pixracer: uorb_tests latency_test
Before:
uORB note: ---------------- LATENCY TEST ------------------
INFO [uorb_tests] mean: 40.4320 us
INFO [uorb_tests] std dev: 1.3466 us
INFO [uorb_tests] min: 39 us
INFO [uorb_tests] max: 57 us
INFO [uorb_tests] missed topic updates: 0
This Patch:
uORB note: ---------------- LATENCY TEST ------------------
INFO [uorb_tests] mean: 31.3480 us
INFO [uorb_tests] std dev: 1.4584 us
INFO [uorb_tests] min: 30 us
INFO [uorb_tests] max: 45 us
INFO [uorb_tests] missed topic updates: 0
- Telemetry is only enabled on omnibus, since on Pixhawk it seems we cannot
write to the RC UART due to how the board is wired
- For the Telemetry the UART needs to be opened RW
Latest QGC daily supports sending an orbit command. This commit applies
the correct radius, rotation direction, velocity and center position.
Still missing is a check to have global position available and applying
x,y coordinates and altitude independently.
For the geo.h C library to convert between global and local frame
we need an up to date global reference which is currently inside the
vehicle_local_position message.
Switch to positive tangential velocity being clockwise because with NED
frame z-axis points down and mathematically positive around the z-axis
results in clockwise yaw rotation when seen from above. Also MAVLink
messages and other components in PX4 are defined this way.
The handling for vehicle commands inside the FlightTasks library
was already there but commented out because the previously used
MAVLink messages were tied to the specific application we used and
there was no clean common message definition. Because there is now
a well defined message for the orbit task I'm uncommenting and using
the working message handling again here.
Nice smooth altitude control is already provided by the existing
flight task for altitude mode. We inherit from it to resuse the
functionality and just all its update first not altering the setpoints
for the z-axis it produced.
Maximum velocity achievable in 4 seconds,
maximum radius achievable in 8 seconds for futher testing.
These should be parameters as soon as it works fine.