Ask Your Question

amcl and odom error while rotating [closed]

asked 2020-11-27 03:23:06 -0500

siddharthcb gravatar image

updated 2020-11-27 03:35:05 -0500

hi, i am running hector slam using ydlidar and realsense t265 for odom. the position updates properly on the map when the bot is in linear motion but when the bot rotates, the entire map fluctuates and the it takes 2secs to come back to normal. though i tried changing my amcl parameters but still no luck. my amcl_diff.launch parameters are shown below.. since odom_alpha1 is related to yaw i tried increasing it but same issue. What should i be doing exactly?

< launch>

< node pkg="amcl" type="amcl" name="amcl" output="screen">

< !-- Publish scans from best pose at a max of 10 Hz > -->

< param name="odom_model_type" value="diff-corrected"/>

< param name="odom_alpha5" value="0.1"/>

< param name="transform_tolerance" value="0.1" />

< param name="gui_publish_rate" value="10.0"/>

< param name="laser_max_beams" value="400"/>

< param name="min_particles" value="400"/>

< param name="max_particles" value="2000"/>

< param name="kld_err" value="0.05"/>

< param name="save_pose_rate" value="0.5"/>

< param name="kld_z" value="0.99"/>

< param name="odom_alpha1" value="0.1"/>

< param name="odom_alpha2" value="0.1"/>

< !-- translation std dev, m -->

< param name="odom_alpha3" value="0.1"/>

< param name="odom_alpha4" value="0.1"/>

< param name="laser_z_hit" value="0.8"/>

< param name="laser_z_short" value="0.05"/>

< param name="laser_z_max" value="0.05"/>

< param name="laser_z_rand" value="0.2"/>

< param name="laser_sigma_hit" value="0.2"/>

< param name="laser_lambda_short" value="0.1"/>

< param name="laser_lambda_short" value="0.1"/>

< param name="laser_model_type" value="likelihood_field"/>

< !-- < param name="laser_model_type" value="beam"/> -->

< param name="laser_likelihood_max_dist" value="2.0"/>

< param name="update_min_d" value="-1"/>

< param name="update_min_a" value="-1"/>

< param name="first_map_only" value="true"/>

< param name="odom_frame_id" value="odom"/>

< param name="resample_interval" value="1"/>

< param name="transform_tolerance" value="0.1"/>

< param name="recovery_alpha_slow" value="0.0"/>

< param name="recovery_alpha_fast" value="0.0"/>

< /node>

< /launch>"

i sometimes get this error from odom topic: "Transform [sender=unknown_publisher] For frame [odom]: No transform to fixed frame [map]. TF error: [Lookup would require extrapolation into the future. Requested time 1606469551.994227409 but the latest data is at time 1606469551.947668000, when looking up transform from frame [odom] to frame [map]]"

should i be increasing the transform_tolerance?

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by siddharthcb
close date 2021-01-31 05:43:35.045818

1 Answer

Sort by ยป oldest newest most voted

answered 2020-11-27 07:56:04 -0500

When using diff-corrected, small numbers like 0.005 seem to be appropriate for odom_alpha.

You may try changing diff-corrected to diff or making odom_alpha1 to odom_alpha5 smaller to improve it.

edit flag offensive delete link more



Thanks a lot. it worked!

siddharthcb gravatar image siddharthcb  ( 2020-11-30 01:12:43 -0500 )edit

Question Tools

1 follower


Asked: 2020-11-27 03:23:06 -0500

Seen: 132 times

Last updated: Nov 27 '20