Robotics StackExchange | Archived questions

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

wrong ( negative )robot position is updated

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 is 0.2) so you have to wait that the robot as actually moved by 20cm 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.

image description

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

Answers