Config : Controller - MaxL¶
Overview¶
MaxL Planner is a package that is used to drive the robot. It issues the linear and angular velocity commands that are needed to reach the goal.
Robot Parameter Description¶
1. Robot Configuration Parameters¶
Parameter | Units | Description |
---|---|---|
use_laser | true/false | If true, the robot uses the rpLidar Sensor otherwise uses velodyn Sensor for planning |
pathFolder | File path | The relative path to the path folder |
pathFile | String | The name of the path |
autonomyMode | true/false | If true, calculates the relative goal for the robot to follow |
2. Linear speed and acceleration¶
Parameter | Units | Description |
---|---|---|
maxSpeed | S.I (m/s) | Maximum possible linear velocity |
maxAccel | S.I (m/s^2) | Maximum possible linear acceleration |
3. Turning Parameters¶
Parameter | Units | Description |
---|---|---|
yaw_gain | (Numeric) eg.2.5 | Yaw gain used when robot is in motion |
stop_yaw_gain | (Numeric) eg. 0.6 | Yaw gain used when robot is stopped/almost stopped |
max_yaw_rate | S.I (rad/s) | Maximum angular velocity for the robot |
4. Inflation¶
Parameter | Units | Description |
---|---|---|
x_inflate | S.I (m) | Obstacle Inflation in the x direction |
y_inflate | S.I (m) | Obstacle Inflation in the y direction |
5. Frame Names¶
Parameter | Units | Description |
---|---|---|
map_frame | String | Name of the map frame |
robot_frame | String | Name of the robot base frame |
velodyne_frame | String | Name of the velodyn Sensor frame |
laser_frame | String | Name of the rpLidar Sensor frame |
6. Topic Names¶
Parameter | Units | Description |
---|---|---|
odomTopic | String | The topic name which publishes the odometry |
velodyneTopic | String | The topic name which publishes the velodyn sensor data |
scanTopic | String | The topic name which publishes the rpLidar sensor data |
7. Robot Footprint¶
Parameter | Units | Description |
---|---|---|
vehicleLength | S.I (m) | Length of the vehicle |
vehicleWidth | S.I (m) | Width of the vehicle |
8. Obstacle Ranges¶
Parameter | Units | Description |
---|---|---|
obstacle_horizon | S.I (m) | Parameter used for cropping the pointcloud |
min_path_range | S.I (m) | Minimum path range for finding the path |
initial_path_scale | (Numeric) eg. 1.0 | Initial path scale value. Path Scales scale the paths and distances. Low pathScale means path elongation and vice-versa. |
min_path_scale | (Numeric) eg. 0.75 | Minimum path scale value. For particular local goal, pathScale starts with initial value, finds a path, then value of path scale is decreased to find a longer solution path, till it hits the minPathScale. |
path_scale_step | (Numeric) eg. 0.25 | Path Scale step value |
9. Pure Pursuit Parameters¶
Parameter | Units | Description |
---|---|---|
min_lookahead | S.I (m) | The minimum lookahead on the global path for the robot |
max_lookahead | S.I (m) | The minimum lookahead on the global path for the robot |
closest_point_index_search | (Numeric) eg. 10 | Search for closest point index within this range of previous closest point |
min_radius | S.I (m) | Minimum radius the robot can take from current to goal pose |
max_radius | S.I (m) | Maximum radius the robot can take from current to goal pose |
max_omega_radius | S.I (m) | Radius set when condition for straight line is satisfied |
max_y_deviation | S.I (m) | Maximum deviation in the lateral direction |
lookahead_point_distance | S.I (m) | Used to find the point in the global path to follow |
lookahead_factor_val | (Numeric) eg. 0.088 | Controls the senstivity of movement of lookahead goal. Lower the value lower the change in the postion of lookahead goal. |
lookahead_jump_threshold | S.I (m) | If the change in the position of lookahead goal is greater than this value, it would be considered a jump (oscillation) |
10. MaxL Miscellaneous Parameters¶
Parameter | Units | Description |
---|---|---|
direction_threshold | (degrees) eg. 120 | The fan size (in degrees) on either side of robot wrt relative goal |
high_accuracy_multiplier | (Numeric) eg. 0.4 | High accuracy multiplier for reaching the goal (0,1] |
vis_pointcloud | true/false | Parameter to enable visualisation of detailed data (pointcloud data) |
use_odom_velocity | true/false | Parameter to take velocity from odom messages |
reverse_enabled | true/false | Parameter to enable reverse motion for the robot |
truncated_fan_angle | (degrees) eg. 10 | The fan size (in degrees) on either side of robot wrt relative goal when there is no obstacle detected by the robot |
11. Parameters for Oscillation Detection by Path Index¶
Parameter | Units | Description |
---|---|---|
pi_osc_senstivity | (Numeric) eg. 5 | Controls the senstivity of jump detection. If this value is high, even small changes in the value of selected path index are considered an oscillation and vice-versa |
pi_osc_threshold | (Numeric) eg. 10 | Everytime an oscillation is detected, a count is increased. If this count goes above this threshold, oscillations are considered true and not just an error in detection |
osc_det_by_score_path | true/false | Flag to switch on/off the critic/method of oscillation detectino by path index. If false, the above mentioned params would be rendered ineffective. |
12. Parameters for Oscillation Detection by Angular Velocity¶
Parameter | Units | Description |
---|---|---|
av_osc_sample_window | S.I (s) | Time period/window over which frequency of oscillation is calculated |
av_osc_freq_threshold | (Numeric) eg. 3.5 | If the frequency of change in angular velocity direction per av_osc_sample_window is more than this value, it is considered an oscillation |
osc_det_by_ang_vel | true/false | A flag which gives user the choice to use this method of oscillation detection. If false, oscillation detection by this method will stop |
13. Scoring Parameters¶
Parameter | Units | Description |
---|---|---|
scoring_algo_index | (Numeric) eg. 1 | This parameter decides which scoring algorithm will be used to score paths. Currently, we have 4 different scoring algoritms to chose from |
scoring_algo_four_senstivity_factor | (Numeric) eg. 0 | This parameter is used only by scoring algo number four. It controls the amount of time for which oscillation mitiagtion will last. The larger the value, the longer the oscillation mitigation will work to remove oscillation |
in_place_rotation_penalty | (Numeric) eg. 0.05 | Higher value penalises in place rotation more |
goal_direction_preference | (Numeric) eg. 0.2 | Higher value means controller prefers paths oriented towards the goal |