Skip to content

Writing Waypoints

Ajay Shankar edited this page Aug 13, 2021 · 2 revisions

Quick Reference

Topic Name (publish to): /discrete_waypoint_target
Message Type: freyja_msgs::WaypointTarget
Consumer Node(s): waypoint_handler (must be launched by launch argument)
Recommended Rate: Whenever new waypoint required

Basic Structure

If writing continuous trajectories is tiresome or complex for your application, Freyja also supports sending discrete waypoints that take the form:

terminal_pn, terminal_pe, terminal_pd
terminal_vn, terminal_ve, terminal_vd
terminal_yaw

# time allocated to travel from 'here' to the target
allocated_time
# use a constant speed instead of allocated_time(see flag below)
translational_speed

# time-mode(0) or speed-mode(1)
uint8 waypoint_mode

Speed mode

Provide terminal positions, terminal yaw, translational speed and set mode=1. The waypoint handler will construct a straight-line path from the current location to the provided terminal location. The provided speed is the constant speed of this trajectory. If time is provided, it has no effect.

Time mode

Provide terminal positions (and velocities if needed), terminal yaw, allocated time and set mode=0. The waypoint handler will construct a smooth path that takes the vehicle from current location to the provided terminal location in the given amount of time. Provided speed has no effect.