Commit Graph
425 Commits
Author SHA1 Message Date
Low Orbit Ion Cannon 7dd949edb1 ADSB traffic avoidance improvements using UTM_GLOBAL_POSITION (#13159)
* Treat UAVS diffrently from manned aviation 
 * Added fake_traffic testing functionality,
 * Added NAV_TRAFF_AVOID Hold and Landmode
 * Added Behavior: HOLD Position to collision avoidance mode and implemented Landmode to collision avoidance.

Boards where no Hardware GUID is defined will send 0 as GUID.

Right now collision avoidance for more than one FMU without Hardware GUID is not possible.
We should consider adding a randomly generated HW GUID as a placeholder for legacy Boards
2020-01-17 14:58:28 -05:00
qlliu 54e4b65daa free allocated variable by perf_alloc 2020-01-11 11:12:18 +01:00
RomanBapst 4c35b3aadc navigator: do not use fixed wing acceptance readius if in rotary wing mode
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2019-12-24 12:52:10 -05:00
bazooka joe eac7b43f3e Remove rescaling Lat and Lon on VEHICLE_CMD
relevant to VEHICLE_CMD_DO_REPOSITION and VEHICLE_CMD_NAV_TAKEOFF
its done on mavlink_receiver already
2019-12-18 09:48:30 +01:00
Julian Oes cbea76f62a navigator: fix triplet resetting/publication logic (#13534)
The navigator has a notion of resetting the triplets which means the
triplet setpoints are set to invalid and therefore not to be used by
downstream modules such as flight tasks.

However, before this patch, the triplets were not published if invalid
meaning that a valid triplet would stay the truth until a new valid
triplet would get published.

E.g. this lead to the corner case case where we publish a valid triplet
with an IDLE setpoint on ground in HOLD and then don't update the
triplet while flying in POSCTL mode. Later, when RTL is engaged, the
flight task will use IDLE until navigator (which runs slower) has
published the next triplet.

The fix involves two main changes:
- Publish invalid triplets to avoid stale triplets.
- Avoid publishing the triplet on every iteration in manual modes by not
  setting `_pos_sp_triplet_published_invalid_once = false`.

When testing this I realized that a mission upload during RTL would stop
RTL. This is because the mission is updated while the mission navigation
mode is not active and reset_triplets() is called from there. This is
now only done for the case where we are actually in mission navigation
mode. The fact that a mission is updated when not active also seems
wrong and is something to fix another time.
2019-11-23 10:29:41 -05:00
Daniel Agar 3f05a7724d navigator: run immediately on vehicle_status updates
- this allows navigator to process any nav_state changes as soon as possible
2019-11-20 12:40:55 -05:00
Daniel Agar 515e896cde navigator: set position setpoint timestamp 2019-11-19 10:24:52 -05:00
Beat Küng 3198610f85 src/platforms: move all headers to platforms/common/include/px4_platform_common
and remove the px4_ prefix, except for px4_config.h.

command to update includes:
for k in app.h atomic.h cli.h console_buffer.h defines.h getopt.h i2c.h init.h log.h micro_hal.h module.h module_params.h param.h param_macros.h posix.h sem.h sem.hpp shmem.h shutdown.h tasks.h time.h workqueue.h; do for i in $(grep -rl 'include <px4_'$k src platforms boards); do sed -i 's/#include <px4_'$k'/#include <px4_platform_common\/'$k/ $i; done; done
for in $(grep -rl 'include <px4_config.h' src platforms boards); do sed -i 's/#include <px4_config.h/#include <px4_platform_common\/px4_config.h'/ $i; done

Transitional headers for submodules are added (px4_{defines,log,time}.h)
2019-10-30 11:48:47 +01:00
Silvan Fuhrer 0ce9329803 Safe Landing Points: Added new RTL_TYPE: closest between home, mission landing and safe points
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

Co-authored by Martina Rivizzigno <martina@rivizzigno.it>
2019-10-28 09:54:59 +01:00
Julian Oes de90543d6f FlightTasks: add Descend task to land without GPS
This adds a flight task to catch the case where we want to do an
emergency descent without GPS but only a baro.

Previously, this would lead to the navigator land class being called
without position estimates which then made the flight tasks fail and
react with a flight task failsafe. This however meant that landed was
never detected and a couple of confusing error messages.

This applies if NAV_RCL_ACT is set to 3 "land".
2019-10-18 16:18:19 +02:00
Daniel Agar c8e59c4e39 parameter_update use uORB::Subscription consistently 2019-09-29 10:49:03 -04:00
Daniel Agar e69398c09f introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
Timothy Scott 2ed00c9cb6 Rover: Rewrote gnd_pos_control and removed gnd_att_control (#12239) 2019-07-11 09:39:13 -04:00
Daniel Agar 4b778fd0c2 navigator: fix vehicle_status update (#12364) 2019-06-28 21:35:29 -04:00
Timothy Scott a134da6e12 Removed is_rotor_wing, replaced with vehicle_type 2019-06-13 10:04:26 +02:00
Daniel Agar 79d4c09d59 uORB::Publication simplify and cleanup
- base class is now template
 - drop linked list
 - virtualization no longer required
2019-06-12 08:48:19 -04:00
Daniel Agar 933dd1357e navigator move print_usage() to bottom of file 2019-06-08 03:23:50 -07:00
Daniel Agar e4ad994763 navigator move to new uORB::Subscription 2019-06-05 20:28:44 -04:00
bresch f3990c84fc Parameter update - Rename variables in modules/navigator
using parameter_update.py script
2019-04-03 15:38:50 +02:00
Alessandro Simovic 168f1a5d51 navigator: offboard_mission -> mission 2019-02-21 09:20:06 -05:00
Daniel Agar 26185f7c07 navigator orb subscribe/unsubscribe in constructor/destructor 2019-02-06 18:59:11 -05:00
Daniel Agar 60f2a92e3d replace <cfloat> with <float.h>
- <cfloat> isn't available in the NuttX c++ library
2019-01-06 19:20:57 -05:00
Julian Oes 5b9dea5604 Replacing usleep with px4_usleep
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
Jake Dahl 21bcc0d2f4 mav_cmd_do_reposition now obeys the ground speed argument 2018-12-07 21:40:16 -05:00
Beat Küng 86673ecfcb navigator: remove dependency on vtol module by using the C param API
This is the quickest way to achieve the desired result.
Long-term we might do something else.
2018-10-26 08:02:42 +02:00
Beat Küng b65871b433 fix reposition: set acceptance radius
Previously the acceptance radius was 0, so the FlightTaskAutoLine was
randomly changing yaw and sometimes going into a random direction.
There is still something else wrong in there, but avoids the reposition
problem.
2018-10-25 17:05:27 +02:00
Martina b220e74219 navigator_main: add comment to explain yaw_acceptance usage 2018-09-24 11:23:01 +02:00
Martina 5b8ae9fb29 rename position_controller_status field from altitude_acceptance_radius
to altitude_acceptance
2018-09-24 11:23:01 +02:00
Martina fffb479edf navigator_main: use the altitude acceptance radius from the pos control if
it is greater than the one in the mission item
2018-09-24 11:23:01 +02:00
Martina 7031bb5a6d navigator: add yaw_acceptance getter to incorporate feedback from position
controller. The yaw acceptance is defined by the mission item. If the pos
control sets it to NAN, then the yaw at a waypoint is ignored.
2018-09-24 11:23:01 +02:00
Roman Bapst 8158cdfcf4 navigator: set yaw_valid flag in reposition triplet (#10294)
- yaw_valid flag was always left at false which made the position controller reject the yaw setpoint of the reposition command
2018-09-16 19:29:38 -04:00
Daniel Agar 5207c420c3 generic position controller status/feedback message 2018-08-31 14:43:51 -04:00
Philipp Oettershagen 334aa57a5f Fixed-wing autoland: Remove the dynamic altitude acceptance calculation and just use a simple separate landing altitude acceptance radius instead. This gives users that do not use LOITER-TO-ALT waypoints more control over their landing procedure 2018-08-24 10:13:07 -04:00
Philipp Oettershagen 20c02ae093 Fixed-wing autoland: Adapt according to @dagar's and @antiheavy's comments. 2018-08-24 10:13:07 -04:00
TSC21 ca42483794 update msgs fields from camelCase to snake_case so rosidl_generate_interfaces() is able to generate code for ROS IDL files 2018-07-30 21:40:28 +02:00
Daniel Agar cf74166801 double promotion warning fix or ignore per module 2018-07-01 09:36:55 +00:00
Daniel Agar d73d20bcce systemlib delete unused systemlib.h 2018-06-12 09:06:30 +02:00
Florian Achermann 84578748f4 Navigator Mission RTL (#8749)
* Add return to land to mission

This method uses the planned mission for rtl. If a landing sequence
is present it will continue the mission and land. If not it will
fly back the mission and loiter/land at the home position.
2018-05-27 12:07:06 -04:00
Beat Küng 258b1ea473 navigator: ensure result of strncpy is null-terminated 2018-05-09 07:59:46 +02:00
Daniel Agar 3b5b12e1d1 move baro and magnetometer data out of sensor_combined 2018-04-11 23:26:58 -04:00
Daniel Agar 29b3950747 move geo and geo_lookup to PX4/ecl 2018-03-26 23:16:55 -04:00
Beat Küng a0372c6183 vmount: implement VEHICLE_CMD_DO_SET_ROI_WPNEXT_OFFSET 2018-03-19 09:42:41 +01:00
Beat Küng aaa67632ca navigator: remove redundant switch block for ROI handling 2018-03-19 09:42:41 +01:00
Beat Küng e0af2912a1 navigator: avoid use of a static variable last_geofence_check 2018-03-13 17:35:15 +01:00
Beat Küng 320bdc6482 navigator: refactor to use ModuleBase class 2018-03-13 17:35:15 +01:00
Beat Küng f2dddc65a5 navigator: use new Param class 2018-03-13 17:35:15 +01:00
Julian Oes 9c6b1a0f04 navigator: fix incorrect takeoff altitude
This fixes a problem where we do not properly go to the set takeoff
altitude but end up lower.

The problem was that the setpoint triplet is reset when the navigation
mode changes. So in this case, the triplet is reset when we switch from
takeoff to loiter which can happen before reaching the actual takeoff
altitude.

The fix is an ugly hack to prevent the reset in the case of takeoff to
loiter. A better solution would be to remove the general reset and have
all navigation modes do the proper resets themselves.

This hotfix should however be lower risk.
2018-03-07 08:48:44 +01:00
Sander Smeets 2ef9c4ec35 VTOL force land even when transitioning to FW (#8958) 2018-03-01 16:51:50 -05:00
Vasily Evseenko 135162522a Don't use ADSB messages with undefined fields in navigator (#8900)
Don't use ADSB messages with undefined fields in navigator
2018-02-18 11:08:40 +01:00
DonLakeFlyer 342509b3ab New ROI commands implementation 2018-01-25 15:27:55 +01:00