C++ Slam

Open-source C++ projects categorized as Slam | Edit details

Top 13 C++ Slam Projects

  • GitHub repo maplab

    An open visual-inertial mapping framework.

    Project mention: DARPA SubT Challenge Final Results Announced | reddit.com/r/robotics | 2021-09-26

    I haven't had a chance to look at the data in detail, but I assume you're talking about the flip-flopping of some clouds from one of the ANYmals? We use a centralized mapping framework called MapLab which tries to optimally align the maps of all robots and generate a single consistent map. Map optimization is totally out of my domain, but I suspect a few bad constraints caused the optimization to oscillate between two local minima. It gave the operator a heart attack at the time, but its a fairly common occurrence before the process is complete, and fortunately it all got worked out.

  • GitHub repo rtabmap

    RTAB-Map library and standalone application

    Project mention: Need some help with SLAM and mapping with LIDAR | reddit.com/r/robotics | 2021-08-07

    For your application rtabmap would be a good starting point I think. (You don't really need ROS either for rtabmap) http://introlab.github.io/rtabmap/

  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo MRPT

    :zap: The Mobile Robot Programming Toolkit (MRPT)

  • GitHub repo open_vins

    An open source platform for visual-inertial navigation research.

    Project mention: Sfm or slam pseudo code | reddit.com/r/computervision | 2021-04-23

    Check out open vins. Its an implementation of the vins slam project. https://github.com/rpng/open_vins

  • GitHub repo xivo

    X Inertial-aided Visual Odometry

    Project mention: Unsupervised Depth Completion from Visual Inertial Odometry | news.ycombinator.com | 2021-08-30

    Hey there, interested in camera and range sensor fusion for point cloud (depth) completion?

    Here is an extended version of our [talk](https://www.youtube.com/watch?v=oBCKO4TH5y0) at ICRA 2020 where we do a step by step walkthrough of our paper Unsupervised Depth Completion from Visual Inertial Odometry (joint work with Fei Xiaohan, Stephanie Tsuei, and Stefano Soatto).

    In this talk, we present an unsupervised method (no need for human supervision/annotations) for learning to recover dense point clouds from images, captured by cameras, and sparse point clouds, produced by lidar or tracked by visual inertial odometry (VIO) systems. To illustrate what I mean, here is an [example](https://github.com/alexklwong/unsupervised-depth-completion-visual-inertial-odometry/blob/master/figures/void_teaser.gif?raw=true) of the point clouds produced by our method.

    Our method is light-weight (so you can run it on your computer!) and is built on top of [XIVO] (https://github.com/ucla-vision/xivo) our VIO system.

    For those interested here are links to the [paper](https://arxiv.org/pdf/1905.08616.pdf), [code](https://github.com/alexklwong/unsupervised-depth-completion-visual-inertial-odometry) and the [dataset](https://github.com/alexklwong/void-dataset) we collected.

  • GitHub repo CppRobotics

    Header-only C++ library for robotics, control, and path planning algorithms. Work in progress, contributions are welcome!

    Project mention: Should I rename CppRobotics to Control++? | reddit.com/r/ControlTheory | 2021-09-28

    I even opened an issue about this, so feel free to post your ideas there.

  • GitHub repo SuperPoint_SLAM

    SuperPoint + ORB_SLAM2

    Project mention: Complete Open Source Deep Learning Implementations For V-SLAM | reddit.com/r/computervision | 2021-01-31

    As you've mentioned, there are many papers on deep local feature extraction, like SuperPoint and R2D2. If you wish to use them in SLAM, you can simply replace the feature extraction module in the existing SLAM system with the deep local feature method. An example is shown here - this system uses SuperPoint as local features instead of ORB features in the original ORB-SLAM 2 pipeline. https://github.com/KinglittleQ/SuperPoint_SLAM

  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo pangolin

    Python binding of 3D visualization library Pangolin

    Project mention: Looking for visualization libraries for a SLAM system | reddit.com/r/computervision | 2021-01-01
  • GitHub repo turtlebot3_simulations

    Simulations for TurtleBot3

    Project mention: ROS NodeHandles : nh_ vs nh_priv_ | reddit.com/r/ROS | 2021-06-28

    1) What exactly is a Nodehandle? Why are they only in C++ and not in Python? 2) In many C++ header files of a ROS package (for example this one), I have seen people declaring 2 NodeHandles namely, nh_ and nh_priv_. Why are there 2 NodeHandles in the same code and what does the underscore _ at the end of both the identifiers mean? Would like to know about these in more detail, resources would be amazing to get. Help is appreciated, TIA

  • GitHub repo Nox_robot

    Nox robot project

    Project mention: Self-Made-Robot: Review Robots Projects | dev.to | 2021-03-21
  • GitHub repo zed-ros2-wrapper

    ROS 2 wrapper beta for the ZED SDK

    Project mention: How to build ZED 2i Camera x ROS2 Foxy x Nvidia Jetson x Ubuntu 18.04 via Docker | dev.to | 2021-09-15

    # Based on https://gitlab.com/nvidia/container-images/l4t-base/-/blob/master/Dockerfile.l4t # https://github.com/dusty-nv/jetson-containers/blob/master/Dockerfile.ros.foxy # https://github.com/codustry/jetson-containers/blob/master/Dockerfile.ros.foxy ARG L4T_MINOR_VERSION=5.0 FROM codustry/ros:foxy-ros-base-l4t-r32.${L4T_MINOR_VERSION} # # ZED Jetson # https://github.com/stereolabs/zed-docker/blob/master/3.X/jetpack_4.X/devel/Dockerfile # ARG ZED_SDK_MAJOR=3 ARG ZED_SDK_MINOR=5 ARG JETPACK_MAJOR=4 ARG JETPACK_MINOR=5 #This environment variable is needed to use the streaming features on Jetson inside a container ENV LOGNAME root ENV DEBIAN_FRONTEND noninteractive RUN apt-get update -y && apt-get install --no-install-recommends lsb-release wget less udev sudo apt-transport-https build-essential cmake openssh-server libv4l-0 libv4l-dev v4l-utils binutils xz-utils bzip2 lbzip2 curl ca-certificates libegl1 python3 -y && \ echo "# R32 (release), REVISION: 5.0" > /etc/nv_tegra_release ; \ wget -q --no-check-certificate -O ZED_SDK_Linux_JP.run https://download.stereolabs.com/zedsdk/${ZED_SDK_MAJOR}.${ZED_SDK_MINOR}/jp${JETPACK_MAJOR}${JETPACK_MINOR}/jetsons && \ chmod +x ZED_SDK_Linux_JP.run ; ./ZED_SDK_Linux_JP.run silent skip_tools && \ rm -rf /usr/local/zed/resources/* \ rm -rf ZED_SDK_Linux_JP.run && \ rm -rf /var/lib/apt/lists/* #This symbolic link is needed to use the streaming features on Jetson inside a container RUN ln -sf /usr/lib/aarch64-linux-gnu/tegra/libv4l2.so.0 /usr/lib/aarch64-linux-gnu/libv4l2.so # # Configure Enviroment for ROS RUN echo 'source /opt/ros/foxy/install/setup.bash' >> ~/.bashrc # RUN echo "source /opt/ros/eloquent/setup.bash" >> ~/.bashrc RUN echo 'source /usr/share/colcon_cd/function/colcon_cd.sh' >> ~/.bashrc # RUN echo "export _colcon_cd_root=~/ros2_install" >> ~/.bashrc # echo $LD_LIBRARY_PATH RUN echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.2/targets/aarch64-linux/lib/stubs:/opt/ros/foxy/install/lib' >> ~/.bashrc WORKDIR /root/Downloads RUN wget https://developer.nvidia.com/embedded/L4T/r32_Release_v5.0/T186/Tegra186_Linux_R32.5.0_aarch64.tbz2 RUN tar xf Tegra186_Linux_R32.5.0_aarch64.tbz2 RUN cd Linux_for_Tegra && \ sed -i 's/config.tbz2\"/config.tbz2\" --exclude=etc\/hosts --exclude=etc\/hostname/g' apply_binaries.sh && \ sed -i 's/install --owner=root --group=root \"${QEMU_BIN}\" \"${L4T_ROOTFS_DIR}\/usr\/bin\/\"/#install --owner=root --group=root \"${QEMU_BIN}\" \"${L4T_ROOTFS_DIR}\/usr\/bin\/\"/g' nv_tegra/nv-apply-debs.sh && \ sed -i 's/LC_ALL=C chroot . mount -t proc none \/proc/ /g' nv_tegra/nv-apply-debs.sh && \ sed -i 's/umount ${L4T_ROOTFS_DIR}\/proc/ /g' nv_tegra/nv-apply-debs.sh && \ sed -i 's/chroot . \// /g' nv_tegra/nv-apply-debs.sh && \ ./apply_binaries.sh -r / --target-overlay RUN rm -rf Tegra210_Linux_R32.4.4_aarch64.tbz2 && \ rm -rf Linux_for_Tegra && \ echo "/usr/lib/aarch64-linux-gnu/tegra" > /etc/ld.so.conf.d/nvidia-tegra.conf && ldconfig WORKDIR /usr/local/zed ENV CUDA_HOME=/usr/local/cuda WORKDIR /root/ros2_ws/src/ RUN source /opt/ros/foxy/install/setup.bash && cd ../ && colcon build --symlink-install RUN git clone https://github.com/stereolabs/zed-ros2-wrapper.git RUN git clone https://github.com/ros/diagnostics.git && cd diagnostics && git checkout foxy WORKDIR /root/ros2_ws RUN source /opt/ros/foxy/install/setup.bash && source $(pwd)/install/local_setup.bash && rosdep update && \ rosdep install --from-paths src --ignore-src -r --rosdistro ${ROS_DISTRO} -y && \ colcon build --symlink-install --cmake-args " -DCMAKE_BUILD_TYPE=Release" " -DCMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs" " -DCUDA_CUDART_LIBRARY=/usr/local/cuda/lib64/stubs" " -DCMAKE_CXX_FLAGS='-Wl,--allow-shlib-undefined'" && \ echo source $(pwd)/install/local_setup.bash >> ~/.bashrc && \ source ~/.bashrc

  • GitHub repo Vortex-AUV

    Vortex AUV software. Purpose built for competing in AUV/ROV competitions.

    Project mention: Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners | reddit.com/r/rust | 2021-02-08

    u/Khay_ That would be awesome, you are very much welcome to contribute :) I have a lot of thoughts and ideas for the project, but haven't mapped it out yet. What if I tried to set up a backlog for the project as chronological steps and some overall goals, and you can have a look? I have done something similar in the past, but only for an autonomous underwater vehicle written in C++ and Python using ROS (have a look here), and learned a lot from that. I would like to create something similar, but I know a lot of things that can improve from the past architecture.

  • GitHub repo tello-ros2

    ROS2 node for DJI Tello and Visual SLAM for mapping of indoor environments.

    Project mention: Tello ROS2 driver (w/ drone control, video, imu, battery, etc) | reddit.com/r/TelloDrones | 2021-05-19
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-09-28.


What are some of the best open-source Slam projects in C++? This list will help you:

Project Stars
1 maplab 1,691
2 rtabmap 1,610
3 MRPT 1,318
4 open_vins 993
5 xivo 598
6 CppRobotics 274
7 SuperPoint_SLAM 217
8 pangolin 193
9 turtlebot3_simulations 141
10 Nox_robot 58
11 zed-ros2-wrapper 40
12 Vortex-AUV 31
13 tello-ros2 8
Find remote jobs at our new job board 99remotejobs.com. There are 37 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives