Commit Graph
771 Commits
Author SHA1 Message Date
Daniel Agar 96e51f7c59 clang-tidy remove redundant 2017-02-01 22:15:50 -05:00
Daniel Agar e927f3e040 clang-tidy modernize-use-nullptr 2017-02-01 22:15:50 -05:00
Daniel Agar 88ad0fc3bd astyle src/modules/navigator 2017-01-29 01:18:32 +01:00
Sander Smeets ba10db06c2 Code formatting 2017-01-17 03:14:26 -08:00
Sander Smeets d0dad4ad7d Indenting 2017-01-17 03:14:26 -08:00
Sander Smeets de039ca870 VTOL back transition acceptance radius calculation 2017-01-17 03:14:26 -08:00
Andreas Antener 338804606a Fixed-wing: allow mission takeoff 2017-01-13 00:18:08 -08:00
Daniel Agar c280358e32 navigator fix code style 2017-01-07 01:03:18 -05:00
Daniel Agar 525448de93 navigator follow target add harmless float cast 2017-01-04 16:08:20 -05:00
Daniel Agar 61e48e2286 navigator comment fall through in case 2017-01-04 16:08:20 -05:00
Julian Oes a985c27ab0 navigator: reset reached flag, not reached seq
It doesn't make sense to reset the reached sequence, especially not to
false since it's an int.
2017-01-03 08:22:34 +01:00
Julian Oes a394d148a1 navigator: don't reset current waypoint
We don't want to reset the current waypoint because this means that the
ground stations see a current waypoint of 0 if the current waypoint is
not updated e.g. when we're not in mission mode.

However, it is wrong to send 0 as the current waypoint because if we
switch back to mission mode, it will actually go to the last current
waypoint and not 0.
2017-01-03 08:22:34 +01:00
Dennis Mannhart d0d6b39602 This fix is needed because of the pitch_min and time_inside union from mission_item.
Without this fix, the function "get_time_inside" from navigation.h looses its purpose
to distinguish between takeoff and other waypoints.
2016-12-29 03:08:37 +01:00
Lorenz Meier 4c8e353df7 Fix navigator build error after re-integration 2016-12-28 12:02:25 +01:00
Andreas Antener 7dcba260a7 Fix meta data for added boolean parameters 2016-12-28 11:53:19 +01:00
Simon Wilks 647fafe9bc Allow for immediate cruise speed changes at any time during a mission. 2016-12-28 11:53:19 +01:00
Andreas Antener e0fc0a847c Mission:
- weathervane on takeoff
- separate cruising speeds for VTOL in MC and FW
- cruising speed resets
- mission work item logic is more clear
- fixed double execution of certain work item states
- enable cruise speed change on the fly by command
- moved VTOL transition target position generation to mission code and set always
2016-12-28 11:53:19 +01:00
Lorenz Meier 16dfd4c6ff Navigator: Header cleanup 2016-12-27 21:00:51 +01:00
Sander Smeets 3649def02e Fix heading hold for ekf2 mission takeoff 2016-12-27 13:05:26 +01:00
Anton Matosov 3a17c07b1e Implement RC and DL failsafe action handling for multirotors
Move RC and DL failsafe actions handling from navigator to commander (credits to @AndreasAntener)
Separate manual kill switch handling via manual_lockdown to prevent override and release of software lockdown by RC switch

Other changes:
Add failsafe tune
Fix LED blinking for Pixracer
Return back support for rc inputs in simulator but now it is configurable via cmake
2016-12-27 00:38:13 +01:00
David Sidrane dc8c6ea5e5 White space fixes 2016-12-21 08:34:21 +01:00
Julian Oes 3ac056924c navigator: increase stack
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.
2016-12-15 09:05:02 +01:00
Julian Oes a096b97455 Revert "navigator: increase stack"
This reverts commit 6a6e9d02a3.
2016-12-15 09:05:02 +01:00
Julian Oes 6a6e9d02a3 navigator: increase stack
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.
2016-12-15 00:12:54 +01:00
Julian Oes 8a6af658f3 navigator: don't omit printf value
There was a mismatch between the printf arguments and what was defined
in the fmt.
2016-12-15 00:12:54 +01:00
Daniel Agar 17990cf5dc geofence fix combined simple and polygon logic
- require being inside both fences, not either
2016-12-14 08:49:13 +01:00
Julian Oes 1424994bc0 navigator: don't takeoff in loiter on ground
This fixes the following corner case:
1. Upload a mission.
2. Set mission mode.
3. Set loiter mode.
4. Arm.
At this point it will shoot up and go to the takeoff waypoint even
though we're not in mission but in loiter mode.

The fix makes sure that the triplet is reset to invalid (and idle) in
loiter mode if we're landed and disarmed.
It will lead to the vehcle sit in idle on the ground until you issue a
start mission (or takeoff) command.
2016-12-08 15:07:14 +01:00
Daniel Agar c17c8884d1 implement MAV_CMD_DO_LAND_START 2016-11-19 15:48:10 +01:00
Daniel Agar 6cdd188158 geofence max horz/vertical better messages 2016-11-19 15:16:00 +01:00
Daniel Agar c701085ed4 geofence fix code style 2016-11-19 15:16:00 +01:00
Daniel Agar 6f10f8de9a navigator begin fixing code style 2016-11-19 15:16:00 +01:00
Michal Stasiak 9180268a17 Geofence: Param update fix (#5812) 2016-11-06 14:31:59 -05:00
Daniel Agar 8ac4dd04ae implement MAV_CMD_MISSION_START 2016-11-06 15:24:34 +01:00
Michal Stasiak 2bfac7ff4f Mission feasibility: Geofence check fix
Current implementation checks against geofence only if it is in polygon form.
When it's created via params, it accepts all the waypoints as the number of vertices = 0.
Thus, changed the function to the one that is used to check whether geofence is breached in flight.
2016-11-05 11:07:23 +01:00
Daniel Agar a8369c6ac8 FW use loiter to achieve waypoint altitude
- fixes #5061
2016-11-05 10:30:36 +01:00
Sander Smeets 39cc75b4a0 Rebase of vtol_land_weathervane patch 2016-11-04 20:29:45 +01:00
Lorenz Meier 05bc9acfb7 navigator: Wrap get time inside into function call and set time inside to zero
This ensures that the dual-use of the pitch_min / time_inside field is handled
properly between takeoff and non-takeoff items. Flight tested in SITL.
2016-10-23 16:26:03 +02:00
Lorenz Meier ff0d7613b1 Add manual seed to dataman hash to allow later incrementing the seed number for incompatible changes 2016-10-23 16:26:03 +02:00
Lorenz Meier c340974991 Ensure pitch min param is correctly handled 2016-10-23 16:26:03 +02:00
Lorenz Meier eaae1abdaf Simplify use of pitch_min 2016-10-23 16:26:03 +02:00
Lorenz Meier 9821499113 navigator / mission item: Compress fields into bitfield 2016-10-23 16:26:03 +02:00
Lorenz Meier 5899ce715d Navigator: Leverage overlapping fields in logic to save RAM by makeing them overlap in memory as well 2016-10-23 16:26:03 +02:00
Julian Oes 4160b65edb navigator: change default min takeoff alt to 2.5m
Fixedwing aircraft will override this with fw.defaults anyway.
2016-10-23 16:25:15 +02:00
Julian Oes 82f27884df navigator: fix wrong altitude after takeoff
This change fixes a wrong behaviour when a takeoff command is sent.

An example:
- MIS_TAKEOFF_ALT set to 10 meters
- Takeoff command with alt setpoint of 2 meters

Old behaviour:
1. Climb to 10 meters -> takeoff WP reached
2. Go to setpoint at 2 meters

New behaviour:
1. Climb to 10 meters and stay there but notify that altitude was
   overridden.
2016-10-23 16:25:15 +02:00
Julian Oes dcd0df7d02 navigator: fix typo 2016-10-23 16:25:15 +02:00
Julian Oes 4f5fa50efb navigator: fix takeoff jump edge case
In the normal sitl `commander takeoff` case, the takeoff jump was never
actually carried out because the default altitude radius is set to 3m
and the takeoff altitude to ~2m which means that the takeoff waypoint is
"reached" immediately.

This works around this edge case by using the altitude between the home
altitude and takeoff altitude divided by 2 as a acceptance radius.
2016-10-23 16:25:15 +02:00
David Sidrane 44b5b52bcb Add suport for Memory Constrained systems 2016-10-18 00:23:58 +02:00
Julian Oes 9842e49dc6 navigator/mavlink: photos and videos at waypoints
This adds the capability to forward the commands
- MAV_CMD_VIDEO_START_CAPTURE
- MAV_CMD_VIDEO_STOP_CAPTURE
- MAV_CMD_IMAGE_START_CAPTURE
- MAV_CMD_IMAGE_STOP_CAPTURE
at waypoints which will then be sent over mavlink to component id
100 aka MAV_COMP_ID_CAMERA.
2016-10-15 12:37:06 +02:00
Beat Küng c87933d556 navigator: cleanup output messages (don't use warnx) 2016-10-11 13:10:43 +02:00
Julian Oes 7cdf9c31bf navigator: usual usleep after poll fail
We don't want to busy loop after the poll fail if that ever happened.
2016-10-11 13:05:37 +02:00