Commit Graph
115 Commits
Author SHA1 Message Date
Beat Küng 1f73294ad7 navigator: switch to events 2021-09-11 14:08:41 -04:00
Daniel Agar 883624d915 lib/geo: move from ecl 2021-07-15 10:38:24 -04:00
Julian Oes 518222bae4 navigator: fix home altitude feasibility check
This includes the following:
- Remove warning/throw_error flag as it is always !home_alt_valid.
- Remove impossible code path when home_alt_valid = false and
  throw_error = false.
- Add home_alt_valid check in second check before using home_alt.
- Only use warning for the second check to allow waypoints below home.
- Don't return early when only warning.
2021-05-20 10:50:54 -04:00
Julian Oes b7890529b2 navigator: reset mission feasibility warning flag
Without reseting the warning flag commander would complain about a
warning but still allow arming and flying the mission which was weird.
2021-05-20 10:50:54 -04:00
Daniel AgarandSander Smeets b20949e664 mission feasibility: Fix first wp too far message overflow
Co-authored-by: Sander Smeets <sander@droneslab.com>
2021-03-15 12:40:52 -04:00
Julian Oes e6b1775bb6 vmount/navigator/mavlink: gimbal v2 changes
This is a collection of commits all having to do with changes in the
Mavlink gimbal v2 protocol as described in:
https://mavlink.io/en/services/gimbal_v2.html
2021-02-17 13:54:34 -05:00
Igor Campos c316af6ec7 update to match new feature as a new mavlink command Oblique Survey 260 2020-12-09 17:54:53 +01:00
Julian Oes 793eb82153 navigator: allow mission items with same position
This reverts the addition of a check against mission items that have the
same position. This breaks existing MAVSDK implementations where a
LOITER_TIME item is set right after a WAYPOINT with the same
coordinates. It is an interim hack to allow the vehicle to hold still
during a photo is captured.

This leaves the check in place for gates where we need to be able to
calculate the direction between gate and waypoint.
2020-05-19 08:51:21 +02:00
David Jablonski 536cd6cb1a allow DO_CONTROL_VIDEO in missions 2020-03-30 17:10:36 +02:00
David Jablonski 6bd191a24e Mavlink: Implemented SET_CAMERA_ZOOM 2020-03-30 17:10:36 +02:00
Lorenz Meier 35ed5607b4 Mission feasibility checker: Prevent zero-length trajectories
The mission logic depends in a number of locations on being able to calculate the direction from one waypoint to another. Missions that have waypoints that are in the same physical location do not make sense and need to be rejected (the GCS / SDK generating them needs to be fixed). By enforcing this we can work with a reasonable and simpler state machine while executing the mission.
2020-03-14 17:50:40 +01:00
Lorenz Meier f1f185d209 Mission feasibility checker: Handle mission with zero elements silently
A mission with zero elements is invalid but should not lead to a warning. Previously a fixed wing aircraft without a mission did emit warnings about a missing land item.
2020-03-14 17:50:40 +01:00
Lorenz Meier b405c7e9bd Navigator: Add ability to wait for a position gate with executing the mission
This enables the navigator to wait for a specific gate coordinate to pass orthogonally to the current trajectory. This is particularly helpful for payload / camera handling in missions and avoids a dependency of payload handling on navigation waypoints.
2020-03-14 17:50:40 +01:00
Silvan Fuhrer 8de675ec88 mission feasibilty check: fix for VTOL backtransition and land waypoint
Prior this fix VTOL missions get rejected if they have a DO_LAND_START marker, but then do
not end with a LAND waypoint but a VTOL transition and land.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2020-01-28 10:13:41 -05:00
Silvan Fuhrer e6b18fe2da mission feasibility checker: move checks for VTOL landing into separate function
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2019-12-23 21:47:16 +01:00
Julian Oes 3a37d0b560 navigator: improve if structure for vtol/mc/fw 2019-12-23 21:47:16 +01:00
Julian Oes f9aa12eaa9 navigator: don't allow Land together with RTL item
This is a check to protect a user from upload a mission which includes a
land_start marker as well as a RTL mission item.

This works around the problem that we experienced where the navigator
would switch to mission mode on RTL and start with land_start, and then
continue to the RTL item. At this point, navigator would send the
vehicle_command for RTL to commander which would deny it because it is
already in RTL mode. Thus navigator won't (re)set any items to actually
do RTL and it means the vehicle will just head to whatever setpoint it
received last.
2019-12-23 21:47:16 +01:00
Julian Oes f8c10b706a navigator: check fixedwing mission for VTOL
A VTOL mission can also contain a fixedwing landing. Therefore, I think,
it makes sense to run the fixedwing checks as well, however, don't check
for a landing start necessarily.
2019-12-23 21:47:16 +01:00
Daniel Agar 967446af4c clang-tidy: enable readability-simplify-boolean-expr and fix 2019-10-27 19:19:07 -04:00
Timothy Scott a134da6e12 Removed is_rotor_wing, replaced with vehicle_type 2019-06-13 10:04:26 +02:00
Daniel Agar 2c63e335e9 uORB::Subscription subscribe directly to uORB device node object 2019-06-03 17:06:21 -04:00
TSC21 12d29fd093 navigator: mission_feasibility_checker: remove lazy comparison 2019-02-27 13:25:47 +01:00
TSC21 c9c86ae2ff navigator: mission feasibility checker: minor cleanup 2019-02-27 13:25:47 +01:00
TSC21 9fa7f341e4 mission_feasibility_checker: takeoff: fix init of mission item 2019-02-27 13:25:47 +01:00
TSC21 8bf9ec32dc mission_feasibility_checker: takeoff: add a different log message when there's a takeoff item but it's not the first waypoint 2019-02-27 13:25:47 +01:00
TSC21 468a002355 mission_feasibility_checker: takeoff: minor spelling mistakes fixing 2019-02-27 13:25:47 +01:00
TSC21 f6ab40d2dd mission_feasibility_checker: takeoff: fix logic to return as valid 2019-02-27 13:25:47 +01:00
TSC21 676e1eb224 mission_feasibility_checker: takeoff: accept mission when takeoff is not the first item but the previous items are not waypoints 2019-02-27 13:25:47 +01:00
TSC21 6bb84af1db mission_feasibility_checker: takeoff: change warning message 2019-02-27 13:25:47 +01:00
TSC21 5b151a5df7 navigator: mission feasibility checker: check for a takeoff waypoint on mission on specific conditions 2019-02-27 13:25:47 +01:00
Todd Colten 4c21163c78 re-word landing required msg for understandability
changed: "Mission rejected: land start required."
to: "Mission rejected: landing pattern required."

This new message is more clear to the average user.  When using RTL_TYPE = 1, mission feasibility checker adds the requirement of a landing sequence beginning with a MAV_CMD_DO_LAND_START and ending with a MAV_CMD_NAV_LAND with at least 1 other waypoint prior to the land waypoint.  The warning message "Mission rejected: land start required." is a common warning to trigger whenever the mission is blank or the mission is uploaded without a landing pattern.  The wording in this message confusing to the average user as they usually do not know the inner workings of the "landing pattern" that their planning software helps them make (e.g. Qgroundcontrol).  The only users who would know what a "Do_Land_Start" mission item is are advanced users already and this new message should work equally well for them as well as the non-advanced user.
2019-02-18 09:38:59 -05:00
Mara Bos 10c20b38ad Fix many format strings.
Fixes these invalid format strings:
- A `%d` for a pointer (replaced it by `%p`)
- A 0x%08x (and a 0x%0x8!) for a pointer (replaced by %p)
- 2 cases of `%d` for a `ssize_t` (replaced it by `%zi`)
- 1 case of a %u for an `int` (replaced by %i)
- 3 cases of %d for a `long` (replaced by %ld)
- 19 cases of `%d`, `%i`, `%u` or `%lu` for a `size_t` (replaced it by `%zu`)
- An unused formatting argument (removed it)
- A missing `%d` (added it)
- A missing `%s` (added it)
- 2 cases of `%llu` for a `uint64_t` (replaced it by `"%" PRIu64`)
- 6 cases of giving a string directly as format string (replaced it by `("%s", string)`)
- 2 cases of %*-s, which should probably have been %-*s.
  (Looks like NuttX accepts (the invalid) %*-s, but other platforms don't.)
- A %04x for a `uint32_t` (replaced by "%04" PRIx32)
2018-10-27 12:44:51 +02:00
Daniel Agar a6dabbbae7 Landing slope move to standalone library
- this is shared by both the FW position controller and navigator's
   missiong feasibility checker
2018-08-31 14:43:51 -04:00
Daniel Agar 5207c420c3 generic position controller status/feedback message 2018-08-31 14:43:51 -04:00
Daniel Agar cf74166801 double promotion warning fix or ignore per module 2018-07-01 09:36:55 +00:00
Thomas Stastny 8551d2eb9d mission feasibility: add small tolerance to fw landing slope alt 2018-06-29 12:10:53 +00:00
Daniel Agar aa270fcd89 Mission feasibility: remove 2/3rds distance warnings that don't reject a mission (#9743) 2018-06-23 10:39:23 -04:00
Daniel Agar 29b3950747 move geo and geo_lookup to PX4/ecl 2018-03-26 23:16:55 -04:00
Julian Oes cc36c8ee37 mission: warn at 2/3 of the max distance
This was wrong, instead of warning at 2/3 of the max distance as
mentioned in the comment, we would start to warn at 3/2 of the distance
which would then never actually happen.
2018-02-12 17:36:54 -05:00
DonLakeFlyer 342509b3ab New ROI commands implementation 2018-01-25 15:27:55 +01:00
Daniel Agar 916d6a15fd Mission merge offboard + onboard and simplify 2018-01-14 12:53:53 +01:00
Daniel Agar 956935141e Navigator simplify mission 2018-01-14 12:53:53 +01:00
Daniel Agar 7dab5d4380 mission feasibility full home position isn't always needed 2017-12-21 15:28:45 +08:00
Daniel Agar 58d1cdc733 Allow MAV_CMD_DO_SET_HOME as a mission command 2017-12-20 10:19:07 +01:00
Finwood ba11e0dc44 use tabs for indentation 2017-10-22 22:05:56 +02:00
Lasse e2a359143d use altitude acceptance radius for MC takeoff check
When checking a mission, the takeoff altitude is being checked
against the waypoint acceptance radius to ensure the MAV being
clear from ground before heading to the next waypoint.
However, until now the _horizontal_ acceptance radius was being
used, instead of the altitude reference value.

Targets PX4/Firmware/#7379
2017-10-22 22:05:56 +02:00
Julian Oes 787931f04f navigator: check distances between waypoints
Instead of just checking whether the first waypoint is too far away from
home it makes sense to also check between waypoints.
This can prevent
- flyaways due to user errors, or
- catch the corner case where a takeoff waypoint is added to a mission
  and therefore the first waypoint is not too far away, however, the
  subsequent waypoints are still too far away.
2017-10-18 08:42:20 +02:00
Daniel Agar 352d65a14a navigator delete unused attitude setpoint (#8028) 2017-09-29 11:51:00 -04:00
Daniel Agar 3c18be387c ROI - move handling to navigator (#7939) 2017-09-26 12:25:02 -04:00
Beat Küng c4cdaa48e0 dataman, mission_feasibility_checker: remove unneeded uorb includes 2017-08-04 18:08:51 +02:00