{"id":19855118,"url":"https://github.com/leggedrobotics/elevation_mapping_cupy","last_synced_at":"2025-05-15T05:07:52.357Z","repository":{"id":37810537,"uuid":"473697880","full_name":"leggedrobotics/elevation_mapping_cupy","owner":"leggedrobotics","description":"Elevation Mapping on GPU.","archived":false,"fork":false,"pushed_at":"2025-05-09T13:01:25.000Z","size":25324,"stargazers_count":625,"open_issues_count":35,"forks_count":133,"subscribers_count":38,"default_branch":"main","last_synced_at":"2025-05-09T14:22:29.177Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leggedrobotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2022-03-24T17:00:25.000Z","updated_at":"2025-05-08T11:25:23.000Z","dependencies_parsed_at":"2024-01-17T16:49:06.323Z","dependency_job_id":"85271515-fc56-44c8-a83b-745b52da58c2","html_url":"https://github.com/leggedrobotics/elevation_mapping_cupy","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Felevation_mapping_cupy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Felevation_mapping_cupy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Felevation_mapping_cupy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Felevation_mapping_cupy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leggedrobotics","download_url":"https://codeload.github.com/leggedrobotics/elevation_mapping_cupy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276447,"owners_count":22043867,"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":[],"created_at":"2024-11-12T14:11:45.413Z","updated_at":"2025-05-15T05:07:47.347Z","avatar_url":"https://github.com/leggedrobotics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elevation Mapping cupy\n\n![python tests](https://github.com/leggedrobotics/elevation_mapping_cupy/actions/workflows/python-tests.yml/badge.svg)\n\n[Documentation](https://leggedrobotics.github.io/elevation_mapping_cupy/)\n\n## Overview\n\nThe Elevaton Mapping CuPy software package represents an advancement in robotic navigation and locomotion.\nIntegrating with the Robot Operating System (ROS) and utilizing GPU acceleration, this framework enhances point cloud registration and ray casting,\ncrucial for efficient and accurate robotic movement, particularly in legged robots.\n![screenshot](docs/media/main_repo.png)\n![screenshot](docs/media/main_mem.png)\n![gif](docs/media/convex_approximation.gif)\n\n## Key Features\n\n- **Height Drift Compensation**: Tackles state estimation drifts that can create mapping artifacts, ensuring more accurate terrain representation.\n\n- **Visibility Cleanup and Artifact Removal**: Raycasting methods and an exclusion zone feature are designed to remove virtual artifacts and correctly interpret overhanging obstacles, preventing misidentification as walls.\n\n- **Learning-based Traversability Filter**: Assesses terrain traversability using local geometry, improving path planning and navigation.\n\n- **Versatile Locomotion Tools**: Incorporates smoothing filters and plane segmentation, optimizing movement across various terrains.\n\n- **Multi-Modal Elevation Map (MEM) Framework**: Allows seamless integration of diverse data like geometry, semantics, and RGB information, enhancing multi-modal robotic perception.\n\n- **GPU-Enhanced Efficiency**: Facilitates rapid processing of large data structures, crucial for real-time applications.\n\n## Overview\n\n![Overview of multi-modal elevation map structure](docs/media/overview.png)\n\nOverview of our multi-modal elevation map structure. The framework takes multi-modal images (purple) and multi-modal (blue) point clouds as\ninput. This data is input into the elevation map by first associating the data to the cells and then fused with different fusion algorithms into the various\nlayers of the map. Finally the map can be post-processed with various custom plugins to generate new layers (e.g. traversability) or process layer for\nexternal components (e.g. line detection).\n\n## Citing\n\nIf you use the Elevation Mapping CuPy, please cite the following paper:\nElevation Mapping for Locomotion and Navigation using GPU\n\n[Elevation Mapping for Locomotion and Navigation using GPU](https://arxiv.org/abs/2204.12876)\n\nTakahiro Miki, Lorenz Wellhausen, Ruben Grandia, Fabian Jenelten, Timon Homberger, Marco Hutter  \n\n```bibtex\n@inproceedings{miki2022elevation,\n  title={Elevation mapping for locomotion and navigation using gpu},\n  author={Miki, Takahiro and Wellhausen, Lorenz and Grandia, Ruben and Jenelten, Fabian and Homberger, Timon and Hutter, Marco},\n  booktitle={2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},\n  pages={2273--2280},\n  year={2022},\n  organization={IEEE}\n}\n```\n\n[MEM: Multi-Modal Elevation Mapping for Robotics and Learning](https://arxiv.org/abs/2309.16818v1)\n\nGian Erni, Jonas Frey, Takahiro Miki, Matias Mattamala, Marco Hutter\n\n```bibtex\n@inproceedings{erni2023mem,\n  title={MEM: Multi-Modal Elevation Mapping for Robotics and Learning},\n  author={Erni, Gian and Frey, Jonas and Miki, Takahiro and Mattamala, Matias and Hutter, Marco},\n  booktitle={2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},\n  pages={11011--11018},\n  year={2023},\n  organization={IEEE}\n}\n```\n\n## Quick instructions to run\n\n### Installation\n\nFirst, clone to your catkin_ws\n\n```zsh\nmkdir -p catkin_ws/src\ncd catkin_ws/src\ngit clone https://github.com/leggedrobotics/elevation_mapping_cupy.git\n```\n\nThen install dependencies.\nYou can also use docker which already install all dependencies.\nWhen you run the script it should pull the image.\n\n```zsh\ncd docker\n./run.sh\n```\n\nYou can also build locally by running `build.sh`, but in this case change `IMAGE_NAME` in `run.sh` to `elevation_mapping_cupy:latest`.\n\nFor more information, check [Document](https://leggedrobotics.github.io/elevation_mapping_cupy/getting_started/installation.html)\n\n### Build package\n\nInside docker container.\n\n```zsh\ncd $HOME/catkin_ws\ncatkin build elevation_mapping_cupy\ncatkin build convex_plane_decomposition_ros  # If you want to use plane segmentation\ncatkin build semantic_sensor  # If you want to use semantic sensors\n```\n\n### Run turtlebot example\n\n![Elevation map examples](docs/media/turtlebot.png)\n\n```bash\nexport TURTLEBOT3_MODEL=waffle\nroslaunch elevation_mapping_cupy turtlesim_simple_example.launch\n```\n\nFor fusing semantics into the map such as rgb from a multi modal pointcloud:\n\n```bash\nexport TURTLEBOT3_MODEL=waffle\nroslaunch elevation_mapping_cupy turtlesim_semantic_pointcloud_example.launch\n```\n\nFor fusing semantics into the map such as rgb semantics or features from an image:\n\n```bash\nexport TURTLEBOT3_MODEL=waffle\nroslaunch elevation_mapping_cupy turtlesim_semantic_image_example.launch\n```\n\nFor plane segmentation:\n\n```bash\ncatkin build convex_plane_decomposition_ros\nexport TURTLEBOT3_MODEL=waffle\nroslaunch elevation_mapping_cupy turtlesim_plane_decomposition_example.launch\n```\n\nTo control the robot with a keyboard, a new terminal window needs to be opened.\nThen run\n\n```bash\nexport TURTLEBOT3_MODEL=waffle\nroslaunch turtlebot3_teleop turtlebot3_teleop_key.launch\n```\n\nVelocity inputs can be sent to the robot by pressing the keys `a`, `w`, `d`, `x`. To stop the robot completely, press `s`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Felevation_mapping_cupy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleggedrobotics%2Felevation_mapping_cupy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Felevation_mapping_cupy/lists"}