Code Monkey home page Code Monkey logo

djibote's Introduction

DJIBote

DJIBote is a interface between DJI consumer drones and ROS, enabling sensoring and controlling through a network using any ROS package.

Requirements

  • Ubuntu 16.04 installation
  • ROS Kinetic
  • Android Studio 2.0+
  • Android System 4.1+
  • DJI Android SDK 4.3.2
  • Tested with DJI Spark only

How To Use | Usage

As it is now, the setup is a little complicated:

  1. Connect Android phone to computer using USB cable.

  2. Install the app on the phone using Android Studio.

  3. Turn drone on, connect to its Wi-Fi and press connect in the app.

  4. Run roscore in a computer.

  5. Turn USB tethering on, go to a terminal and search for the assigned IP (it'll be the usb0 connection). It's important to say that your firewall settings need to enable connections in some ports (11311 used to connection and I need to see what others) or it won't work. --- If you want to use in the android emulator (no ROS support until now) the IP used should be: 10.0.2.2:11311

  6. At ROS connection activity set the master IP to http://tetheredAssignedIP:11311/ and click connect.

  7. From this moment on you'll see the drone live feed at screen and all available topics published in ROS.

How It Works

This Android app is created using dji-android SDK and rosAndroid. It works sending messages through both of these services to make drone sensor states available in topics at the computer and messages sent do some ROS topics arrive as commands to the drone.

Current stage of development:

This project is in it's initial stages and until now the only implemented features are:

  • Drone parameters (as heading, position and others) are visible in topics at the master computer

The next features to be implemented are:

  • Make camera feed available in a topic
  • Implement drone controls in app
  • Control drone from messages sent to a /cmd_vel topic
  • Give higher priority to controls in phone screen than in ROS

Contribution

That's my very first program in Java or Android (I need it as a tool in my bachelor's thesis), so it's terrible written. If you can help with it just send a pull request and I'll be very happy to accept it.

djibote's People

Contributors

dji-dev avatar ielson avatar oliverou avatar

Stargazers

 avatar  avatar

Forkers

houman-hm

djibote's Issues

Convert texture to bitmap

Is this issue about bugs or crash issues of the Sample Code?

Yep, then please delete this template and provide the following infos for us to help investigate the issue:

  • Description of the issue.
  • Steps to reproduce the bug or crash issues(It would be great if you can provide this)
  • Crash logs (If you can find it, it would be very helpful)
  • DJI Android SDK version you are using (Like Android SDK 3.4, etc)
  • DJI Product you are using (Like Phantom 4, Mavic Pro, etc)
  • Android system version you are using (Like Android 6.0.1, Android 5.1.1, etc)
  • Android device you are using (Like Samsung Galaxy Note 5, Nexus 5, etc)
  • Android Studio version you are using (Like Android Studio 2.2, etc)

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.