Giter Site home page Giter Site logo

ros_stereo_ardupilot's Introduction

Scripts for running VINS-GPU/ROS with ArduPilot

This repository contains a ROS workspace for using stereo-visual navigation with ROS and ArduPilot.

The end result is the ability to use non-GPS navigation with ArduPilot, using a stereo camera.

Components

Hardware:

Software:

  • ROS Melodic
  • VINS-GPU Lite
  • MAVROS

How it works

The VINS_Lite_GPU (https://github.com/KopiSoftware/VINS_Lite_GPU) algorithm is used as a ROS module to take in stereo camera images and generate a pose in 3D space. This pose is sent to ArduPilot via MAVROS and the VISION_POSITION_ESTIMATE message. ArduPilot then uses these messages as a non-GPS navigation source.

Note the VINS_Lite_GPU used here is slightly modified from source - adding a odometry message compatible with MAVROS.

It is a "lighter" version of VINS-GPU (https://github.com/pjrambo/VINS-Fusion-gpu) which allows for better realtime performance on a Jetson Nano.

Installation

Follow the instructions at https://www.arducam.com/docs/camera-for-jetson-nano/multiple-cameras-on-the-jetson/how-to-use-stereo-camera-to-perform-location-with-visual-slam/#35-algorithm-related-dependencies-installation, noting the following changes:

  • Use git clone https://github.com/stephendade/Camarray_HAT.git repo in place of git clone -b ov9281_stereo https://github.com/ArduCAM/Camarray_HAT.git
  • Use git clone https://github.com/stephendade/Nvidia_Jetson_ROS_SLAM_VINS.git repo in place of git clone https://github.com/ArduCAM/Nvidia_Jetson_ROS_SLAM_VINS.git
  • Use this repository as your ROS workspace
  • Install MAVROS via sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
  • Use systemctl stop nvgetty && systemctl disable nvgetty on the Jetson and reboot to disable the system console on the UART.

Configure

  • If not using the ArduCAM OV9281 stereo camera, edit jetson.launch to suit your stereo camera setup
  • Edit jetson.launch to point the to appropriate UART or UDP port for MAVROS.

Ardupilot will need the following parameters:

SCHED_LOOP_RATE  250 
VISO_DELAY_MS    150
VISO_ORIENT      0
VISO_POS_M_NSE   0.100000
VISO_POS_X       0.000000
VISO_POS_Y       0.000000
VISO_POS_Z       0.000000
VISO_SCALE       1.000000
VISO_TYPE        2
VISO_VEL_M_NSE   0.010000
VISO_YAW_M_NSE   0.100000

Running

Use launch.sh to run the ROS instance. If using a remote ROS node (for viewing, debugging, etc) edit the IP addresses in launch.sh as required.

When connecting a ground station, ensure the streamrate is 20Hz. This is required for the VINS inertial message (/mavros/imu/data) input.

ros_stereo_ardupilot's People

Contributors

stephendade 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.