Skip to content

The freespace_planner Package#

freespace_planner_node#

freespace_planner_node is a global path planner node that plans trajectory in the space having static/dynamic obstacles.
This node is based on Hybrid A* search algorithm in astar_search package.

Note Due to the constraint of trajectory following, the output trajectory will be split to include only the single direction path. In other words, the output trajectory doesn't include both forward and backward trajectories at once.

Input topics#

Name Type Description
~input/route autoware_planning_msgs::Route route and goal pose
~input/occupancy_grid nav_msgs::OccupancyGrid costmap, for drivable areas
~input/twist geometry_msgs::TwistStamped vehicle velocity, for checking whether vehicle is stopped
~input/scenario autoware_planning_msgs::Scenario scenarios to be activated, for node activation

Output topics#

Name Type Description
~output/trajectory autoware_planning_msgs::Trajectory trajectory to be followed
is_completed bool (implemented as rosparam) whether all split trajectory are published

Output TFs#

None

How to launch#

  1. Write your remapping info in freespace_planner.launch or add args when executing roslaunch
  2. roslaunch freespace_planner freespace_planner.launch

Parameters#

Node parameters#

Parameter Type Description
update_rate double timer's update rate
waypoints_velocity double velocity in output trajectory (currently, only constant velocity is supported)
th_arrived_distance_m double threshold distance to check if vehicle has arrived at the trajectory's endpoint
th_stopped_time_sec double threshold time to check if vehicle is stopped
th_stopped_velocity_mps double threshold velocity to check if vehicle is stopped
th_course_out_distance_m double threshold distance to check if vehicle is out of course
replan_when_obstacle_found bool whether replanning when obstacle has found on the trajectory
replan_when_course_out bool whether replanning when vehicle is out of course

A* search parameters#

Parameter Type Description
use_back bool whether using backward trajectory
only_behind_solutions bool whether restricting the solutions to be behind the goal
time_limit double time limit of planning
robot_length double robot length
robot_width double robot width
robot_base2back double distance from robot's back to robot's base_link
minimum_turning_radius double minimum turning radius of robot
theta_size double the number of angle's discretization
lateral_goal_range double goal range of lateral position
longitudinal_goal_range double goal range of longitudinal position
angle_goal_range double goal range of angle
curve_weight double additional cost factor for curve actions
reverse_weight double additional cost factor for reverse actions
obstacle_threshold double threshold for regarding a certain grid as obstacle
distance_heuristic_weight double heuristic weight for estimating node's cost

Flowchart#

uml diagram