Wrong Pose update while moving robot slowely in reverse direction using tele-operation
Dear All,
I am using ROS Kinetic version.
I am trying to move robot using teleoptwistkeyboard pkg on /cmd_vel topic. I am using amcl pkg to monitor robot pose. When i give -0.25m/s linear velocity to move robot linear direction , robot pose is updated properly but when i give -0.1m/s linear velocity at that time wrong ( negative )robot position is updated and also map is getting shifted.
So how to resolved this problem at lower linear velocity ?
EDIT :
Robot odometry is reliable. i checked pose data which are correct. AMCL Parameters are below:
base_frame_id: base_link
beam_skip_distance: 0.5
beam_skip_threshold: 0.3
do_beamskip: false
first_map_only: false
global_frame_id: map
gui_publish_rate: -1.0
initial_cov_aa: 0.00039444164098382243
initial_cov_xx: 0.006605275579694592
initial_cov_yy: 0.0002945623643029194
initial_pose_a: -0.009420547200438287
initial_pose_x: -6.078843989833989
initial_pose_y: -8.205152316330627
kld_err: 0.01
kld_z: 0.99
laser_lambda_short: 0.1
laser_likelihood_max_dist: 2.0
laser_max_beams: 30
laser_max_range: -1.0
laser_min_range: -1.0
laser_model_type: likelihood_field
laser_sigma_hit: 0.2
laser_z_hit: 0.95
laser_z_max: 0.05
laser_z_rand: 0.05
laser_z_short: 0.1
max_particles: 5000
min_particles: 100
odom_alpha1: 0.2
odom_alpha2: 0.2
odom_alpha3: 0.2
odom_alpha4: 0.2
odom_alpha5: 0.2
odom_frame_id: odom
odom_model_type: diff-corrected
recovery_alpha_fast: 0.0
recovery_alpha_slow: 0.0
resample_interval: 2
restore_defaults: false
save_pose_rate: 0.5
tf_broadcast: true
transform_tolerance: 0.1
update_min_a: 0.001
update_min_d: 0.005
use_map_topic: false
Asked by Bhavesh D on 2019-12-04 03:58:36 UTC
Comments
Can you be more specific ? Also, is it the same with positive velocities ?
I would guess that you have the param
update_min_d
at the default value (wich is0.2
) so you have to wait that the robot as actually moved by20cm
before getting an update, you can lower this param to see if it changes something.Asked by Delb on 2019-12-04 06:24:54 UTC
Hi Delbaere,
Ok so when i give 0.1m/s linear velocity at that time it move perfect toward positive X direction and update AMCL_POSE correctly.But when i give -0.1m/s linear speed robot moving reverse correctly but amcl pose not update properly it update opposite direction in rviz. means if robot goes +X direction then amcl pose was updating -X direction vice-versa. so this is happening only while give negative cmd_vel. in positive cmd_vel it works perfect.
While i increase the negative velocity ex. -0.2 m/s at that time again amcl pose update correctly even though it is negative velocity. so this problem occurred only while negative velocity which is <-0.2 m/s.
I have given below parameter in amcl node. param name="update_min_d" value="0.005" param name="update_min_a" value="0.001"
Asked by Bhavesh D on 2019-12-05 02:36:10 UTC
Is your robot placed in a corridor ? I mean does your robot detects lots of obstacles at different distances when moving backwards, at least direclty behind it and not only on the sides ?
Asked by Delb on 2019-12-06 03:31:54 UTC
Because of low karma points i couldn't upload image. so is there any other option that i can upload image ? So that we can get better understand by seeing image.
Asked by Bhavesh D on 2019-12-08 23:12:02 UTC
You can use imgur for example to give a link to your image (and as soon as you have enough karma you should replace the link with the image).
Asked by Delb on 2019-12-09 02:50:30 UTC
@Delb, I am posting a screenshot for my colleague, Please find the screenshot below.
Asked by BV_Pradeep on 2019-12-10 00:14:57 UTC
Hi Delb,
Please find the screenshot in the answer below posted by BV_Pradeep
Asked by Bhavesh D on 2019-12-10 00:16:38 UTC
Thank you for the screenshot, the environment doesn't look bad but could you add more obstacles randomly around the robot ? Also is the robot odometry reliable ?
Finally could you provide your AMCL configuration please ?
Asked by Delb on 2019-12-10 04:08:56 UTC
Maybe you should'nt set the parameters
initial_cov_*
to a custom vlaue but keep the defualt one. Except this I don't see anything particular in your configuration.Asked by Delb on 2019-12-10 05:55:38 UTC