Giter VIP home page Giter VIP logo

position-control-using-orbslam2-on-the-jetson-nano's Introduction

Autonomous drone using ORBSLAM2 on the Jetson Nano

Run ORBSLAM2 on the Jetson Nano, using recorded rosbags (e.g., EUROC) or live footage from a Bebop2 Drone. Tested with Monocular camera in real time - https://www.youtube.com/watch?v=nSu7ru0SKbI&feature=youtu.be

The first part of the repo is based on the work of Thien Nguyen (hoangthien94)

Prerequisite

  • Start with a fresh flash for Jetson Nano.

Installation

  1. source /opt/ros/melodic/setup.bash
  2. export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/your_comp/ORB_SLAM2_CUDA/Examples/ROS

Running OrbSLAM2 on the EUROC dataset:

Add the euroc.yaml configuration file from the EUROC dataset to:

~/ORB_SLAM2_CUDA/Examples/ROS/ORB_SLAM2_CUDA/conf

Change the ros_mono.launch in the original repo to the file in this repo.

Then, type the following commands in a terminal:

  1. sudo jetson_clocks
  2. roslaunch ~/ORB_SLAM2_CUDA/Examples/ROS/ORB_SLAM2_CUDA/launch/ros_mono.launch bUseViewer:=true
  3. rosbag play bag file (the bagfile is from EUROC)

Running OrbSLAM2 with the Bebop2 camera's video feed:

(See this link for additional help: https://forum.developer.parrot.com/t/sdk3-build-error/3274/3 )

Copy the bebop.yaml file from this repo to:

~/ORB_SLAM2_CUDA/Examples/ROS/ORB_SLAM2_CUDA/conf

Change the bebop_ros_mono.launch in the original repo to the file in this repo.

Then, type the following commands in a terminal:

  1. sudo jetson_clocks
  2. connect to bebop wifi
  3. roslaunch ~/bebop_ws/src/bebop_autonomy/bebop_driver/launch/bebop_node.launch
  4. roslaunch ~/ORB_SLAM2_CUDA/Examples/ROS/ORB_SLAM2_CUDA/launch/bebop_ros_mono.launch bUseViewer:=true (now, check the slam manually by moving drone around in your hand)

Close loop position control using the OrbSLAM2's pose as feedback:

Add the drone_control ros package from this repo to the src directory of bebop_ws, and build.

From now on please be very cautious

  1. In a terminal type: roslaunch ~/bebop_ws/src/drone_control_fb_slam/launch/drone_bebop_control.launch this will make the drone hover in one place using it's own OF and height sensors
  2. In a terminal type: rostopic pub --once /bebop/state_change std_msgs/Bool "data: true" this will make the drone hover in one place using the SLAM's pose
  3. To land the drone, rostopic pub --once /bebop/land std_msgs/Empty

position-control-using-orbslam2-on-the-jetson-nano's People

Contributors

mandelyoni avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.