# tsdf_localization **Repository Path**: jxx315_admin/tsdf_localization ## Basic Information - **Project Name**: tsdf_localization - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-21 - **Last Updated**: 2024-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TSDF-based 3D Monte Carlo Localization ROS Package This package consists of several nodes and tools to perform a 6D Monte Carlo Localization of robots equipped with a 3D LiDAR in 3D TSDF maps. The sensor update is massively accelerated by a GPU-based implementation, but can also be executed on the CPU. [![Demo GIF](doc/tsdf_loc_teaser.gif)](https://github.com/uos/tsdf_localization_demo.git) ## Prerequisites * ROS Noetic (*ros-noetic-desktop-full*) * ROS packages: See `package.xml` * OpenMP (for CPU acceleration) * CUDA (optional, recommended for acceleration) ## Installation 1. Clone this repository into your ROS workspace ```console $ git clone --recursive https://github.com/uos/tsdf_localization.git ``` 2. Make sure have also installed the required external packages or also cloned them into the local ROS workspace 3. Build the ROS workspace ```console $ catkin build ``` ## Demo A quick startup including how to use tsdf_localization within your package is shown here: https://github.com/uos/tsdf_localization_demo.git ## Citation Please reference the following papers when using `tsdf_localization` in your scientific work. ```latex @inproceedings{eisoldt2023, author={Eisoldt, Marc and Mock, Alexander and Porrmann, Mario and Wiemann, Thomas}, booktitle={2023 Seventh IEEE International Conference on Robotic Computing (IRC)}, title={{Towards 6D MCL for LiDARs in 3D TSDF Maps on Embedded Systems with GPUs}}, year={2023}, pages={158-165}, doi={10.1109/IRC59093.2023.00035} } ``` ## Nodes ### mcl_3d Starts MCL in a given TSDF map. #### Subscribed Topics: `initialpose (geometry_msgs/PoseWithCovarianceStamped)` Initial pose guess can be provided using RViz. `/cloud (sensor_msgs/PointCloud2)` PointCloud topic for sensor update. `/odom (nav_msgs/Odometry)` Odometry message for motion update. (optional) `/imu_data (sensor_msgs/Imu)` #### Services Start global localization: `/global_localization` ## Contributions We are happy about issues and pull requests or other feedback. Please let us know if something did not work out as expected.