0
$\begingroup$

Rosanswers logo

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?

image description

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

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

It's not supported for fuerte yet.


Originally posted by Roy89 with karma: 133 on 2012-10-14

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.