-
Notifications
You must be signed in to change notification settings - Fork 3
Configuration:Navigation
The navigation node within the CNS Flight Stack refers to the waypoint parser, interpreter, and sequencer that forwards the next goal to the controller. We called it mission sequencer as its original design goal was to sequence multiple waypoint files (or missions) without user interaction.
A more detailed description of the mission sequencer can also be found in the module's README.
The mission sequencer is mainly configured in its own launchfile (fs_navigation.launch). There the user should set the following parameters
| launch parameter | description | default value |
|---|---|---|
threshold_position_m |
threshold for position upon which a WP is accepted | 0.3 |
threshold_yaw_rad |
threshold for yaw upon which a WP is accepted | 0.1 |
wp_max |
boundaries (max) for xyz values | [100.0,100.0,10.0] |
wp_min |
boundaries (min) for xyz values | [-100.0,-100.0, -1.0] |
boundary_reference |
reference frame for boundaries (LOCAL or GLOBAL) |
LOCAL |
wp_are_relative |
general interpretation that waypoints are relative | true |
If your setup includes an individual estimator, please make sure that your estimator publishes the following two topics
-
/$(env FS_ESTIMATOR_NODE_NAME)/odom_state_outfor the vehicle's current odometry -
/$(env FS_ESTIMATOR_NODE_NAME)/pose_state_outfor the vehicle's current pose- if only this pose topic is published make sure to set the parameter
use_odomin the launch file tofalse
- if only this pose topic is published make sure to set the parameter
FS_ESTIMATOR_NODE_NAME is a global parameter set in the global configuration.
If you cannot publish the topics under the given names, please adapt the following two parameters accordingly
| launch parameter | description | default value |
|---|---|---|
topic_pose_in |
topic name for pose subscriber | ref/pose |
topic_odom_in |
topic name for odometry subscriber | ref/odom |
use_odom |
use odometry subscriber as reference | true |
Trajectories and thus waypoints should be placed within the trajectories folder in .csv file format:
x,y,z,yaw,holdtime
0.0,0.,1.0,0.0,1.0x, y, and z refer to the position in meters, yaw to the orientation in degrees, and holdtime to the time to wait at the given waypoint in seconds.
These files are then included in the operator configuration where the path to the trajectory files needs to be included relative to the trajectories folder.
missions:
mission_1:
# [...]
filepaths: # provide the system file path
- "dh/test1.csv"
# - "dh/test1.csv"
# place path multiple times, if you want to fly the same trajectory multiple timesBy default, the Mission Sequencer gets the waypoints from the autonomy engine. However, any node can publish waypoints on the /mission_sequencer/waypoint_list topic (message definition msg/MissionWaypointArray.msg). This topic includes the same content as in the .csv file (x,y,z,yaw,holdtime) with the addition of a reference frame and list action.
For the reference frame the following can be chosen:
-
GLOBAL = 0interpret the WPs from the list in the "global" navigation frame (i.e. estimator frame) -
LOCAL = 1interpret the WPS w.r.t. to the starting pose (when the vehicle was armed), i.e., "local frame" -
CUR_POS = 2interpret each WP w.r.t. to the current position of the vehicle, i.e. offsets to the current position or previous waypoints, excluding yaw -
CUR_POSE = 3same asCUR_POSwith the addition of interpreting the yaw offset
For the action, the user has to choise to
-
CLEAR = 0clear the current list of waypoints and only use the new ones -
APPEND = 1append the new waypoints to the stored list -
INSERT = 2insert the waypoints at indexidxin the stored list (useful for obstacle avoidance)