in place rotation always goes clockwise
Hi, All,
there's a strange behaviour on my robot.
whenever it tries to do a in place rotation, it always goes clockwise, even though the actual target is just a few degree counter clockwise. here's the dump of the rosparam
move_base:
NavfnROS: {allow_unknown: false}
TrajectoryPlannerROS: {acc_lim_th: 0.2, acc_lim_theta: 0.2, acc_lim_x: 0.2, acc_lim_y: 0.0,
allow_unknown: false, angular_sim_granularity: 0.3, dwa: false, escape_reset_dist: 0.1,
escape_reset_theta: 1.57079632679, escape_vel: -0.1, gdist_scale: 0.8, global_frame_id: world,
heading_lookahead: 2.0, heading_scoring: false, heading_scoring_timestep: 0.1,
holonomic_robot: false, max_in_place_rotational_vel: 0.1, max_rotational_vel: 0.4,
max_vel_theta: 0.4, max_vel_x: 0.6, min_in_place_rotational_vel: -0.1, min_in_place_vel_theta: 0.1,
min_rotational_vel: -0.4, min_vel_theta: -0.4, min_vel_x: 0.05, occdist_scale: 0.01,
oscillation_reset_dist: 0.05, pdist_scale: 0.6, restore_defaults: false, sim_granularity: 0.3,
sim_time: 4.2, simple_attractor: false, vtheta_samples: 20, vx_samples: 20, xy_goal_tolerance: 0.5,
y_vels: '-0.3,-0.1,0.1,-0.3', yaw_goal_tolerance: 0.5}
aggressive_reset: {reset_distance: 1.84}
base_global_planner: navfn/NavfnROS
base_local_planner: base_local_planner/TrajectoryPlannerROS
clearing_rotation_allowed: false
conservative_reset: {reset_distance: 3.0}
conservative_reset_dist: 3.0
controller_frequency: 20.0
controller_patience: 5.0
global_costmap:
allow_unknown: false
footprint: '[[0.9,0.8],[1,0],[0.9,-0.8],[-0.8,-0.8],[-0.8,0.8]]'
footprint_padding: 0.01
global_frame: /world
height: 200
inflation_layer: {cost_scaling_factor: 7.0, enabled: true, inflation_radius: 3.0,
robot_radius: 0.46}
obstacle_layer:
combination_method: 1
enabled: true
laser_scan_sensor: {clearing: true, data_type: LaserScan, marking: true, sensor_frame: base_laser,
topic: scan}
max_obstacle_height: 2.0
observation_sources: laser_scan_sensor
obstacle_range: 5.4
raytrace_range: 5.5
track_unknown_space: true
obstacle_layer_footprint: {enabled: true}
origin_x: -100.0
origin_y: -100.0
plugins:
- {name: static_layer, type: 'costmap_2d::StaticLayer'}
- {name: obstacle_layer, type: 'costmap_2d::ObstacleLayer'}
- {name: inflation_layer, type: 'costmap_2d::InflationLayer'}
publish_frequency: 0.0
resolution: 0.05
robot_base_frame: base_link
robot_radius: 0.46
static_layer: {enabled: true, lethal_cost_threshold: 160, track_unknown_space: true}
static_map: true
transform_tolerance: 5.0
update_frequency: 0.2
width: 200
local_costmap:
allow_unknown: false
footprint: '[[0.9,0.8],[1,0],[0.9,-0.8],[-0.8,-0.8],[-0.8,0.8]]'
footprint_padding: 0.01
global_frame: /base_odom
height: 12
inflation_layer: {cost_scaling_factor: 7.0, enabled: true, inflation_radius: 3.0,
robot_radius: 0.46}
lethal_cost_threshold: 160
obstacle_layer:
combination_method: 1
enabled: true
laser_scan_sensor: {clearing: true, data_type: LaserScan, marking: true, sensor_frame: base_laser,
topic: scan}
max_obstacle_height: 2.0
observation_sources: laser_scan_sensor
obstacle_range: 5.4
raytrace_range: 5.5
track_unknown_space: false
obstacle_layer_footprint: {enabled: true}
origin_x: -100.0
origin_y: -100.0
plugins:
- {name: obstacle_layer, type: 'costmap_2d::ObstacleLayer'}
- {name: inflation_layer, type: 'costmap_2d::InflationLayer'}
publish_frequency: 5.0
resolution: 0.05
robot_base_frame: base_link
robot_radius: 0.46
rolling_window: true
static_map: false
transform_tolerance: 1.0
update_frequency: 2.0
width: 12
oscillation_distance: 0.5
oscillation_timeout: 0.0
planner_frequency: 0.0
planner_patience: 5.0
recovery_behavior_enabled: true
restore_defaults: false
shutdown_costmaps: false
It isn't just the oscillation blocker? Once you rotate / move into a direction there is a block for going into the other direction until you covered a certain distance (oscillation_distance parameter). You could try to set oscillation_distance to 0 to test if it is that.