All Projects → alsora → ros2-ORB_SLAM2

alsora / ros2-ORB_SLAM2

Licence: GPL-3.0 License
ROS2 node wrapping the ORB_SLAM2 library

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to ros2-ORB SLAM2

ARViz
ARViz Project
Stars: ✭ 50 (+21.95%)
Mutual labels:  ros2
navigation2 tutorials
Tutorial code referenced in https://navigation.ros.org/
Stars: ✭ 60 (+46.34%)
Mutual labels:  ros2
raspimouse2
ROS 2 node for Raspberry Pi Mouse
Stars: ✭ 23 (-43.9%)
Mutual labels:  ros2
aztarna
aztarna, a footprinting tool for robots.
Stars: ✭ 85 (+107.32%)
Mutual labels:  ros2
SMACC2
An Event-Driven, Asynchronous, Behavioral State Machine Library for ROS2 (Robotic Operating System) applications written in C++
Stars: ✭ 58 (+41.46%)
Mutual labels:  ros2
SMARTmBOT
The goal of this repository is to introduce a new, customizable, scalable, and fully opensource mobile robot platform, called SMARTmBOT. This repository provides a guide, and all design files and source codes so that you can build your own SMARTmBOT. SMARTmBOT can be useful for studying the basics of robotics, especially mobile robotics. It can …
Stars: ✭ 29 (-29.27%)
Mutual labels:  ros2
aws-robomaker-robotics-curriculum
Introductory robotics curriculum
Stars: ✭ 78 (+90.24%)
Mutual labels:  ros2
rclshark
Tool for ROS 2 IP Discovery + System Monitoring
Stars: ✭ 32 (-21.95%)
Mutual labels:  ros2
scout ros
This repository ROS package is suit for scout 2 and scout mini
Stars: ✭ 30 (-26.83%)
Mutual labels:  ros2
mros2
agent-less and lightweight communication library compatible with rclcpp for embedded devices
Stars: ✭ 72 (+75.61%)
Mutual labels:  ros2
NuttX
Official micro-ROS RTOS
Stars: ✭ 63 (+53.66%)
Mutual labels:  ros2
zenoh-plugin-dds
A zenoh plug-in that allows to transparently route DDS data. This plugin can be used by DDS applications, such as ROS2 robotic applications and others, to leverage the zenoh for geographical routing or for better scaling discovery.
Stars: ✭ 60 (+46.34%)
Mutual labels:  ros2
linorobot2
Autonomous mobile robots (2WD, 4WD, Mecanum Drive)
Stars: ✭ 97 (+136.59%)
Mutual labels:  ros2
rmoss contrib
RoboMaster OSS中的基础项目,为RoboMaster提供任务级功能模块包,如自动瞄准模块,能量机关模块等。
Stars: ✭ 13 (-68.29%)
Mutual labels:  ros2
trac ik
ROS 2 port of `trac_ik`, an alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL.
Stars: ✭ 14 (-65.85%)
Mutual labels:  ros2
openvslam
This is a community fork of OpenVSLAM (https://github.com/xdspacelab/openvslam)
Stars: ✭ 422 (+929.27%)
Mutual labels:  visual-slam
ros-gst-bridge
a bidirectional ros to gstreamer bridge and utilities for dynamic pipelines
Stars: ✭ 46 (+12.2%)
Mutual labels:  ros2
ROS
ROS机器人操作系统 学习(写于2020年夏)
Stars: ✭ 102 (+148.78%)
Mutual labels:  ros2
TX2 StereoSLAM
🍀 Develop a SLAM algorithm based on ORB_SLAM2 along with TX2、ZED2、ROS and a mobile platform
Stars: ✭ 21 (-48.78%)
Mutual labels:  visual-slam
zhe
Lighter-than-air, peer-to-peer, bounded, non-blocking, non-threaded, etc., publish-subscribe networking
Stars: ✭ 44 (+7.32%)
Mutual labels:  ros2

ros2-ORB_SLAM2

ROS2 node wrapping the ORB_SLAM2 library

If you want to integrate ORB_SLAM2 inside your ROS2 system, consider trying this fork of ORB_SLAM2 library which drops Pangolin dependency and streams all SLAM data through ROS2 topics.

Requirements

Note: The vision_opencv package requires OpenCV3. Make sure to build ORB_SLAM2 with the same OpenCV version otherwise strange run errors could appear.

The message_filters package is not required if you want to use only the Monocular SLAM node.

Build

This repository contains a Dockerfile providing an Ubuntu environment with this package and all its dependencies already installed. In order to use it:

$ cd docker
$ bash build.sh
$ bash run.sh

Otherwise you can build the package on your system. If you built ORB_SLAM2 following the instructions provided in its repository, you will have to tell CMake where to find it by exporting an environment variable that points to the cloned repository (as the library and include files will be in there).

$ export ORB_SLAM2_ROOT_DIR=/path/to/ORB_SLAM2

Then you can build this package

$ mkdir -p ws/src
$ cd ws/src
$ git clone https://github.com/alsora/ros2-ORB_SLAM2
$ cd ..
$ colcon build

Usage

First source the workspace

$ source ws/install/setup.sh

Then add to the LD_LIBRARY_PATH the location of ORB_SLAM2 library and its dependencies (the following paths may be different on your machine)

$ export LD_LIBRARY_PATH=~/Pangolin/build/src/:~/ORB_SLAM2/Thirdparty/DBoW2/lib:~/ORB_SLAM2/Thirdparty/g2o/lib:~/ORB_SLAM2/lib:$LD_LIBRARY_PATH

Run the monocular SLAM node

$ ros2 run ros2_orbslam mono PATH_TO_VOCABULARY PATH_TO_YAML_CONFIG_FILE

You can find the vocabulary file in the ORB_SLAM2 repository (e.g. ORB_SLAM2/Vocabulary/ORBvoc.txt), while the config file can be found within this repo (e.g. ros2-ORB_SLAM2/src/monocular/TUM1.yaml for monocular SLAM).

This node subscribes to the ROS2 topic camera and waits for Image messages. For example you can stream frames from your laptop webcam using:

$ ros2 run image_tools cam2image -t camera

The other nodes can be run in a very similar way.

You can run the rgbd node by using

$ ros2 run ros2_orbslam rgbd PATH_TO_VOCABULARY PATH_TO_YAML_CONFIG_FILE

You can run the stereo node by using

$ ros2 run ros2_orbslam stereo PATH_TO_VOCABULARY PATH_TO_YAML_CONFIG_FILE BOOL_RECTIFY
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].