Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Go to the source code of this file.
Data Structures | |
struct | Waypoint |
Macros | |
#define | WP_FLAG_GLOBAL 0 |
#define | WP_FLAG_ENU_I 1 |
#define | WP_FLAG_ENU_F 2 |
#define | WP_FLAG_LLA_I 3 |
#define | WaypointX(_wp) waypoint_get_x(_wp) |
#define | WaypointY(_wp) waypoint_get_y(_wp) |
#define | WaypointAlt(_wp) waypoint_get_alt(_wp) |
#define | Height(_h) (_h) |
Functions | |
void | waypoints_init (void) |
initialize global and local waypoints More... | |
bool | waypoint_is_global (uint8_t wp_id) |
void | waypoint_set_global_flag (uint8_t wp_id) |
void | waypoint_clear_global_flag (uint8_t wp_id) |
float | waypoint_get_x (uint8_t wp_id) |
Get X/East coordinate of waypoint in meters. More... | |
float | waypoint_get_y (uint8_t wp_id) |
Get Y/North coordinate of waypoint in meters. More... | |
float | waypoint_get_alt (uint8_t wp_id) |
Get altitude of waypoint in meters (above reference) More... | |
float | waypoint_get_lla_alt (uint8_t wp_id) |
float | waypoint_get_lat_deg (uint8_t wp_id) |
Get latitude of waypoint in deg. More... | |
float | waypoint_get_lat_rad (uint8_t wp_id) |
Get latitude of waypoint in rad. More... | |
float | waypoint_get_lon_deg (uint8_t wp_id) |
Get longitude of waypoint in deg. More... | |
float | waypoint_get_lon_rad (uint8_t wp_id) |
Get longitude of waypoint in rad. More... | |
struct LlaCoor_i * | waypoint_get_lla (uint8_t wp_id) |
Get LLA coordinates of waypoint. More... | |
struct EnuCoor_f * | waypoint_get_enu_f (uint8_t wp_id) |
Get ENU coordinates (float) More... | |
struct EnuCoor_i * | waypoint_get_enu_i (uint8_t wp_id) |
Get ENU coordinates (integer) More... | |
void | waypoint_set_enu (uint8_t wp_id, struct EnuCoor_f *enu) |
Set local ENU waypoint coordinates. More... | |
void | waypoint_set_alt (uint8_t wp_id, float alt) |
Set altitude of waypoint in meters (above reference) More... | |
void | waypoint_set_here (uint8_t wp_id) |
set waypoint to current location and altitude More... | |
void | waypoint_set_here_2d (uint8_t wp_id) |
set waypoint to current horizontal location without modifying altitude More... | |
void | waypoint_set_enu_i (uint8_t wp_id, struct EnuCoor_i *enu) |
void | waypoint_set_xy_i (uint8_t wp_id, int32_t x, int32_t y) |
Set only local XY coordinates of waypoint without update altitude. More... | |
void | waypoint_set_alt_i (uint8_t wp_id, int32_t alt) |
void | waypoint_set_lla (uint8_t wp_id, struct LlaCoor_i *lla) |
void | waypoint_set_latlon (uint8_t wp_id, struct LlaCoor_i *lla) |
set waypoint latitude/longitude without updating altitude More... | |
void | waypoint_copy (uint8_t wp_dest, uint8_t wp_src) |
copy one waypoint to another, this includes all flags from the source waypoint More... | |
void | waypoint_position_copy (uint8_t wp_dest, uint8_t wp_src) |
void | waypoint_move_here_2d (uint8_t wp_id) |
void | waypoint_move_enu_i (uint8_t wp_id, struct EnuCoor_i *new_pos) |
void | waypoint_move_xy_i (uint8_t wp_id, int32_t x, int32_t y) |
void | waypoint_move_lla (uint8_t wp_id, struct LlaCoor_i *lla) |
void | waypoint_globalize (uint8_t wp_id) |
update global LLA coordinates from its ENU coordinates More... | |
void | waypoint_localize (uint8_t wp_id) |
update local ENU coordinates from its LLA coordinates More... | |
void | waypoints_localize_all (void) |
update local ENU coordinates of all global waypoints More... | |
Variables | |
const uint8_t | nb_waypoint |
struct Waypoint | waypoints [] |
size == nb_waypoint, waypoint 0 is a dummy waypoint More... | |
struct Waypoint |
Definition at line 42 of file waypoints.h.
Data Fields | ||
---|---|---|
struct EnuCoor_f | enu_f | |
struct EnuCoor_i | enu_i | with INT32_POS_FRAC |
uint8_t | flags | bitmask encoding valid representations and if local or global |
struct LlaCoor_i | lla |
#define Height | ( | _h | ) | (_h) |
Definition at line 61 of file waypoints.h.
#define WaypointAlt | ( | _wp | ) | waypoint_get_alt(_wp) |
Definition at line 59 of file waypoints.h.
#define WaypointX | ( | _wp | ) | waypoint_get_x(_wp) |
Definition at line 54 of file waypoints.h.
#define WaypointY | ( | _wp | ) | waypoint_get_y(_wp) |
Definition at line 55 of file waypoints.h.
#define WP_FLAG_ENU_F 2 |
Definition at line 39 of file waypoints.h.
#define WP_FLAG_ENU_I 1 |
Definition at line 38 of file waypoints.h.
#define WP_FLAG_GLOBAL 0 |
Definition at line 37 of file waypoints.h.
#define WP_FLAG_LLA_I 3 |
Definition at line 40 of file waypoints.h.
void waypoint_clear_global_flag | ( | uint8_t | wp_id | ) |
Definition at line 90 of file waypoints.c.
References nb_waypoint, waypoints, and WP_FLAG_GLOBAL.
copy one waypoint to another, this includes all flags from the source waypoint
Definition at line 413 of file waypoints.c.
References nb_waypoint, and waypoints.
Referenced by drop_zone_set().
float waypoint_get_alt | ( | uint8_t | wp_id | ) |
Get altitude of waypoint in meters (above reference)
Definition at line 113 of file waypoints.c.
References Waypoint::enu_f, nb_waypoint, waypoints, and EnuCoor_f::z.
Referenced by nav_home(), and stereocam_droplet_periodic().
Get ENU coordinates (float)
wp_id | waypoint id |
Definition at line 387 of file waypoints.c.
References Waypoint::enu_f, nb_waypoint, waypoint_is_global(), waypoint_localize(), waypoints, and WP_FLAG_ENU_F.
Referenced by follow_me_periodic(), nav_land_at_wp(), nav_survey_hybrid_setup_orientation(), nav_survey_hybrid_setup_towards(), nav_takeoff_from_wp(), NavApproaching(), NavApproachingFrom(), NavCircleWaypoint(), NavGlide(), NavGotoWaypoint(), NavSegment(), and Oval().
Get ENU coordinates (integer)
wp_id | waypoint id |
Definition at line 400 of file waypoints.c.
References Waypoint::enu_i, nb_waypoint, waypoint_is_global(), waypoint_localize(), waypoints, and WP_FLAG_ENU_I.
float waypoint_get_lat_deg | ( | uint8_t | wp_id | ) |
Get latitude of waypoint in deg.
Definition at line 129 of file waypoints.c.
References DEG_OF_EM7DEG, nb_waypoint, waypoint_globalize(), waypoint_is_global(), waypoints, and WP_FLAG_LLA_I.
Referenced by waypoint_get_lat_rad().
float waypoint_get_lat_rad | ( | uint8_t | wp_id | ) |
Get latitude of waypoint in rad.
Definition at line 142 of file waypoints.c.
References waypoint_get_lat_deg().
Get LLA coordinates of waypoint.
If the waypoint does not have its global coordinates set, the LLA representation is computed if the local origin is set.
wp_id | waypoint id |
Definition at line 374 of file waypoints.c.
References Waypoint::lla, nb_waypoint, waypoint_globalize(), waypoint_is_global(), waypoints, and WP_FLAG_LLA_I.
Referenced by mavlink_send_wp(), and put_lat_lon_home().
float waypoint_get_lla_alt | ( | uint8_t | wp_id | ) |
Definition at line 121 of file waypoints.c.
References LlaCoor_i::alt, LtpDef_i::lla, Waypoint::lla, nb_waypoint, State::ned_origin_i, state, and waypoints.
float waypoint_get_lon_deg | ( | uint8_t | wp_id | ) |
Get longitude of waypoint in deg.
Definition at line 147 of file waypoints.c.
References DEG_OF_EM7DEG, nb_waypoint, waypoint_globalize(), waypoint_is_global(), waypoints, and WP_FLAG_LLA_I.
Referenced by waypoint_get_lon_rad().
float waypoint_get_lon_rad | ( | uint8_t | wp_id | ) |
Get longitude of waypoint in rad.
Definition at line 160 of file waypoints.c.
References waypoint_get_lon_deg().
float waypoint_get_x | ( | uint8_t | wp_id | ) |
Get X/East coordinate of waypoint in meters.
Definition at line 97 of file waypoints.c.
References Waypoint::enu_f, nb_waypoint, waypoints, and EnuCoor_f::x.
Referenced by distance_to_wall(), draw_osd(), home_direction(), mission_point_of_lla(), and stereocam_droplet_periodic().
float waypoint_get_y | ( | uint8_t | wp_id | ) |
Get Y/North coordinate of waypoint in meters.
Definition at line 105 of file waypoints.c.
References Waypoint::enu_f, nb_waypoint, waypoints, and EnuCoor_f::y.
Referenced by distance_to_wall(), draw_osd(), home_direction(), mission_point_of_lla(), and stereocam_droplet_periodic().
void waypoint_globalize | ( | uint8_t | wp_id | ) |
update global LLA coordinates from its ENU coordinates
Definition at line 329 of file waypoints.c.
References ecef_of_enu_pos_i(), Waypoint::enu_i, lla_of_ecef_i(), State::ned_initialized_i, State::ned_origin_i, state, waypoints, and WP_FLAG_LLA_I.
Referenced by waypoint_get_lat_deg(), waypoint_get_lla(), waypoint_get_lon_deg(), waypoint_set_alt(), waypoint_set_alt_i(), waypoint_set_enu(), waypoint_set_enu_i(), and waypoint_set_xy_i().
bool waypoint_is_global | ( | uint8_t | wp_id | ) |
Definition at line 75 of file waypoints.c.
References nb_waypoint, waypoints, and WP_FLAG_GLOBAL.
Referenced by copilot_parse_move_wp_dl(), waypoint_get_enu_f(), waypoint_get_enu_i(), waypoint_get_lat_deg(), waypoint_get_lla(), waypoint_get_lon_deg(), waypoint_move_here_2d(), waypoint_move_lla(), waypoint_set_here(), waypoint_set_here_2d(), and waypoints_localize_all().
void waypoint_localize | ( | uint8_t | wp_id | ) |
update local ENU coordinates from its LLA coordinates
Definition at line 340 of file waypoints.c.
References ENU_FLOAT_OF_BFP, Waypoint::enu_i, enu_of_lla_point_i(), Waypoint::lla, State::ned_initialized_i, State::ned_origin_i, POS_BFP_OF_REAL, state, waypoints, WP_FLAG_ENU_F, WP_FLAG_ENU_I, EnuCoor_i::x, EnuCoor_i::y, and EnuCoor_i::z.
Referenced by waypoint_get_enu_f(), waypoint_get_enu_i(), waypoint_set_latlon(), waypoint_set_lla(), and waypoints_localize_all().
Definition at line 189 of file waypoints.c.
References DefaultChannel, DefaultDevice, nb_waypoint, waypoint_set_enu_i(), EnuCoor_i::x, EnuCoor_i::y, and EnuCoor_i::z.
Referenced by follow_wp(), and update_wp().
void waypoint_move_here_2d | ( | uint8_t | wp_id | ) |
Definition at line 310 of file waypoints.c.
References LlaCoor_i::alt, DefaultChannel, DefaultDevice, Waypoint::enu_i, LtpDef_i::hmsl, LlaCoor_i::lat, LtpDef_i::lla, Waypoint::lla, LlaCoor_i::lon, nb_waypoint, State::ned_origin_i, state, waypoint_is_global(), waypoints, EnuCoor_i::y, and EnuCoor_i::z.
Referenced by mav_exercise_periodic(), and orange_avoider_periodic().
Definition at line 253 of file waypoints.c.
References LlaCoor_i::alt, DefaultChannel, DefaultDevice, Waypoint::enu_i, LtpDef_i::hmsl, LlaCoor_i::lat, LtpDef_i::lla, LlaCoor_i::lon, nb_waypoint, State::ned_origin_i, state, waypoint_is_global(), waypoint_set_lla(), waypoints, EnuCoor_i::y, and EnuCoor_i::z.
Referenced by nav_parse_MOVE_WP().
Definition at line 214 of file waypoints.c.
References DefaultChannel, DefaultDevice, nb_waypoint, waypoint_set_xy_i(), and waypoints.
Referenced by detection_cb(), and moveWaypoint().
Definition at line 420 of file waypoints.c.
References Waypoint::enu_f, Waypoint::enu_i, LlaCoor_i::lat, Waypoint::lla, LlaCoor_i::lon, nb_waypoint, waypoints, EnuCoor_f::x, EnuCoor_i::x, EnuCoor_f::y, and EnuCoor_i::y.
void waypoint_set_alt | ( | uint8_t | wp_id, |
float | alt | ||
) |
Set altitude of waypoint in meters (above reference)
Definition at line 233 of file waypoints.c.
References LlaCoor_i::alt, Waypoint::enu_f, Waypoint::enu_i, nb_waypoint, POS_BFP_OF_REAL, waypoint_globalize(), waypoints, EnuCoor_f::z, and EnuCoor_i::z.
Referenced by follow_me(), and mavlink_common_message_handler().
Definition at line 223 of file waypoints.c.
References LlaCoor_i::alt, Waypoint::enu_f, Waypoint::enu_i, nb_waypoint, POS_FLOAT_OF_BFP, waypoint_globalize(), waypoints, EnuCoor_f::z, and EnuCoor_i::z.
Referenced by georeference_project().
Set local ENU waypoint coordinates.
Definition at line 177 of file waypoints.c.
References ENU_BFP_OF_REAL, Waypoint::enu_f, nb_waypoint, waypoint_globalize(), waypoints, WP_FLAG_ENU_F, WP_FLAG_ENU_I, and WP_FLAG_LLA_I.
Referenced by follow_me_periodic(), follow_me_set_wp(), mavlink_wp_message_handler(), nav_takeoff_from_here(), rotwing_state_set_transition_wp(), rotwing_state_update_WP_height(), stereocam_droplet_periodic(), update_waypoint(), and waypoints_init().
Definition at line 165 of file waypoints.c.
References ENU_FLOAT_OF_BFP, Waypoint::enu_i, nb_waypoint, waypoint_globalize(), waypoints, WP_FLAG_ENU_F, WP_FLAG_ENU_I, and WP_FLAG_LLA_I.
Referenced by update_wp(), waypoint_move_enu_i(), and waypoint_set_here().
void waypoint_set_global_flag | ( | uint8_t | wp_id | ) |
Definition at line 83 of file waypoints.c.
References nb_waypoint, waypoints, and WP_FLAG_GLOBAL.
Referenced by waypoints_init().
void waypoint_set_here | ( | uint8_t | wp_id | ) |
set waypoint to current location and altitude
Definition at line 285 of file waypoints.c.
References nb_waypoint, stateGetPositionEnu_i(), stateGetPositionLla_i(), waypoint_is_global(), waypoint_set_enu_i(), and waypoint_set_lla().
void waypoint_set_here_2d | ( | uint8_t | wp_id | ) |
set waypoint to current horizontal location without modifying altitude
Definition at line 298 of file waypoints.c.
References nb_waypoint, stateGetPositionEnu_i(), stateGetPositionLla_i(), waypoint_is_global(), waypoint_set_latlon(), and waypoint_set_xy_i().
Referenced by nav_takeoff_from_wp().
set waypoint latitude/longitude without updating altitude
Definition at line 273 of file waypoints.c.
References LlaCoor_i::lat, Waypoint::lla, LlaCoor_i::lon, nb_waypoint, waypoint_localize(), waypoints, and WP_FLAG_LLA_I.
Referenced by mavlink_common_message_handler(), and waypoint_set_here_2d().
Definition at line 243 of file waypoints.c.
References Waypoint::lla, nb_waypoint, waypoint_localize(), waypoints, and WP_FLAG_LLA_I.
Referenced by mavlink_wp_message_handler(), waypoint_move_lla(), waypoint_set_here(), and waypoints_init().
Set only local XY coordinates of waypoint without update altitude.
Definition at line 202 of file waypoints.c.
References Waypoint::enu_f, Waypoint::enu_i, nb_waypoint, POS_FLOAT_OF_BFP, waypoint_globalize(), waypoints, EnuCoor_f::x, EnuCoor_i::x, EnuCoor_f::y, and EnuCoor_i::y.
Referenced by georeference_filter(), georeference_project(), run_avoid_navigation_onvision(), waypoint_move_xy_i(), and waypoint_set_here_2d().
void waypoints_init | ( | void | ) |
initialize global and local waypoints
Definition at line 51 of file waypoints.c.
References DefaultPeriodic, Waypoint::flags, nb_waypoint, register_periodic_telemetry(), send_wp_moved(), waypoint_set_enu(), waypoint_set_global_flag(), waypoint_set_lla(), and waypoints.
Referenced by nav_init().
void waypoints_localize_all | ( | void | ) |
update local ENU coordinates of all global waypoints
update local ENU coordinates of all global waypoints
Definition at line 357 of file waypoints.c.
References nb_waypoint, waypoint_is_global(), and waypoint_localize().
Referenced by ins_ekf2_init(), ins_ekf2_update(), ins_ext_pose_init_from_flightplan(), nav_reset_alt(), and nav_reset_reference().
|
extern |
Definition at line 38 of file common_nav.c.
Referenced by cam_waypoint_target(), copilot_parse_move_wp_dl(), distance_to_wp(), DownlinkSendWpNr(), nav_move_waypoint(), nav_move_waypoint_enu(), nav_send_waypoint(), send_wp_moved(), waypoint_clear_global_flag(), waypoint_copy(), waypoint_get_alt(), waypoint_get_enu_f(), waypoint_get_enu_i(), waypoint_get_lat_deg(), waypoint_get_lla(), waypoint_get_lla_alt(), waypoint_get_lon_deg(), waypoint_get_x(), waypoint_get_y(), waypoint_is_global(), waypoint_move_enu_i(), waypoint_move_here_2d(), waypoint_move_lla(), waypoint_move_xy_i(), waypoint_position_copy(), waypoint_set_alt(), waypoint_set_alt_i(), waypoint_set_enu(), waypoint_set_enu_i(), waypoint_set_global_flag(), waypoint_set_here(), waypoint_set_here_2d(), waypoint_set_latlon(), waypoint_set_lla(), waypoint_set_xy_i(), waypoints_init(), and waypoints_localize_all().
|
extern |
size == nb_waypoint, waypoint 0 is a dummy waypoint
Definition at line 38 of file common_nav.c.
Referenced by cloud_sim_move(), collective_tracking_waypoint(), compute_dist2_to_home(), copilot_parse_move_wp_dl(), distance_to_wp(), distributed_circular(), DownlinkSendWp(), draw_osd(), follow_me_periodic(), follow_me_set_wp(), get_dist2_to_waypoint(), get_time_to_home(), get_two_intersects(), gvf_get_two_intersects(), gvf_nav_survey_polygon_setup(), mission_point_of_lla(), nav_compute_baseleg(), nav_compute_final_from_glide(), nav_cube_run(), nav_cube_setup(), nav_eight(), nav_flower_run(), nav_glide(), nav_home(), nav_init(), nav_land_run(), nav_line_border_run(), nav_line_osam_run(), nav_line_run(), nav_move_waypoint(), nav_move_waypoint_enu(), nav_oval(), nav_send_waypoint(), nav_skid_landing_glide(), nav_skid_landing_run(), nav_skid_landing_setup(), nav_spiral_setup(), nav_survey_poly_osam_run(), nav_survey_poly_osam_setup(), nav_survey_poly_osam_setup_towards(), nav_survey_poly_run(), nav_survey_poly_setup(), nav_survey_poly_setup_towards(), nav_survey_polygon_setup(), nav_survey_rectangle(), nav_survey_rectangle_rotorcraft_run(), nav_survey_rectangle_rotorcraft_setup(), nav_survey_zamboni_setup(), nav_update_waypoints_alt(), nav_vertical_raster_run(), NavApproaching(), NavApproachingFrom(), NavCircleWaypoint(), NavGotoWaypoint(), NavSegment(), Oval(), parachute_compute_approach(), put_lat_lon_home(), rotorcraft_cam_periodic(), rotwing_state_choose_circle_direction(), rotwing_state_set_transition_wp(), rotwing_state_update_WP_height(), send_wp_moved(), update_waypoint(), vPoint(), waypoint_clear_global_flag(), waypoint_copy(), waypoint_get_alt(), waypoint_get_enu_f(), waypoint_get_enu_i(), waypoint_get_lat_deg(), waypoint_get_lla(), waypoint_get_lla_alt(), waypoint_get_lon_deg(), waypoint_get_x(), waypoint_get_y(), waypoint_globalize(), waypoint_is_global(), waypoint_localize(), waypoint_move_here_2d(), waypoint_move_lla(), waypoint_move_xy_i(), waypoint_position_copy(), waypoint_set_alt(), waypoint_set_alt_i(), waypoint_set_enu(), waypoint_set_enu_i(), waypoint_set_global_flag(), waypoint_set_latlon(), waypoint_set_lla(), waypoint_set_xy_i(), and waypoints_init().