mad-icp


Namemad-icp JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryIt Is All About Matching Data -- Robust and Informed LiDAR Odometry
upload_time2024-06-11 10:18:13
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords lidar
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
    <a href="https://github.com/rvp-group/mad-icp/actions/workflows/pythonbuild.yml"><img src="https://github.com/rvp-group/mad-icp/actions/workflows/pythonbuild.yml/badge.svg"/></a>
    <h1>MAD-ICP</h1>
    <h3>It Is All About Matchign Data -- Robust and Informed LiDAR Odometry</h3>
    <h3>
        <a href="https://github.com/rvp-group/mad-icp/blob/main/paper_with_supplementary.pdf">Preprint</a>
    </h3>
    <div align="center">
        <a href="https://github.com/rvp-group/mad-icp"><img src="https://github.com/rvp-group/mad-icp/blob/main/mad-icp.gif?raw=true"/></a>   
    </div>
    <br />   
</div>

# :gift: Install 
You can download MAD-ICP using pip
```bash
pip install mad-icp
```

# :rocket: Usage

We provide a Python launcher for Rosbag1, Rosbag2, and KITTI binary formats. The dataset configuration file is important for the sensor characteristics and extrinsic information (typically, ground truths are not expressed in the LiDAR frame). 

The internal parameters are in `configurations/params.cfg`. All the experiments have been run with this same set.
To run the pipeline, choose the appropriate dataset configuration file (`kitti.cfg`for this example) and type:
```bash
cd mad-icp/
mad_icp --data-path /input_dir/ \
        --estimate-path /output_dir/ \
        --dataset-config mad-icp/configurations/datasets/kitti.cfg \
        --mad-icp-config mad-icp/configurations/params.cfg
```
Our runner directly saves the odometry estimate file in KITTI format (homogenous matrix row-major 12 scalars); soon, we will provide more available formats like TUM.

Our pipeline is `anytime realtime`! You can play with parameters `num_keyframes` and `num_cores` and, if you have enough _computation capacity_, we suggest increasing these (we run demo/experiments with `num_keyframes=16` and `num_cores=16`).

# :hammer: Building 

Building is tested by our CI/CD pipeline for Ubuntu 20.04 and Ubuntu 22.04 (using g++).

The following external dependencies are required.
| Dependency   | Version(s) known to work |
| ------------ | ------------------------ |
| [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) | 3.3 |
| [OpenMP](https://www.openmp.org/) |  |
| [pybind11](https://pybind11.readthedocs.io/en/stable/) |  |
| [yaml](https://github.com/jbeder/yaml-cpp) (optional for C++ apps) |  |

If your system lacks any dependency (except for `OpenMP`) we download local copies using `FetchContent`.
If you want to build and install the package, assuming you're inside the repository, you can use `pip` as follows:
```bash
pip install .
```
Moreover, you can build the C++ library (along with the pybinds) by typing:
```bash
mkdir build && cd build && cmake ../mad_icp && make -j8
```

## :godmode: Building and Running C++ Apps \[Optional\]
If you want to avoid Python, we provide the `bin_runner` C++ executable (located in `mad_icp/apps/cpp_runners/bin_runner.cpp`) that accepts binary cloud format (KITTI, Mulran, etc.).
You can build the executable using
```bash
mkdir build && cd build && cmake -DCOMPILE_CPP_APPS=ON ../mad_icp && make -j
```
And run
```bash
cd build/apps/cpp_runners
./bin_runner -data_path /path_to_bag_folder/ \
             -estimate_path /path_to_estimate_folder/ \
             -dataset_config ../../../mad_icp/configurations/datasets/kitti.cfg \
             -mad_icp_config ../../../mad_icp/configurations/params.cfg 
```
>[!IMPORTANT]
 >If running on the KITTI dataset, enable the flag `-kitti` for KITTI scan correction (not documented anywhere). We do not (currently) provide a viewer for this executable. 

# :pencil: What is missing?
- ROS/ROS2 optional dependencies

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mad-icp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "LiDAR",
    "author": null,
    "author_email": "Simone Ferrari <s.ferrari@diag.uniroma1.it>, Luca Di Giammarino <digiammarino@diag.uniroma1.it>, Leonardo Brizi <brizi@diag.uniroma1.it>, Emanuele Giacomini <giacomini@diag.uniroma1.it>",
    "download_url": "https://files.pythonhosted.org/packages/b8/fc/cdbd110bf7e0b071cd30b87d249f03d73bdfaee88f4bd652c103fb144edf/mad_icp-0.0.2.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n    <a href=\"https://github.com/rvp-group/mad-icp/actions/workflows/pythonbuild.yml\"><img src=\"https://github.com/rvp-group/mad-icp/actions/workflows/pythonbuild.yml/badge.svg\"/></a>\n    <h1>MAD-ICP</h1>\n    <h3>It Is All About Matchign Data -- Robust and Informed LiDAR Odometry</h3>\n    <h3>\n        <a href=\"https://github.com/rvp-group/mad-icp/blob/main/paper_with_supplementary.pdf\">Preprint</a>\n    </h3>\n    <div align=\"center\">\n        <a href=\"https://github.com/rvp-group/mad-icp\"><img src=\"https://github.com/rvp-group/mad-icp/blob/main/mad-icp.gif?raw=true\"/></a>   \n    </div>\n    <br />   \n</div>\n\n# :gift: Install \nYou can download MAD-ICP using pip\n```bash\npip install mad-icp\n```\n\n# :rocket: Usage\n\nWe provide a Python launcher for Rosbag1, Rosbag2, and KITTI binary formats. The dataset configuration file is important for the sensor characteristics and extrinsic information (typically, ground truths are not expressed in the LiDAR frame). \n\nThe internal parameters are in `configurations/params.cfg`. All the experiments have been run with this same set.\nTo run the pipeline, choose the appropriate dataset configuration file (`kitti.cfg`for this example) and type:\n```bash\ncd mad-icp/\nmad_icp --data-path /input_dir/ \\\n        --estimate-path /output_dir/ \\\n        --dataset-config mad-icp/configurations/datasets/kitti.cfg \\\n        --mad-icp-config mad-icp/configurations/params.cfg\n```\nOur runner directly saves the odometry estimate file in KITTI format (homogenous matrix row-major 12 scalars); soon, we will provide more available formats like TUM.\n\nOur pipeline is `anytime realtime`! You can play with parameters `num_keyframes` and `num_cores` and, if you have enough _computation capacity_, we suggest increasing these (we run demo/experiments with `num_keyframes=16` and `num_cores=16`).\n\n# :hammer: Building \n\nBuilding is tested by our CI/CD pipeline for Ubuntu 20.04 and Ubuntu 22.04 (using g++).\n\nThe following external dependencies are required.\n| Dependency   | Version(s) known to work |\n| ------------ | ------------------------ |\n| [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) | 3.3 |\n| [OpenMP](https://www.openmp.org/) |  |\n| [pybind11](https://pybind11.readthedocs.io/en/stable/) |  |\n| [yaml](https://github.com/jbeder/yaml-cpp) (optional for C++ apps) |  |\n\nIf your system lacks any dependency (except for `OpenMP`) we download local copies using `FetchContent`.\nIf you want to build and install the package, assuming you're inside the repository, you can use `pip` as follows:\n```bash\npip install .\n```\nMoreover, you can build the C++ library (along with the pybinds) by typing:\n```bash\nmkdir build && cd build && cmake ../mad_icp && make -j8\n```\n\n## :godmode: Building and Running C++ Apps \\[Optional\\]\nIf you want to avoid Python, we provide the `bin_runner` C++ executable (located in `mad_icp/apps/cpp_runners/bin_runner.cpp`) that accepts binary cloud format (KITTI, Mulran, etc.).\nYou can build the executable using\n```bash\nmkdir build && cd build && cmake -DCOMPILE_CPP_APPS=ON ../mad_icp && make -j\n```\nAnd run\n```bash\ncd build/apps/cpp_runners\n./bin_runner -data_path /path_to_bag_folder/ \\\n             -estimate_path /path_to_estimate_folder/ \\\n             -dataset_config ../../../mad_icp/configurations/datasets/kitti.cfg \\\n             -mad_icp_config ../../../mad_icp/configurations/params.cfg \n```\n>[!IMPORTANT]\n >If running on the KITTI dataset, enable the flag `-kitti` for KITTI scan correction (not documented anywhere). We do not (currently) provide a viewer for this executable. \n\n# :pencil: What is missing?\n- ROS/ROS2 optional dependencies\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "It Is All About Matching Data -- Robust and Informed LiDAR Odometry",
    "version": "0.0.2",
    "project_urls": {
        "Homepage": "https://github.com/rvp-group/mad-icp"
    },
    "split_keywords": [
        "lidar"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b8fccdbd110bf7e0b071cd30b87d249f03d73bdfaee88f4bd652c103fb144edf",
                "md5": "f415c6ed8f351ca46de6e0b52040285e",
                "sha256": "25f68e3583bfba8ade1b97b1f2e4dd37e9349744a7adb040aac1005bed1667a1"
            },
            "downloads": -1,
            "filename": "mad_icp-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "f415c6ed8f351ca46de6e0b52040285e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 19367115,
            "upload_time": "2024-06-11T10:18:13",
            "upload_time_iso_8601": "2024-06-11T10:18:13.844995Z",
            "url": "https://files.pythonhosted.org/packages/b8/fc/cdbd110bf7e0b071cd30b87d249f03d73bdfaee88f4bd652c103fb144edf/mad_icp-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-11 10:18:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rvp-group",
    "github_project": "mad-icp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mad-icp"
}
        
Elapsed time: 0.61474s