Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot
Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot
Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot
Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot
Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot motion_control vision ws_server

Repository Summary

Description ROS 2 implementation of a Teleoperated robot with live video feed using webrtc and SLAM using realsense's stereocameras. Running on a Jetson Nano
Checkout URI https://github.com/jdgalviss/jetbot-ros2.git
VCS Type git
VCS Version main
Last Updated 2021-12-02
Dev Status UNKNOWN
Released UNRELEASED
Tags webrtc ros2 teleoperation cartographer rtabmap jetbot
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
motion_control 0.0.0
vision 0.0.0
ws_server 0.0.0

README

Jetbot-ros2

https://user-images.githubusercontent.com/18732666/129964798-20e26b2a-da38-41fb-a794-ec31973ca0cb.mp4

This is an implementation of a mobile robot in ros2. The software includes the following functionalities:

  • Teleoperation through websockets with live video feed using webrtc (aiortc).

  • Integration of Intel realsense d435 and t265 cameras for depth estimation and localization respectively.

  • Autonomous Navigation using Nav2

  • Autonomous Exploration using m-explore

  • 2D SLAM with slam-toolbox.

  • 3D SLAM using rtabmap.

I used the Xiaor Geek Jetbot as a base platform and modified it to include a wide-angle camera, as well as the Intel Realsense d435 and t265.

rs-viewer

Requirements

Installation

  1. Clone this repo and its submodules.
    git clone --recurse-submodules https://github.com/jdgalviss/jetbot-ros2.git
    
  1. Clone additional thirdparty packages
    1. SLAM-TOOLBOX
        cd jetbot-ros2/dev_ws/src
        git clone -b eloquent-devel git@github.com:stevemacenski/slam_toolbox.git 
        
2. Navigation2
        git clone https://github.com/ros-planning/navigation2.git --branch eloquent-devel
        
3. m-explore
        git clone -b eloquent https://github.com/robo-friends/m-explore-ros2.git
        
4. BehaviorTree.CPP
        git clone https://github.com/BehaviorTree/BehaviorTree.CPP.git
        cd BehaviorTree.CPP
        git checkout 3.5.1
        cd ../..
        
  1. Copy our modified files
    cd thirdparty_files
    source copy_files.sh
    cd ../..
    
<!-- colcon build --packages-select motion_control -->

Teleoperation support

  1. Install aiortc for webrtc support.
    pip3 install crc32c==2.0
    pip3 install aiortc==0.9.28
    pip3 install aiohttp==3.6.2
    
  1. Install pyfakewebcam so that camera frames can be modified inside a ROS2 node and then shared through webrtc:
    apt-get install v4l2loopback-utils
    pip3 install pyfakewebcam==0.1.0
    
  1. Write a service that creates fake webcam devices that can be used to share camera frames.
    gedit /etc/rc.local
    
Copy and paste in file:

```bash

File truncated at 100 lines see the full file

Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot
Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot
Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot
Repo symbol

jetbot-ros2 repository

webrtc ros2 teleoperation cartographer rtabmap jetbot