wiki:Plugins/colli
Last modified 4 years ago Last modified on 31.03.2015 23:55:56

Collision Avoidance

The plugin imports collision avoidance system from Rcsoft. More information about the algorithm can be found KBSG Publications. The plugin needs as input the odometry of the motor, laser readings, a target object and a desired driving mode. It generates an occupancy grid map based on laser readings and the robot's shape and proposes the desired velocity to motor to reach to the target point avoiding obstacles.

Requires

Config Values

Path Type Description Default
/plugins/colli/frequency unsigned int Frequency (in Hz) of how often calli is called 10
/plugins/colli/visualize_idle bool Visualize data even if colli is idle false
/plugins/colli/write_spam_debug bool This disables/enales the (spam-) debug msgs false
/plugins/colli/obstacle_increasement bool Dynamically increase obstacle size depending on robot's speed true
/plugins/colli/max_robo_increase float The maximum dynamic increasement of obstacles related to robot's speed 0.04
/plugins/colli/security_distance float Security distance to keep to obstacles 0.2
/plugins/colli/max_velocity float Maximum translation velocity (m/s) 1.5
/plugins/colli/max_rotation float Maximum rotation velocity (rad/s) 2.0
/plugins/colli/escaping_enabled bool Enable escaping true
/plugins/colli/stop_at_target bool Enable translation calculation to stop precisely at target true
/plugins/colli/orient_mode/default string Decide how/when to adjust orientation. Options: "OrientAtTarget" or "OrientDuringTravel" OrientAtTarget
/plugins/colli/min_rot_distance float Min rotation difference (in rad) to final orientation to trigger rotating 0.1
/plugins/colli/min_rot float Min rotation velocity (in rad/s) when orienting at target 0.1
/plugins/colli/min_drive_distance float Min distance (in m) to trigger driving 0.1
/plugins/colli/min_long_dist_drive float Min distance (in m) to trigger driving straight to target 0.15
/plugins/colli/min_long_dist_prepos float Min distance (in m) to trigger driving to a pre-position first 2.1
/plugins/colli/pre_position_distance float Distance of pre-position to final position 0.8
/plugins/colli/interface/navigator string The id of main navigator interface Navigator
/plugins/colli/interface/motor string The id of motor interface Motor
/plugins/colli/interface/laser string The id of laser interface Laser
/plugins/colli/interface/colli string The id of colli target interface Colli target
/plugins/colli/interface/read_timeout float Max age (in sec) of interface data (colli aborts if data is older) 0.5
/plugins/colli/frame/base string The base_link frame !frame /base_link
/plugins/colli/frame/laser string The laser frame !frame /base_laser
/plugins/colli/frame/odometry string The odometry frame !frame /odom
/plugins/colli/ros/target_topic string Subscribe to this ROS topic, allows setting target via rviz /move_base_simple/goal

Config values regarding path calculation (obstacle grid, obstacles, search,...)

Path Type Description Default
/plugins/colli/occ_grid/height float Occgrid height in m 6.5
/plugins/colli/occ_grid/width float Occgrid width in m 6.5
/plugins/colli/occ_grid/cell_height unsigned int Occgrid cell height in cm 5
/plugins/colli/occ_grid/cell_width unsined int Occgrid cell width in cm 5
/plugins/colli/roboshape/shape unsigned int The shape. 1=angular, 2=round 1
/plugins/colli/roboshape/angular/width_x float Width-x for angular robot 0.38
/plugins/colli/roboshape/angular/width_y float Width-y for angular robot 0.4
/plugins/colli/roboshape/angular/laser_offset_x_from_back float Laser offset from back 0.062
/plugins/colli/roboshape/angular/laser_offset_y_from_left float Laser offset from left 0.2
/plugins/colli/roboshape/round/radius float Radius of round robot 0.3
/plugins/colli/roboshape/round/laser_offset_x_from_middle float Laser offset from center 0.0
/plugins/colli/roboshape/round/laser_offset_x_from_middle float Laser offset from center 0.0
/plugins/colli/roboshape/extensions/front float Extension of shape to front 0.2
/plugins/colli/roboshape/extensions/right float Extension of shape to right 0.02
/plugins/colli/roboshape/extensions/back float Extension of shape to back 0.05
/plugins/colli/roboshape/extensions/left float Extension of shape to left 0.02
/plugins/colli/laser/min_reading_legnth float Minimum laser reading length for that the reading is taken as valid 0.02
/plugins/colli/laser_occupancy_grid/distance_account int Distance in which laser readings are ignored for putting a new obstacle into the grid 0.1
/plugins/colli/laser_occupancy_grid/force_ellipse_obstacle bool Use ellipse obstacles with angular robots false
/plugins/colli/laser_occupancy_grid/buffer_size usigned int 2
/plugins/colli/laser_occupancy_grid/history/max_length float Max amount of time (in sec) to keep laser reading in the history 6.0
/plugins/colli/laser_occupancy_grid/history/min_length float Min amount of time (in sec) to keep laser reading in the history 1.5
/plugins/colli/laser_occupancy_grid/history/initial_size unsigned int The history vector size with number of saved elements 500
/plugins/colli/laser_occupancy_grid/history/delete_invisible_old_obstacles/enabled bool Enable comparing history with new reading true
/plugins/colli/laser_occupancy_grid/history/delete_invisible_old_obstacles/angle_min unsigned int Lower angle [0, 360] for this scan 280
/plugins/colli/laser_occupancy_grid/history/delete_invisible_old_obstacles/angle_max unsigned int Higher angle [0, 360] for this scan 80
/plugins/colli/laser_occupancy_grid/cell_cost/occupied unsigned int Cost of occupied cell in occupancy-grid 1000
/plugins/colli/laser_occupancy_grid/cell_cost/near unsigned int Cost of cell near obstacle in occupancy-grid 4
/plugins/colli/laser_occupancy_grid/cell_cost/mid unsigned int Cost of cell relatively near obstacle in occupancy-grid 3
/plugins/colli/laser_occupancy_grid/cell_cost/far unsigned int Cost of cell further away from obstacle in occupancy-grid 2
/plugins/colli/laser_occupancy_grid/cell_cost/free unsigned int Cost of free cell in occupancy-grid 1
/plugins/colli/search/a_star/max_states unsigned int Astar maximum states 15000
/plugins/colli/search/line/cost_max unsigned int Max allowed cost for obstacle-free line (after AStar search) 5

Config values regarding driving (drive mode, instructions for motor, ...)

Path Type Description Default
/plugins/colli/motor_instruct/mode string Sets the motor instructor. Options: "linear", "quadratic" linear
/plugins/colli/motor_instruct/trans_acc float Translation acceleration for motor instruction 0.23
/plugins/colli/motor_instruct/trans_dec float Translation deceleration for motor instruction 0.42
/plugins/colli/motor_instruct/rot_acc float Rotation acceleration for motor instruction 0.23
/plugins/colli/motor_instruct/rot_dec float Rotation deceleration for motor instruction 0.42
/plugins/colli/drive_mode/restriction string Used drive restriction. Options: "differential", "omnidirectional" omnidirectional
/plugins/colli/drive_mode/default string Default drive mode. It's an enum, see "NavigatorInterface for details Normal
/plugins/colli/drive_mode/default_escape string Default escaping mode. Options: "basic", "potential_field" potential_field
/plugins/colli/drive_mode/normal/max_trans float Normal drive mode, max translation velocity (m/s) 2.0
/plugins/colli/drive_mode/normal/max_rot float Normal drive mode, max rotation velocity (rad/s) 2.0
/plugins/colli/drive_mode/escape/max_trans float Escaping mode, max translation velocity (m/s) 2.0
/plugins/colli/drive_mode/escape/max_rot float Escaping mode, max rotation velocity (rad/s) 2.0
/plugins/colli/drive_mode/stopping_adjustment/distance_addition float Add this distance to the calculated distance used for calculating timed stopping 0.0
/plugins/colli/drive_mode/stopping_adjustment/deceleration_factor float Multiply this value [0, 1] with the expected deceleration per loop 1.0
/plugins/colli/emergency_stopping/enabled bool Use emergency stopping false
/plugins/colli/emergency_stopping/threshold_distance float Obstacle distance that triggers emergency stop 1.2
/plugins/colli/emergency_stopping/threshold_velocity float Min velocity to trigger emergency stop 0.2
/plugins/colli/emergency_stopping/max_vel float Max velocity if emergency stop triggeres 0.2
/plugins/colli/emergency_stopping/beams_used unsigned int Number of beams used to check for distance 11

Provides

Transforms

Publishes odometry transform.