Code Monkey home page Code Monkey logo

onboard-sdk-ros's Introduction

#DJI Onboard SDK ROS Packages


##Introduction

This is a ROS package for DJI OnBoard SDK.

It helps users handle the following commands and actions.

  • The activation
  • The flight control obtainment
  • The flight control release
  • The take off procedure
  • The landing procedure
  • The go home procedure
  • The Gimbal control
  • The attitude control
  • The photo taking procedure
  • The start/stop video recording procedure
  • Local navigation (fly into a certain (X,Y,Z))
  • GPS navigation (fly into a certain GPS coordinate)
  • Waypoint navigation (fly through a series of GPS coordinates)
  • Using WebSocket together with Baidu Map for navigation
  • Using MAVLink protocol and QGroundStation

##How to use

  1. Install and configure your hardware correctly.
  2. Enter the following info into dji_sdk/launch/sdk_manifold.launch.
    • APP ID
    • APP Level
    • Communication Key
    • Uart Device Name
    • Baudrate
  3. Use roslaunch dji_sdk sdk_manifold.launch to start the core node.
  4. Include the dji_drone.h from dji_sdk/include/dji_sdk into your package and run it. (there also provides a python version dji_drone.py in dji_sdk/src/dji_sdk)

##System Structure

  • dji_sdk: the core package handling the communication with Matrice 100, which provides a header file dji_drone.h for future use
  • dji_sdk_demo: an example package of using dji_drone.h to control the Matrice 100
  • dji_sdk_web_groundstation: a WebSocket example using ROS-bridge-suite, where a webpage groundstatino is provided
  • dji_sdk_manifold_read_cam: a X3 video decoding package for Manifold, CATKIN_IGNOREd by defualt
  • dji_sdk_dji2mav: a protocol converter making M100 compatiable with all MAVLink-protocol-dependent softwares
  • dji_sdk_doc: all documents

image click to see fullsize image

##System Environment The below environment has been tested.

  • Operating System: Ubuntu 14.04, Manifold
  • ROS version: ROS Indigo

#DJI Onboard SDK ROS例程

##简介

此ROS例程实现了以下功能:

  • 激活 Matrice100 (以下简称M100)
  • 获取 M100 控制权
  • 释放 M100 控制权
  • 向 M100 发送起飞指令
  • 向 M100 发送降落指令
  • 向 M100 发送返航指令
  • 对 M100 进行姿态控制
  • 对 M100 进行云台角度控制
  • 向 M100 发送相机控制指令
  • 控制 M100 进行 (x,y,z) 坐标导航
  • 控制 M100 进行 GPS 坐标导航
  • 控制 M100 进行航点飞行任务
  • 通过 WebSocket 向 M100 发送网页地图生成的航点指令
  • 通过 MAVLink 和 QGroundControl 控制 M100

##如何使用

  1. 按照文档配置好 M100
  2. 将激活信息输入至launch file:dji_sdk/launch/sdk_manifold.launch
    • APP ID (在官网注册key后得到)
    • API Level (key对应的 API 权限等级)
    • Communication Key(在官网注册key后得到)
    • Uart Device Name(串口设备名称)
    • Baudrate(比特率)
  3. 运行 roslaunch dji_sdk sdk_manifold.launch 来启动核心包。
  4. dji_sdk/include/dji_sdk 下的客户端头文件dji_drone.h 引用到你自己的 ROS 包中,并运行它(我们也提供了python版本的客户端dji_drone.py

##系统架构

  • dji_sdk: 核心 ROS 包,处理所有与 M100 的串口通信并提供了 dji_drone.h的头文件供开发者引用。
  • dji_sdk_demo: 一个调用 dji_drone.h 控制 M100 的例子。
  • dji_sdk_web_groundstation: 基于 WebSocket 的网页版地面站,依赖 ROS-bridge-suite 。
  • dji_sdk_manifold_read_cam: Manifold专用 ROS 包,对禅思 X3 云台的视频信息进行解码输出视频流。默认通过CATKIN_IGNORE禁用,需要手动启用。
  • dji_sdk_dji2mav: MAVLink 协议转接器,使得 M100 可以支持任意使用 MAVLink 为协议的地面站软件。
  • dji_sdk_doc: 所有的文档与图片信息。

image 点击查看大图

#系统环境 此 ROS 包在如下系统中进行测试;

  • 操作系统:Ubuntu 14.04, DJI Manifold
  • ROS 版本:ROS Indigo

onboard-sdk-ros's People

Contributors

lanyusea avatar botaohu avatar pcler avatar xuhao1 avatar

Watchers

James Cloos avatar Chen Qin 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.