{"id":19501971,"url":"https://github.com/hku-mars/immesh","last_synced_at":"2025-04-04T19:09:02.654Z","repository":{"id":65314783,"uuid":"587210745","full_name":"hku-mars/ImMesh","owner":"hku-mars","description":"ImMesh: An Immediate LiDAR Localization and Meshing Framework","archived":false,"fork":false,"pushed_at":"2024-01-25T17:35:30.000Z","size":36341,"stargazers_count":653,"open_issues_count":25,"forks_count":58,"subscribers_count":43,"default_branch":"main","last_synced_at":"2025-03-28T18:12:23.458Z","etag":null,"topics":["3d-reconstruction","lidar-inertial-odometry","lidar-slam","meshing","slam"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hku-mars.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-10T08:09:32.000Z","updated_at":"2025-03-28T09:47:41.000Z","dependencies_parsed_at":"2023-11-16T07:37:15.240Z","dependency_job_id":"4883f6e2-7a23-4aa0-95a9-4a450cf5b344","html_url":"https://github.com/hku-mars/ImMesh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2FImMesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2FImMesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2FImMesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2FImMesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hku-mars","download_url":"https://codeload.github.com/hku-mars/ImMesh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234921,"owners_count":20905854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-reconstruction","lidar-inertial-odometry","lidar-slam","meshing","slam"],"created_at":"2024-11-10T22:14:37.380Z","updated_at":"2025-04-04T19:09:02.628Z","avatar_url":"https://github.com/hku-mars.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ImMesh: An **Im**mediate LiDAR Localization and **Mesh**ing Framework\n\n\n## News (Jan, 2024): Release of Code\n\nThe codes of **ImMesh** (pronounced as \"***I-am-Mesh***\") are now available! You can following our guidelines in this page to setup, run and evaluate our work. \n\nThe source code of this package is released under [**GPLv2**](http://www.gnu.org/licenses/) license. We only allow it free for personal and academic usage. For commercial use, please contact me \u003cziv.lin.ljrATgmail.com\u003e and Dr. Fu Zhang \u003cfuzhangAThku.hk\u003e to negotiate a different license.\n\nI hope you will love and enjoy our work, ImMesh. If you feel like ImMesh has indeed helped in your current research or work, I would greatly appreciate it if you could give a star to this repository or cite our paper in your academic research paper :)\n\n## **1. Introduction**\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/cover_v4.jpg\" alt=\"video\" width=\"100%\" /\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/island_appendix.jpg\" alt=\"video\" width=\"100%\" /\u003e\n\u003c/div\u003e\n\n**ImMesh** (pronounced as \"***I-am-Mesh***\") is a novel LiDAR(-inertial) odometry and meshing framework, which takes advantage of input of LiDAR data, achieving the goal of **simultaneous localization and meshing** in real-time. ImMesh comprises four tightly-coupled modules: receiver, localization, meshing, and broadcaster. The localization module utilizes the prepossessed sensor data from the receiver, estimates the sensor pose online by registering LiDAR scans to maps, and dynamically grows the map. Then, our meshing module takes the registered LiDAR scan for **incrementally reconstructing the triangle mesh on the fly**. Finally, the real-time odometry, map, and mesh are published via our broadcaster.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/overview.jpg\" alt=\"video\" width=\"100%\" /\u003e\n\u003c/div\u003e\n\n### 1.1 Our paper\nOur research has been accepted for publication in ***IEEE Transactions on Robotics (T-RO)*** ([**avaible here**](https://ieeexplore.ieee.org/document/10304337)). \n\nOur paper can be [accessed from T-RO](https://ieeexplore.ieee.org/document/10304337) or be downloaded [here](https://github.com/hku-mars/ImMesh/raw/main/paper/ImMesh_tro.pdf).\n\n### 1.2 Our accompanying videos\nOur **accompanying videos** are now available on **YouTube** (click below images to open) and **Bilibili**\u003csup\u003e[1]( https://www.bilibili.com/video/BV1AG4y1177z), [2](https://www.bilibili.com/video/BV1Xd4y1j7on/), [3](https://www.bilibili.com/video/BV1W8411N7D2)\u003c/sup\u003e.\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://youtu.be/pzT2fMwz428\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/video_cover.jpg\" alt=\"video\" width=\"48%\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://youtu.be/pzT2fMwz428?t=4\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/video_contents.jpg\" alt=\"video\" width=\"48%\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n## **2. What can ImMesh do?**\n### 2.1 Simultaneous LiDAR localization and mesh reconstruction on the fly\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/gifs/hku_seq_campus.gif\"  width=\"48%\" /\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/gifs/hku_seq_main_building.gif\"  width=\"48%\" /\u003e\n\u003c/div\u003e\n\n### 2.2 ImMesh for LiDAR point cloud reinforement\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/gifs/application_1_fov.gif\"  width=\"48%\" /\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/gifs/application_1_res.gif\"  width=\"48%\" /\u003e\n\u003c/div\u003e\n\n### 2.3 ImMesh for rapid, lossless texture reconstruction\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/gifs/application_2_trial_1-0.gif\"  width=\"48%\" /\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/gifs/application_2_trial_1-1.gif\"  width=\"48%\" /\u003e\n\u003c/div\u003e\n\n## 3. Prerequisites\n### 3.1 **ROS**\nFollowing this [ROS Installation](http://wiki.ros.org/ROS/Installation) to install ROS and its additional pacakge:\u003cbr\u003e\n```\nsudo apt-get install ros-XXX-cv-bridge ros-XXX-tf ros-XXX-message-filters ros-XXX-image-transport ros-XXX-image-transport*\n```\n**NOTICE:** remember to replace \"XXX\" on above command as your ROS distributions, for example, if your use ROS-kinetic, the command should be:\u003cbr\u003e\n```\nsudo apt-get install ros-kinetic-cv-bridge ros-kinetic-tf ros-kinetic-message-filters ros-kinetic-image-transport*\n```\n### 3.2. **livox_ros_driver**\nFollow this [livox_ros_driver Installation](https://github.com/Livox-SDK/livox_ros_driver).\n\n### 3.3 **CGAL** and **OpenGL**\n```\nsudo apt-get install -y libcgal-dev pcl-tools\nsudo apt-get install -y libgl-dev libglm-dev libglfw3-dev libglew-dev libglw1-mesa-dev \nsudo apt-get install -y libcgal-dev libxkbcommon-x11-dev\n```\n## 4. Build ImMesh on ROS:\nClone this repository and catkin_make:\n```\ncd ~/catkin_ws/src\ngit clone https://github.com/hku-mars/ImMesh.git\ncd ../\ncatkin_make\nsource ~/catkin_ws/devel/setup.bash\n```\n\n## 5. Run our examples\n### 5.1 Solid-state LiDAR (e.g., Livox LiDARs)\nImMesh is capable run with solid-state LiDAR (e.g., Livox-avia form ([r3live_dataset](https://github.com/ziv-lin/r3live_dataset))). \n\nOur example rosbag files for evaluation can be download from our [Google drive](https://drive.google.com/drive/folders/15i-TRa0EA8BCbNdARVqPMDsU9JOlagVF?usp=sharing) or [Baidu-NetDisk [百度网盘]](https://pan.baidu.com/s/1zmVxkcwOSul8oTBwaHfuFg) (code提取码: wwxw). \n\nAfter you have downloaded our bag files, you can now run our example ^_^\n```\nroslaunch ImMesh mapping_avia.launch\nrosbag play YOUR_DOWNLOADED.bag\n``` \n\n### 5.2 Mechanical spinning LiDAR (e.g., Velodyne and Ouster LiDARs)\nImMesh is also capable to mechanical spinning LiDAR (e.g., Velodyne LiDAR form ([KITTI-dataset](https://www.cvlibs.net/datasets/kitti/eval_odometry.php), [NCLT-dataset](https://robots.engin.umich.edu/nclt), and [NTU-VIRAL](https://ntu-aris.github.io/ntu_viral_dataset/) ). \n\nWe also provide some example rosbag files for evaluation (thanks for [KITTI-dataset](https://www.cvlibs.net/datasets/kitti/eval_odometry.php) and  [NCLT-dataset](https://robots.engin.umich.edu/nclt)) , which can be download from our [OneDrive](https://connecthkuhk-my.sharepoint.com/:f:/g/personal/zivlin_connect_hku_hk/EkoRwaDJskVOpeZTetFDQNYBdKwfRYvvHJyncLTM78t13w?e=Tte1Lh).\n\nAfter you have preparation of rosbag files, you can now run our example with:\n\nFor [KITTI-dataset](https://www.cvlibs.net/datasets/kitti/eval_odometry.php):\n```\nroslaunch ImMesh mapping_velody64.launch\nrosbag play YOUR_DOWNLOADED.bag\n``` \n\nFor [NCLT-dataset](https://www.cvlibs.net/datasets/kitti/eval_odometry.php):\n```\nroslaunch ImMesh mapping_nclt.launch\nrosbag play YOUR_DOWNLOADED.bag\n``` \n\nFor [NTU-VIRAL](https://ntu-aris.github.io/ntu_viral_dataset):\n```\nroslaunch ImMesh mapping_ntu_viral.launch\nrosbag play YOUR_DOWNLOADED.bag\n``` \n\n### 5.2 Fast offline mesh reconstruction with given pointcloud file\n\nImMesh can also perform the fast offline mesh reconstruction with given point cloud file (*.pcd). Modified the pointcloud file name in mapping_pointcloud.launch:\n\n```\n# In mapping_pointcloud.launch file:\n\u003cparam name=\"pc_name\" type=\"string\" value=\"YOUR_POINTCLOUD.pcd\" /\u003e\n```\n\nThen, perform the mesh reconstruction with:\n```\nroslaunch ImMesh mapping_pointcloud.launch\n```\n\n## 6. Result and tips.\nIf everything is correct, you will get the result same as the screenshot shown in below:\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/ziv-lin/ImMesh_release/raw/main/pics/ImMesh_gui.jpg\" alt=\"video\" width=\"100%\" /\u003e\n\u003c/div\u003e\n\nWe provide some functions/features/demonstrations in our GUI (implemented based on [ImGUI](https://github.com/ocornut/imgui) ), for example, as listed as below (press \"*F1*\" key for help):\n\n### 6.1 LiDAR pointcloud reinforcement\n\nClick \"*enable*\" checkbox (under the treenode of \"*LiDAR pointcloud reinforcement*\") to toggle realtime real-time depth rasterization and LiDAR pointcloud reinforcement. \n\nTips: You can click the \"*Dynamic configuration*\" checkbox to online dynamic reconfigure the rasterization parameter.\n\n### 6.2 Export the reconstructed mesh result to disk\nImMesh allow you to save the online reconstructed mesh you build at anytime you wanted. \n\nClick the \"*Save Mesh to PLY file*\" button (on the Main windows panel) to export the mesh to PLY file (default save in directory: ${HOME}/ImMesh_output).\n\n### 6.3 Other features\nDue to the space limitation, we are unable to list out all our features on this page. We recommend you to explore our work through GUI interaction by yourself.\n\nI hope you will love and enjoy our work, ImMesh. If you feel like ImMesh has indeed helped in your current research or work, I would greatly appreciate it if you could give a star to this repository or cite our paper in your academic research paper.:)\n\n## Related works\n\nImMesh is building upon the foundations of our previous SLAM works including  [R3LIVE](https://github.com/hku-mars/r3live), [VoxelMap](https://github.com/hku-mars/VoxelMap), [FAST-LIO](https://github.com/hku-mars/FAST_LIO), [R2LIVE](https://github.com/hku-mars/r2live), and [ikd-Tree](https://github.com/hku-mars/ikd-Tree). These works are all available on our GitHub, as listed below:\n\n1. [R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package](https://github.com/hku-mars/r3live)\n2. [VoxelMap: An efficient and probabilistic adaptive(coarse-to-fine) voxel mapping method for 3D LiDAR](https://github.com/hku-mars/VoxelMap)\n3. [FAST-LIO: A computationally efficient and robust LiDAR-inertial odometry (LIO) package](https://github.com/hku-mars/FAST_LIO)\n4. [R2LIVE: a robust, real-time tightly-coupled multi-sensor fusion framework](https://github.com/hku-mars/r2live)\n5. [ikd-Tree: an incremental k-d tree designed for robotic applications](https://github.com/hku-mars/ikd-Tree) \n\n## **Contact us**\n\nWe know our packages might not totally stable in this stage, and we are keep working on improving the performance and reliability of our codes. So, if you have met any bug or problem, please feel free to draw an issue or contact me via email \u003cziv.lin.ljrATgmail.com\u003e and I will respond ASAP.\n\nIf you have any other question about this work, please feel free to contact me via [**www.jiaronglin.com**](https://jiaronglin.com/) and Dr. Fu Zhang \u003cfuzhangAThku.hk\u003e via email.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhku-mars%2Fimmesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhku-mars%2Fimmesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhku-mars%2Fimmesh/lists"}