Navigation in Stage simulation without using laser
Hi!
I want to simulate a robot in stage_ros with only odometry information and without using laser scanner for localization. I want to use navigation stack with Lego Mindstorms in the future (they have no laser scanner). I read some information about how to exclude laser from the simulation and so I deleted it from observation_sources.
According to the graph, navigation really stopped using base_laser, but unexpected problem appeared - the robot started to hit the obstacles. The map is very simple - just the rectangular of 8 x 4 meters with the two walls in the middle.
The robot should pass through the gap between the walls. Without the walls navigation is perfect, so it is not the localisation error, probably. I tried to watch what is happening in Rviz. It shows that global plan is almost good, and in the beginning robot starts moving according to it. But shortly after that, the robot is going like through the short cut - through the wall.
Here is base_local_planner_params.yaml:
TrajectoryPlannerROS:
#Set the acceleration limits of the robot
acc_lim_th: 3.2
acc_lim_x: 2.5
acc_lim_y: 2.5
#Set the velocity limits of the robot
max_vel_x: 0.65
min_vel_x: 0.1
max_rotational_vel: 1.0
min_in_place_rotational_vel: 0.4
#The velocity the robot will command when trying to escape from a stuck situation
escape_vel: -0.1
#For this example, we'll use a holonomic robot
holonomic_robot: true
#Since we're using a holonomic robot, we'll set the set of y velocities it will sample
y_vels: [-0.3, -0.1, 0.1, -0.3]
#Set the tolerance on achieving a goal
xy_goal_tolerance: 0.1
yaw_goal_tolerance: 0.05
#We'll configure how long and with what granularity we'll forward simulate trajectories
sim_time: 1.7
sim_granularity: 0.025
vx_samples: 3
vtheta_samples: 20
#Parameters for scoring trajectories
goal_distance_bias: 0.8
path_distance_bias: 0.6
occdist_scale: 0.01
heading_lookahead: 0.325
#We'll use the Dynamic Window Approach to control instead of Trajectory Rollout for this example
dwa: true
#How far the robot must travel before oscillation flags are reset
oscillation_reset_dist: 0.05
#Eat up the plan as the robot moves along it
prune_plan: true
Here is costmap_common_params.yaml:
#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
transform_tolerance: 0.3 #Set the tolerance we're willing to have for tf transforms
obstacle_range: 2.5 #Obstacle marking parameters // in wiki - global filtering parameters
max_obstacle_height: 2.0
raytrace_range: 3.0
footprint: [[-0.325, -0.325], [-0.325, 0.325], [0.325, 0.325], [0.46, 0.0], [0.325, -0.325]]#The footprint of the robot and associated padding
footprint_padding: 0.01
inflation_radius: 0.35 #Cost function parameters
cost_scaling_factor: 10.0
lethal_cost_threshold: 100 #The cost at which a cell is considered an obstacle when a map is read from the map_server
Here is global_costmap_params.yaml
global_costmap:
#Set the global and robot frames for the costmap
global_frame: /map
robot_base_frame: base_link
#Set the ...