Coder Social home page Coder Social logo

dronebridge / dronebridge Goto Github PK

View Code? Open in Web Editor NEW
696.0 55.0 120.0 8.85 MB

DroneBridge is a system based on the WifiBroadcast approach. A bidirectional digital radio link between two endpoints is established using standard WiFi hardware and a custom protocol. DroneBridge is optimized for use in UAV applications and is a complete system. It is intended be a real alternative to other similar systems, such as DJI Lightbridge or OcuSync.

Home Page: http://wolfgangchristl.de/2017/not-just-another-drone-project/

License: Apache License 2.0

CMake 0.25% C 96.74% Shell 0.06% Python 2.06% Makefile 0.07% C++ 0.82%
msp telemetry wifibroadcast dronebridge aerial-imagery inav arial-photography drone multiwii quadcopter

dronebridge's Introduction

DroneBridge

DroneBridge

DroneBridge is a system based on the WifiBroadcast approach. A bidirectional digital radio link between two endpoints is established using standard WiFi hardware and a custom protocol. DroneBridge is optimized for use in UAV applications and is a complete system. It is intended be a real alternative to other similar systems, such as DJI Lightbridge or OcuSync.

DroneBridge features support for Raspberry Pi, ESP32 on the UAV/ground station side and an android app.

Visit "Not just another drone project" for additional information about the project and its goals

Releases

Please read the getting started guide The v0.7.0 release is recommended.

Disclaimer: Use at your own risk. Malfunction and sudden signal loss can not be ruled out. Use with caution! Do not fly over people or animals. The user is responsible for:

  • Operating the system within legal limits (e. g. frequency, equivalent isotropically radiated power (EIRP) etc.)
  • Any harm or damage caused by using the provided software or parts of it.

v0.7.0 Alpha

Use with caution. RC link has a too high latency. USB connection to DroneBridge for Android is unstable.

DroneBridge Alpha v0.7.0 alpha Image for Raspberry Pi

DroneBridge for Android 2.0.2

One System. One digital radio link to rule them all.

DroneBridge concept

  • 300 m - 14+ km range* (500 m - 2 km with standard hardware)
  • 1080p video
  • 110ms glass to glass latency (using android app)
  • Cheap: starting at 80€ for hardware
  • 12 channel RC
  • MAVLink support - LTM telemetry deprecated. Use with mwptools, QGroundControl, Mission Planner etc.
  • iNAV & MAVLink based flight controller support
  • Bidirectional
  • Fully integrated app for Android
  • OSD
  • Modular - Write your own powerful plugins

*Range strongly depends on your setup, environment and legal framework.

DroneBridge for Android

DroneBridge for Android app interface

  • Easy to use UI & end point of the whole DroneBridge system
  • Low latency video decoding
  • Change settings, calibrate the RC, view telemetry

Learn more about the app

Exemplary hardware setup

DroneBridge is available for the Raspberry Pi & ESP32 (no video, telemetry only - WiFi based) By compiling the libraries on your Linux computer any device can become an AIR or GND unit. This means DroneBridge is not restricted to the Raspberry Pi. However many single board computers do not offer the same kind of stability and hardware/software support as the Raspberry Pi (camera, H.264 en-/decoding etc.).

Raspberry Pi/Linux (Long Range Setup)

DroneBridge long range hardware setup

DroneBridge for ESP32

For further information have a look at the DB for ESP32 main page DroneBridge for ESP32 hardware setup

DroneBridge Modules

DroneBridge is highly modularized to provide flexebility and make development easy. There is a common library for Python 3 and C/C++ that handles everything involving the DroneBridge raw protocol. It configures the sockets, inits the protocol and provides methods for easy transmission. Instead of the Android app any other GCS can be used.

Read more in the Wiki

System Architecture

System Architecture

Read more in the wiki

Coming Up:

  • More documentation
  • Add MavLink and MSP waypoint missions editor to Android App
  • DroneBridge Cockpit: A client/OS for x86 systems to monitor and control your UAV
  • See milestones

You are a developer?

Check out the wiki Check out the milestones and suggest new ones! Join the Gitter room and discuss issues, ask questions or give feedback

There is a nightly branch with the most up to date code! It is not guaranteed that the code in that branch is working or even compiling!

Feel free to ask questions & contribute

Licenses

  • All of the code (especially DroneBridge modules & lib_dbcommon - C or Python) is under the Apache 2 license if not specified otherwise
  • WifiBroadcast legacy code (video, OSD, .profile, hello_video) is licensed as specified or under the GPL v2 license
  • All Kernel drivers/patches are under GPL v2 license

dronebridge's People

Contributors

booo avatar seeul8er avatar system123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dronebridge's Issues

Discontinue iNav support

Supporting iNav & MAVLink is very time consuming for a single developer and makes the system more complicated since iNav "needs" two serial ports (MSP & LTM)

Looks like Ardupilot now supports cheaper hardware, so the big advantage of iNav over price seems to be gone now. Does it make any sense to keep supporting iNav? Ardupilot looks like the go-to option for me:

  • Better library support, SITL Simulator
  • Better documentation
  • More features
  • Bigger community

Add support for iPhone users

hey you have done a great job with this and i'm looking forward to use it in the future. Is there going to be any support for iPhone users? thanks.

Runcam split v2 as main camera

Hi

Thanks for your time to reply previously.

Can you make this to happen???

Can you make analogue video as the main source ???

•make DroneBridge more indipendent of WifiBroadcast (video) > support of esp32 or esp8266 modules to allow integration in existing builds using analog video > no need for raspberry pi

Is that make sense ???

Regards

Source of Android DroneBridge App

As I understand it, Dronebridge is built to be modular, so that users are able to add their custom modules on ground and on air.
To complete the picture, I think it would be interesting to have access to the source of android Dronebridge Application. This way users would be able to add new functionnality from ground station to the drone.

For example to add a clamp on a drone:

  • control the clamp using dronebridge plugin
  • visualize clamp state using dronebridge application

By the way, thank you Seeul8er for this great communication system :-)

new relase?

hi,

When will the new version relase?
Will it support new intel cards?

Wifi not recognize by RX but TX does

Hi,
I'm trying to setup dronebridge.
I use 2 wifi adapter: alpha S036NHA and alpha S036NEH
Both card are well recognize on the TX. (card found, card ready message is displaying!)
But when i try with the RX, i have a message
"PI3 Onboard Wifi Hotspot card not found"

Dronebridge continue loading, I still get a picture, but very bad, frame are partial and not usable. Also the Dbm always in red even if card are 1m of each others

I try to change to RPI foor RX, i tryed a PI0, PI2 and PI3 always the same (with reflash dronebridge when change).
Strange also message is always "Pi3 on board..." even with a pi0.

No matter what the RX never recognize the wifi card, that TX does.

Software/Configuration:
Drone Bridge 0.5

Hardware
PI0 as TX
PI0 as RX (also PI2 or PI3)
Alpha AWUS036NHA
Alpha AWUS036NEH
Picamera v1
5v-2A power for each

Thanks for your help

Send custom data

Hello,
I am new in this world, and I have the doubt of how to send my own data messages using Dronebridge, I saw that there is a section in the wiki, but the links are down.

Thanks in advance

Dronebridge 0.6beta_img2 does not boot on Pi0 and PiA+ anymore

Hello Wolfgang,

just discovered that the 0.6beta image does not boot on Pi0 or PiA+ anymore. Guess this has something to do with the new kernel you are using?

Can you please check and correct this for the final version?
Thank you very much!

I also realized that the DroneBridge App 1.2.4 behaves somewhat strange and seems not to be 100% compatible. The RC channels show up for 1sec and then disappear... and then show up again... this repeats all of the time. Checked on two different Android devices (Pixel1 and Nexus7 Tablet). Same on both. Also writing the settings to the Air-Unit seems to have problems.

RC connection

I probably missed something but how am I supposed to connect a RC to the Ground Pi?

Android app

Good Day!
First of all, thank you for a great project!
I wish to do a minor changes to it, but I can`t find source codes of Android application, will you be so kind to share it?
Maybe e-mail or git?
Thank you in advice.

Video multi camera support.

Hello, I'm relatively new to Wifibroadcast but I've been heavily involved in the rcgroups Forum, I believe in the project and I have learned a lot so far however, I'm not exactly sure how to utilize github if I have something to add so I apologize if this is not the correct spot.

I picked up an Arducam multi-camera splitter and worked with User1321 from rcgroups who was able to remotely write code so that the video Switcher could be assigned to any RC Channel (1-8). The air RPI monitors the mavlink channel value.

Video switcher module
http://www.arducam.com/multi-camera-adapter-module-raspberry-pi/

At first it only works with USB as a second link but the other day he was able to integrate it with the standard telemetry connection with pixhawk.

There do not appear to be any issues and works flawlessly. An image has been created and a link to my Google Drive is below. Would it be possible to integrate that portion of the code to drone Bridge?

Configuration is simply set at the bottom of Wifibroadcast.txt file i e pwm value for Associated Channel as well as how many cameras you want to have on the craft.

Here is a link to a video demonstrating the video switcher.
https://youtu.be/swry3rPmeis

Please let me know if you have any questions or suggestions.

Cheers,

Justin (Htcohio)

Image
https://drive.google.com/file/d/1vHvJlccpbVlma0mXGT332akWsoPuuQH3/view?usp=drivesdk

v0.6 login at startup

Hi,
I'm installing dronebridge last version (0.6) on RPI3 (but i test also on PI2 and Pi0 Wh)

I install with the IMG you provide.

At first boot, it is asking for "dronebridge login"
tryed several combinaison, but nothing work

what are the access (login/password?)

I notice after a certain time that dronebridge is still loaded on top (overlay) of the ssh login screen

thanks

Add Keyframe Rate and Bitrate Percentage to App

Hello I finally got dronebridge working. I noticed the key frame rate and Bitrate percentage is not on the wifibroadcast options. This is a commonly adjusted component in the settings. Is there any way that this can be added?

Comparison between projects

Dear Sirs,
I'm looking around for a way to transmit both video and RC Mavlink data over 2.4 Ghz, found many projects about this but cannot get a starting point:

From this document https://dronebridge.gitbook.io/docs/comparison they put comparison on:

svpcoms WifiBroadcast (basic TX-RX)
DroneBridge (system design with library)
OpenHD (follow-up on EZ-WifiBroadcast)
EZ-Wifibroadcast (not under development)

But looking at code the most updated seems that svpcoms WifiBroadcast and is able to manage both video and Mavlink.

Dronebridge is still developed?

Feature request: Add support for MavLink v2 protocol version / remove 8Ch limit

Hi Wolfang,

from what I understand from all the discussions about EZ-Wifibroadcast / Dronebridge is that the Mavlink implementation used right now is somewhat problematic. It also brings some nasty limitations with it e.g. limitation to 8Ch. From my research on the web I have learned that Mavlink protocol verison v1 is meanwhile considered a legacy standard and was succeeded by the Mavlink protocol v2, i.e: no one is maintaining v1 anymore and the current problems and shortcomings are likely to stay for ever or even get worse as more and more flight controllers use the recent v2 standard.

So I am wondering: Maybe it is a good idea to implement MavLink v2 support?

Lets look at an example:
The limitation to only 8Ch was a limitation of the MavLink 1.0 protocol - especially a limitation of the RC_CHANNELS_OVERRIDE messages which are used for controlling the aircraft via EZ-WBC.

However this bottleneck seems to have finally been removed in Mavlink v2. 👍
MavLink 2.x specifies so called extension fields which are added on top of the v1 protocol version. (They are marked in blue).

So if we could go for the v2 Standard (maybe it also brings less problems than the broken v1?) we could luckly use 18CH - all proportional! :)

MavLink v1 is also officially considered to be a legacy standard:

This info can be found here: https://mavlink.io/en/messages/common.html#RC_CHANNELS_OVERRIDE
I am aware that adding and testing Mavlink v2 support is for sure a awefull lot of work but it might be worth it. I'd be more than happy to help testing and contributing in any way possible - sadly I am not a coder. :-/

Cheers!

Not an issue: ESP32 support is awesome! Any documentation on this?

Hi,

just got notified about the new 0.4 release. From the release notes I derive that now the ESP32 plattform is also supported. Can you maybe update the Wiki and provide a bit of documentation of how to get this running on a ESP? Is this a full-blown solution, e.g. support for RC control and MavLink?

Thank you very much!
keep up the excellent work

Add support for no camera

I have an application where I don't have a camera linked to the pi but rather an audio stream. However, wifibroadcast assumes a camera is connected, it'd be nice to be able to configure this feature and allow for any packet of a specific size to be sent instead of video.

DroneBridge for android doesn't work when connecting via USB

Hello,
thanks for the great project!

DroneBridge for android doesn't work when connecting via USB. Here are the logs from GND Pi
image
I'm not sure there is a bug or something wrong.

Software/Configuration:

  • [DroneBridge 0.6]
  • [Android 10, DB for android 2.0.1]

Hardware

  • [Raspberry Pi 4B for GND]

Release 0.5 - Misssing telemetry between air and ground

Hi. I've installed the latest version and there seems to be an issue withe the telemetry between the air and ground unit. It prob something I'm missing but can't get it to work. I've also tries the app via wifi hotspot and usb tethering.
Via Usb, the app cant talk to the air or the ground unit
Via hotspot, the app seems to fail to talk to the air unit.

I do receive the video on all connection types (hdmi, usb and wifi hotspot). Can you please point me in the right direction.

Just as a fyi... If the PI's is under voltage the bitrate drop and the quantity of the video degrades goes with it. Due to the telemetry i, didn't see the air unit was under powered.

Telemetry is working on ez-wifibroadcast.

Beta v0.6 release date

Hello,
To begin, just give thanks for this great project. My question would be to know if you have any idea when version 0.6 was released

Thanks for all

RPi B3+

Hello,

thanks for the great project!

I gave it a try on the new B3+ without a desirable outcome...

Symptoms are described here:
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=58151
(Yellow text)

I tried with your recent 0.6 image.
( https://forstudents-my.sharepoint.com/:u:/g/personal/ga25puh_forstudents_onmicrosoft_com/EWi7-HH8Y1pOjLUn_ceffugBhC0Dsemiy5vxi_d9oduu-w?e=yJOoHS )

I will happily test a new version :)
It would be very good, if you provide some info on how to "compile" the repo to an img-file for flashing.

Thanks!

ppm input for the db_gnd raspberry

hi , i have an idea, use a python script that convert ppm or serial to send msp data
so we can use any controller that got a reciver which support ppm:

controller -> 'wireless' -> reciver -> 'ppm' or 'serial' ->raspberry -> 'db' -> air py -> 'msp v2 -> flight controller

i'v already done the part that decode ppm to differents channels (serial one only yet) , but i still need to find how to convert this data and how to send it.
so if someone know how to do that can he give me a feedback please ?
thx

Video Glitch

Hello,
I have a trouble with dronebridge v0.5 and 0.6. The video in the ground station have glitch all the time.
With the V0.3 or v0.4 i don’t have any problem with this.

Hardware
UAV: Raspberry Pi zero and Tp-link TL-WN722N
Ground: Raspberry Pi3 and Tp-link TL-WN722N

Support for MavLink Telemetry and PixHawk based Flight Controllers

Hi there,

could you include support for MavLink based Flight Controllers as well (e.g. Pixhawk, PixRacer aso...)? It is a highly standardized protocol also much used in robotics. That would be gorgeous! Thanks in advance and keep up the excellent work!

Cheers!
Thomas

formation control

inav or CF can be attached nRF24L01 as receiver

as I know, it can use in networking, so it will be possible to connect some drone with 1 bridge (hub or router)

so, maybe you interest in formation flight?
point need to be important :
identify of the drone. and CF and iNAV have MSP, its protocol is good and I think just need some header for identify the drone?

Support for DJI Osmo Pocket

It might just be the perfect new camera/gimbal system for DIY drones.

Specs:

  • 100Mbit/s
  • 4K/60
  • built-in gimbal
  • built-in tracking
  • small form factor
  • 116g (including battery)

Connectivity: USB connection to smartphone allows to change settings and preview the video. Reverse engineering of the API is required.

If latency is low enough it might also replace the RaspberryPi camera module.
I am personally not planning on implementing support in the near future, but it is nice to keep an eye on it. Standard action cam based systems have around 250g including a gimbal. By switching to the Osmo a significant increase of flight time & compactness can be achieved, again enabling us to build small and competitive DIY drones.

Feature request: Add support for recent wifi chipsets

The list of wifi cards supported by ez-wbc is pretty old, and didn't evolve since 2015 !!
Many of the supported cards are old, or not manufactured anymore (especially dual bands cards).
There are now very promising dual band long range cards from Alfa Networks :

  • AWUS036ACH (RTL8812au)
  • AWUS1900 (RTL8814au)

The architecture of ez-wbc is so old and difficult, that nobody could add support for now chipsets ...

(same issue here)

Compiling on Raspbian

Trying to build the last version of DB on a pizero with 2019-09-26-raspbian-buster-lite.

I've followed:
https://dronebridge.gitbook.io/docs/developer-guide/downloading-and-compiling

But getting stuck here:

pi@rover:~/DroneBridge $ cmake .
-- control module: Release configuration
-- db_common module: Release configuration
-- status_ground module: Release configuration
-- db_common module: Release configuration
-- proxy_ground module: Release configuration
-- db_common module: Release configuration
-- telemetry module: Release configuration
-- db_common module: Release configuration
-- video module: Release configuration
-- db_common module: Release configuration
-- usbbridge module: Release configuration
-- Checking for module 'libusb-1.0'
-- Found libusb-1.0, version 1.0.22
-- db_common module: Release configuration
-- syslog_server module: Release configuration
-- db_common module: Release configuration
-- db_common module: Release configuration
-- Could NOT find PCAP (missing: PCAP_LIBRARY PCAP_INCLUDE_DIR)
-- Performing Test PCAP_LINKS_SOLO
-- Performing Test PCAP_LINKS_SOLO - Success
-- Looking for pcap_get_pfring_id
-- Looking for pcap_get_pfring_id - not found
-- osd module: Release configuration
-- db_common module: Release configuration
-- db_common module: Release configuration
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PCAP_LIBRARY (ADVANCED)
linked by target "rx_vid" in directory /home/pi/DroneBridge/video/legacy

-- Configuring incomplete, errors occurred!
See also "/home/pi/DroneBridge/CMakeFiles/CMakeOutput.log
CMakeOutput.log
".
See also "/home/pi/DroneBridge/CMakeFiles/CMakeError.log
CMakeError.log
".

How to build this from scratch

How do you build this project from scratch? Trying to add custom code to the profile and add extra programs to the image but currently ran out of space and need to reimage the SD cards. Wounding how you would build this program.

Hubsan zino?

Does this work with hubsan zino? If yes, How do you install and configure?

Pi Zero Testing

Plan to do some wifibroadcast testing with a Pi Zero W with external RT5572 wifi dongle.

Would also like to test DroneBridge. Anything in particular you would like documented? And/or anything to watch out for using a Pi Zero?

Going to be using a PixFalcon with MavLink.

Install on RPI3 / Omnibus F4 FC

Hi,

I discovered your project few days ago, seems really interesting!.
I tryed it, with your RPI Image, but it doesn't work for me yet.

Here is what i have, if you have an idea of what's wrong:

  • RPI3 with your Image on it
  • Pi camera
  • Omnibus F4v3 Flight controller - with Inav last version 1.8.1
  • Wifi Key (classic key as i'm only testing for now)
  • The Android app

FC is powered by Lipo. I use the USB to link it to RPI.
For now the RPI is powered with 5VDC 2A , and will be powered with BEC on the quadcopter.
I'm only using 1 RPI and i do not have a GoPro
Right now, my idea is to get the data from the FC to RPI and play with it. That's why your project interest me.
But seams i can't get data from FC or video from Picamera

  • When i use your RPI image, if no Pi camera connected, it launches, and i got a screen with horizontal and vertical "array", and some data. (like in an OSD) No image (since Pi camera not wired), and all data are 0.

  • When i wired the Pi Camera, it stays on the ssh and display a lot of !!!! with the number of packet send. This number increase, as the !!!!! increase also and take all screen.

Do you have an idea of what i did wrong? ;)
Maybe it will not work withtout the gopro and 2 RPI (tx/rx)?
Maybe a configuration in Inav in the Ports section?

Thanks

Implement SBUS as a universal 8+ channel RC control protocol

Hi there,

is it already possible to use MavLink for RC control? Since MavLink RC override is only limited to 8Ch it would be very useful to have SBUS implemented as a truly universal 8Ch+ RC signal. Thanks in advance!
I know of someone who has already made some progress in implementing SBUS to the Raspberry Pi.... however this solution still freezes after some time. Let me know if you are interested in exchanging some knowledge about this and might be able to help debug.

Cheers!
Thomas

Release Image File too large for 4GB micro-SD card

Short Description
The provided Alpha 0.6.0 img File is too large for most micro-SD cards.

Steps to reproduce the behavior:

  1. Goto Releases Page https://github.com/DroneBridge/DroneBridge/releases
  2. Click on the provided link "Get the ready to use image for the Raspberry Pi here"
  3. Unpack DroneBridge_0_6_0.zip file
  4. The DroneBridge_0_6_0_alpha.img has the size 15.931.539.456 bytes (~14.8GB)

Advise on howto write to 4B or 8GB mirco-SD cards would be great. The wiki mentions that a 4GB micro-SD card is sufficient.

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.