Hello, I have been trying to get the multi robot collision avoidance package working with the navigation stack. I set up the launch files similar to the examples provided in the package and can display the costmaps, global and local plans made by the collvoid planner. When I send move_base a goal using rviz or a simple package I get a warning
[ WARN] [1348232889.899224274]: MSG to TF: Quaternion Not Properly Normalized.
I have checked the goals sent to it and they are normalized. The collvoid package doesn't correctly move the robot to the goal even though it's planned a global and local path to it. The robot just rotates from side to side and moves forward very slowly. When I use a different planner like navfn then I don't get this warning and the robot moves correctly along paths. Has anyone got this package working well with fuerte and the navigation stack?
The blue line is the global plan and the purple line is the local plan. The goal was selected from publishing a selected goal from rviz on the move_base_simple/goal which already normalizes the quaternion for you.
<launch>
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<param name="oscillation_timeout" value="30.0" />
<param name="oscillation_distance" value="0.5" />
<param name="base_global_planner" value="collvoid_simple_global_planner/CollvoidSimpleGlobalPlanner" />
<param name="base_local_planner" value="collvoid_local_planner/CollvoidLocalPlanner" />
<rosparam file="$(find wambot5_2dnav)/CollvoidLocalPlanner_params.yaml" command="load" />
</node>
</launch>
CollvoidLocalPlanner_params.yaml
controller_frequency: 10
CollvoidLocalPlanner:
max_neighbors: 10
neighbor_dist: 1.0
time_horizon: 5.0
time_horizon_obst: 5.0
threshold_last_seen: 1.0
scale_radius_factor: 2.0
yaw_goal_tolerance: 3.0
xy_goal_tolerance: 0.3
latch_xy_goal_tolerance: false
global_frame: /map
wheel_base: 0.35
time_to_holo: 0.4
min_error_holo: 0.05
max_error_holo: 0.10
holo_robot: false
delete_observations: false
max_vel_x: 0.8
max_vel_th: 0.1
min_vel_x: 0.01
min_vel_th: 0.1
min_vel_theta_inplace: 0.05
min_vel_y: 0.01
max_vel_y: 0.1
max_vel_with_obstacles: 0.2
acc_lim_x: 1.0
acc_lim_y: 0.0
acc_lim_th: 0.5
footprint_radius: 0.3
inscribed_radius: 0.2
TrajectoryPlannerROS:
max_vel_x: 0.50
min_vel_x: 0.05
max_rotational_vel: 1.0
min_in_place_rotational_vel: 0.01
acc_lim_th: 0.75
acc_lim_x: 0.50
acc_lim_y: 0.50
holonomic_robot: false
yaw_goal_tolerance: 3.0
xy_goal_tolerance: 0.3
goal_distance_bias: 0.8
path_distance_bias: 1.0
sim_time: 0.5
heading_lookahead: 0.325
oscillation_reset_dist: 0.05
vx_samples: 6
vtheta_samples: 20
dwa: true
local_costmap:
global_frame: odom
robot_base_frame: base_link
update_frequency: 3.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 6.0
height: 6.0
resolution: 0.05
#For this example we'll configure the costmap in voxel-grid mode
map_type: voxel
#Voxel grid specific parameters
origin_z: 0.0
z_resolution: 0.2
z_voxels: 10
unknown_threshold: 9
mark_threshold: 0
#Set the tolerance we're willing to have for tf transforms
transform_tolerance: 0.8
#Obstacle marking parameters
obstacle_range: 2.5
max_obstacle_height: 2.0
raytrace_range: 3.0
robot_radius: 0.35
footprint: [[-0.279, -0.225], [-0.279, 0.225], [0.279, 0.225], [0.279, -0.225]]
inflation_radius: 0.40
footprint_padding: 0.01
#Cost function parameters
cost_scaling_factor: 10.0
#The cost at which a cell is considered an obstacle when a map is read from the map_server
lethal_cost_threshold: 100
#Configuration for the sensors that the costmap will use to update a map
observation_sources: scan
scan: {data_type: LaserScan, expected_update_rate: 0.8,
observation_persistence: 0.0, marking: true, clearing: true, max_obstacle_height: 0.4, min_obstacle_height: 0.02}
global_costmap:
global_frame: /map
robot_base_frame: base_link
update_frequency: 3.0
publish_frequency: 2.0
static_map: true
#For this example we'll configure the costmap in voxel-grid mode
map_type: voxel
#Voxel grid specific parameters
origin_z: 0.0
z_resolution: 0.2
z_voxels: 10
unknown_threshold: 9
mark_threshold: 0
#Set the tolerance we're willing to have for tf transforms
transform_tolerance: 0.8
#Obstacle marking parameters
obstacle_range: 2.5
max_obstacle_height: 2.0
raytrace_range: 3.0
robot_radius: 0.35
footprint: [[-0.279, -0.225], [-0.279, 0.225], [0.279, 0.225], [0.279, -0.225]]
inflation_radius: 0.40
footprint_padding: 0.01
#Cost function parameters
cost_scaling_factor: 10.0
#The cost at which a cell is considered an obstacle when a map is read from the map_server
lethal_cost_threshold: 100
Originally posted by Roy89 on ROS Answers with karma: 133 on 2012-09-21
Post score: 0
Original comments
Comment by bbbExtremly on 2014-01-12:
Would you mind sharing the source code of collvoid package? Because the original address is fail(rosws merge https://kforge.ros.org/collvoid/collvoid/raw-file/tip/collvoid.rosinstall) and I cannot download it. Thank you