Download

teb_local_planner

Description

Implements an online optimal local trajectory planner for navigation and control of mobile robots as a plugin for the ROS navigation package.

Examples

...

Input List

There are 0 parameters.

Port NameMessage typeCallback

Output List

There are 1 parameters.

Port Name

Message type

plugin

Plugin [movai_msgs-ROS1/PluginClient][movai_msgs-ROS1/PluginClient]

Parameter List

There are 78 parameters.

Parameter

Description

acc_lim_theta

Maximum angular acceleration of the robot in (radi/s^2)

acc_lim_x

Maximum translational acceleration of the robot (m/s^2)

acc_lim_y

Maximum strafing acceleration of the robot

allow_init_with_backwards_motion

If true, underlying trajectories might be initialized with backwards motions in case the goal is behind the start within the local costmap (this is only recommended if the robot is equipped with rear sensors).

cmd_angle_instead_rotvel

Substitute the rotational velocity in the commanded velocity message by the corresponding steering angle [-pi/2,pi/2].

costmap_converter_plugin

Define plugin name in order to convert costmap cells to points/lines/polygons. Set an empty string to disable the conversion such that all cells are treated as point-obstacles.

costmap_converter_rate

Rate that defines how often the costmap_converter plugin processes the current costmap (the value should not be much higher than the costmap update rate) [Hz].

costmap_converter_spin_thread

If set to true, the costmap converter invokes its callback queue in a different thread.

costmap_obstacles_behind_robot_dist

Limit the occupied local costmap obstacles taken into account for planning behind the robot [m].

dt_hysteresis

Hysteresis for automatic resizing depending on the current temporal resolution, usually approx. 10% of dt_ref is recommended

dt_ref

Desired temporal resolution of the trajectory (the trajectory is not fixed to dt_ref since the temporal resolution is part of the optimization, but the trajectory will be resized between iterations if dt_ref +-dt_hysteresis is violated.

enable_homotopy_class_planning

Activate parallel planning in distinctive topologies (requires much more CPU resources, since multiple trajectories are optimized at once)

enable_multithreading

Activate multiple threading in order to plan each trajectory in a different thread

exact_arc_length

If true, the planner uses the exact arc length in velocity, acceleration and turning rate computations (-> increased cpu time), otherwise the Euclidean approximation is used.

feasibility_check_no_poses

Specify up to which pose on the predicted plan the feasibility should be checked each sampling interval.

footprint_model

type: Specify the robot footprint model type used for optimization. Different types are "point", "circular", "line", "two_circles" and "polygon." The type of the model significantly influences the required computation time.
radius: This parameter is only relevant for type "circular". It contains the radius of the circle. The center of the circle is located at the robot's axis of rotation.

force_reinit_new_goal_dist

Reinitialize the trajectory if a previous goal is updated with a separation of more than the specified value in meters (skip hot-starting)

free_goal_vel

Remove the goal velocity constraint such that the robot can arrive at the goal with maximum speed

global_plan_overwrite_orientation

Overwrite orientation of local subgoals provided by the global planner (since they often provide only a 2D path)

global_plan_viapoint_sep

If positive, via-points are extrected from the global plan (path-following mode). The value determines the resolution of the reference path (min. separation [m] between each two consecutive via-points along the global plan, if negative: disabled). Refer to parameter weight_viapoint for adjusting the intensity.

h_signature_prescaler

Scale internal parameter (H-signature) that is used to distinguish between homotopy classes. Warning: reduce this parameter only, if you observe problems with too many obstacles in the local cost map, do not choose it extremly low, otherwise obstacles cannot be distinguished from each other (0.2<value<=1).

h_signature_threshold

Two H-signatures are assumed to be equal, if both the difference of real parts and complex parts are below the specified threshold.

include_costmap_obstacles

Specify if obstacles of the local costmap should be taken into account. Each cell that is marked as obstacle is considered as a point-obstacle. Therefore do not choose a very small resolution of the costmap since it increases computation time. In future releases this circumstance is going to be addressed as well as providing an additional api for dynamic obstacles.

include_dynamic_obstacles

If this parameter is set to true, the motion of obstacles with non-zero velocity (provided via user-supplied obstacles on topic ~/obstacles or obtained from the costmap_converter) is predicted and considered during optimization via a constant velocity model. New

inflation_dist

Buffer zone around obstacles with non-zero penalty costs [m] (should be larger than min_obstacle_dist in order to take effect). Also refer to the weight weight_inflation.

is_footprint_dynamic

If true, updates the footprint before checking trajectory feasibility

legacy_obstacle_association

The strategy of connecting trajectory poses with obstacles for optimization has been modified (see changelog). You can switch to the old/previous strategy by setting this parameter to true. Old strategy: for each obstacle, find the nearest TEB pose; new strategy: for each teb pose, find only "relevant" obstacles.

map_frame

Global planning frame (in case of a static map, this parameter must be usually changed to "/map".

max_global_plan_lookahead_dist

Specify the maximum length [m] (cumulative Euclidean distances) of the subset of the global plan taken into account for optimization. The actual length is than determined by the logical conjunction of the local costmap size and this maximum bound. Set to zero or negative in order to deactivate this limitation.

max_number_classes

Specify the maximum number of distinctive trajectories taken into account (limits computational effort)

max_vel_theta

Maximum angular velocity of the robot in (rad/s)

max_vel_x

Maximum translational velocity of the robot [m/s]

max_vel_x_backwards

Maximum absolute translational velocity of the robot while driving backwards [m/s]. See optimization parameter weight_kinematics_forward_drive

max_vel_y

Maximum strafing velocity of the robot (should be zero for non-holonomic robots!)

min_obstacle_dist

Minimum desired separation from obstacles in meters

min_samples

Minimum number of samples (should be always greater than 2)

min_turning_radius

Minimum turning radius [m] of a carlike robot (set to zero for a diff-drive robot).

no_inner_iterations

Number of actual solver iterations called in each outerloop iteration. See param no_outer_iterations.

no_outer_iterations

Each outerloop iteration automatically resizes the trajectory according to the desired temporal resolution dt_ref and invokes the internal optimizer (that performs no_inner_iterations). The total number of solver iterations in each planning cycle is therefore the product of both values.

obstacle_association_cutoff_factor

See obstacle_association_force_inclusion_factor, but beyond a multiple of [value]*min_obstacle_dist all obstacles are ignored during optimization. Parameter obstacle_association_force_inclusion_factor is processed first. [This parameter is used only if parameter legacy_obstacle_association is false][This parameter is used only if parameter legacy_obstacle_association is false]

obstacle_association_force_inclusion_factor

The non-legacy obstacle association strategy tries to connect only relevant obstacles with the discretized trajectory during optimization. But all obstacles within a specifed distance are forced to be included (as a multiple of min_obstacle_dist). E.g. choose 2.0 in order toenforce the consideration obstacles within a radius of 2.0*min_obstacle_dist. [This parameter is used only if parameter legacy_obstacle_association is false][This parameter is used only if parameter legacy_obstacle_association is false]

obstacle_heading_threshold

Specify the value of the scalar product between obstacle heading and goal heading in order to take them (obstacles) into account for exploration.

obstacle_poses_affected

Each obstacle position is attached to the closest pose on the trajectory in order to keep a distance. Additional neighbors can be taken into account as well. Note, this parameter might be removed in future versions, since the the obstacle association strategy has been modified in kinetic+. Refer to the parameter description of legacy_obstacle_association.

odom_topic

Topic name of the odometry message, provided by the robot driver or simulator.

optimization_activate

Activate the optimization.

optimization_verbose

Print verbose information.

oscillation_recovery

Try to detect and resolve oscillations between multiple solutions in the same equivalence class (robot frequently switches between left/right/forward/backwards)

penalty_epsilon

Add a small safety margin to penalty functions for hard-constraint approximations

publish_feedback

Publish planner feedback containing the full trajectory and a list of active obstacles (should be enabled only for evaluation or debugging). See list of publishers above.

roadmap_graph_area_width

Random keypoints/waypoints are sampled in a rectangular region between start and goal. Width of that region [m].

roadmap_graph_no_samples

Specify the number of samples generated for creating the roadmap graph

selection_alternative_time_cost

If true, time cost (sum of squared time differences) is replaced by the total transition time (sum of time differences).

selection_cost_hysteresis

Specify how much trajectory cost must a new candidate have w.r.t. a previously selected trajectory in order to be selected (selection if new_cost < old_cost*factor).

selection_obst_cost_scale

Extra scaling of obstacle cost terms just for selecting the 'best' candidate.

selection_viapoint_cost_scale

Extra scaling of via-point cost terms just for selecting the 'best' candidate.

shrink_horizon_backup

Allows the planner to shrink the horizon temporary (50%) in case of automatically detected issues (e.g. infeasibility). Also see parameter shrink_horizon_min_duration.

shrink_horizon_min_duration

Specify minimum duration for the reduced horizon in case an infeasible trajectory is detected (refer to parameter shrink_horizon_backup in order to activate the reduced horizon mode).

switching_blocking_period

Specify a time duration in seconds that needs to be expired before a switch to a new equivalence class is allowed.

teb_autosize

Enable automatic resizing of the trajectory w.r.t to the temporal resolution (recommended)

viapoints_all_candidates

If true, all trajectories of different topologies are attached to the set of via-points, otherwise only the trajectory sharing the same topology as the initial/global plan is connected with them

visualize_hc_graph

Visualize the graph that is created for exploring distinctive trajectories (check marker message in rviz)

weight_acc_lim_theta

Optimization weight for satisfying the maximum allowed angular acceleration.

weight_acc_lim_x

Optimization weight for satisfying the maximum allowed translational acceleration

weight_adapt_factor

Some special weights (currently weight_obstacle) are repeatedly scaled by this factor in each outer TEB iteration (weight_new = weight_old*factor). Increasing weights iteratively instead of setting a huge value a-priori leads to better numerical conditions of the underlying optimization problem.

weight_dynamic_obstacle

Optimization weight for satisfying a minimum separation from dynamic obstacles.

weight_inflation

Optimization weight for the inflation penalty (should be small).

weight_kinematics_forward_drive

Optimization weight for forcing the robot to choose only forward directions (positive transl. velocities). A small weight (e.g. 1.0) still allows driving backwards. A value around 1000 almost prevents backward driving (but cannot be guaranteed).

weight_kinematics_nh

Optimization weight for satisfying the non-holonomic kinematics (this parameter must be high since the kinematics equation constitutes an equality constraint, even a value of 1000 does not imply a bad matrix condition due to small 'raw' cost values in comparison to other costs).

weight_kinematics_turning_radius

Optimization weight for enforcing a minimum turning radius (only for carlike robots).

weight_max_vel_theta

Optimization weight for satisfying the maximum allowed angular velocity

weight_max_vel_x

Optimization weight for satisfying the maximum allowed translational velocity

weight_obstacle

Optimization weight for keeping a minimum distance from obstacles

weight_optimaltime

Optimization weight for contracting the trajectory w.r.t transition/execution time

weight_shortest_path

Optimization weight for contracting the trajectory w.r.t. path length

weight_viapoint

Optimization weight for minimzing the distance to via-points (resp. reference path).

wheelbase

The distance between the rear axle and the front axle. The value might be negative for back-wheeled robots (only required if ~<name>/cmd\_angle\_instead\_rotvelis set to true)

xy_goal_tolerance

Allowed final euclidean distance to the goal position in meters

yaw_goal_tolerance

Allowed final orientation error in radians

More Info

Source: http://wiki.ros.org/teb_local_planner