This fixes the following case:
1. VTOL in auto mission descends to land
2. _in_landing is set to true correctly
3. _lnd_reached_ground is set to true because it's detected, motors idle.
4. The vehicle might drop for a few centimeters and _acc_z_lp goes back
up above 4m/s^2, so freefall is detected.
5. The motors spin up again, and _in_landing and _lnd_reached_ground are
both reset to false.
6. Since we're floating at a few centimeters, we can't actyally get to
_vel_z_lp > 0.5, and therefore _in_landing is never triggered after.
7. Thus we never finish the landing.
This is fixed by only resetting _lnd_reached_ground to false but
leaving _in_landing true.
Problem: The drone started taking off in LOITER (HOLD) mode even if on
ground and did not do a proper takeoff jump. The effect was mostly a
hovering close above ground or tilting/flipping because of integrator
wind-up.
Solution: Stay at minimum throttle until a takeoff setpoint is issued.
This adds the possibility to use offboard velocity control in the body
frame and not just the NED (world) frame.
The frame is set in the set_position_target_local_ned message and passed
on to mc_pos_control in the position_setpoint topic.
If velocity offboard control is used, it makes sense to lock/hold
position if the velocity input is 0. If this is not done, we will slowly
drift because nothing is integrating to keep the UAV at its position.
The stack size was generally ok but seemed to get exhausted in the case
of a waypoint which is too far away and therefore exercises some more
code in the mission feasability checker.
Generally, we should have more margin in the navigator stack size
because there are a bunch of different code paths that can happen.
The stack size was generally ok but seemed to get exhausted in the case
of a waypoint which is too far away and therefore exercises some more
code in the mission feasability checker.
Generally, we should have more margin in the navigator stack size
because there are a bunch of different code paths that can happen.
This changes the shebang of the integration test files to python2
because the scripts fail on systems with Python 3 as the default.
Even though ROS has been ported to Python 3, there are still some
dependencies not playing along.
The error that comes up when starting with Python 3 is:
> No module named 'mavexpression'
The gps driver did not give feedback if a non-existing verb was used
such as `gps foo`. Also, the goto out was ugly and the usage always
marked as an error when it's really an info. This cleans it up a bit.