-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2D localization mode have roll pitch and Zaxis drit #33
Comments
@carlosmccosta the localization topic also seems have Zaxis drift. |
Hello, For 3 DoF localization (x, y, yaw), you must use the dynamic_robot_localization_system.launch, which is configured for using 2D lidars and 2D occupancy grids. drl assumes that your lidar is mounted parallel to the floor and after transforming the lidar data to the odom TF, it will set the points Z coordinate to zero. If your lidar is not parallel to the floor, you will not be able to use 3 DoF localization algorithms and maps, because they all assume sensors parallel to the floor to ensure that when the sensor changes place within the map, the measurements remain consistent. Have a nice day, |
@carlosmccosta
|
Hello, Check if the roll and pitch angles between the TFs odom and laser are 0 degrees. Check your ROS parameter server ( Looking at your rviz screenshot it seems that the laser is tilted and not parallel to the ground. Have a nice day :) |
Hello, What is your TF chain configuration from From your previous launch files, I assumed that it was If your odom is not accurate, you can disable its usage within
I rechecked one of my validation testes from a rosbag (freiburg2_pioneer_slam1.launch) and the latest commit of Have a nice day, |
hello @carlosmccosta |
Hello, If drl is rejecting its pose estimation in your typical use case / environment, then you may need to increase the tolerance to outliers, by specifying to drl that the map data might be This is controlled with max_inliers_distance (in meters) and max_outliers_percentage (range 0 to 1 | note that currently this is an outlier_ratio -> 1 equals to 100%) It is possible to control how far the tracking and recovery algorithms corrections translate and rotate the robot pose with max_transformation_distance | max_transformation_angle and for recovery recovery_2d.yaml#L27 | recovery_2d.yaml#L26 For the initial pose algorithms, currently it not applied this jump limit to allow the robot to start lost and then find itself in the map. To ensure that ICP runs fast, confirm that you have the look up table enabled with the correspondence_estimation_approach set to If your robot is moving very fast, you may need to increase max_correspondence_distance Have a nice day :) |
hello @carlosmccosta |
Hello, When you send an initial pose, the matching algorithm changes from yaml_configuration_tracking_filename to yaml_configuration_recovery_filename Assuming you have not changed the yamls loaded, you can compare the configurations here: You should not resend initial poses to fix this issue. Instead, you should adjust the configuration of drl. Namely, try to increase these 3 parameters: You can also try and change the tracking algorithm from icp 2d to the standard icp, by commenting this line and uncommenting this line and then changing transformation_estimation_approach to Lastly, if it still has drift, you can disable the look up tables and use the standard k-d trees for correspondence estimation (they are slower, but you can try then and see if the problem persists). For that, change the correspondence_estimation_approach to Have a nice day, |
hello @carlosmccosta https://drive.google.com/file/d/1AA0dVNP_Xgvrz4QMpX9hlSJ_GixUyJhv/view?usp=share_link |
@carlosmccosta |
@carlosmccosta |
Hello, The The These frames names are this way on purpose and follow the standard ros tf for mobile robotics: Looking at your videos, the aligned_pointcloud is correctly overlapping the map. So drl was working correctly all along ! For inspecting the results of In drl_configs.yaml you can check the subscribe / input topics and the publish / output topics of Have a nice day, |
hello @carlosmccosta |
The text was updated successfully, but these errors were encountered: