All Projects → goodrobots → MAVCesium

goodrobots / MAVCesium

Licence: GPL-3.0 license
An experimental web based map display for MAVProxy based on Cesium

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to MAVCesium

Doudizhu
html5 斗地主游戏
Stars: ✭ 323 (+1053.57%)
Mutual labels:  websockets, tornado
Pychat
webchat via WebSockets/WebRTC that allows messaging/video call/screen sharing
Stars: ✭ 152 (+442.86%)
Mutual labels:  websockets, tornado
Webssh
🌱 Web based ssh client
Stars: ✭ 2,520 (+8900%)
Mutual labels:  websockets, tornado
wave
MQTT Broker - for IoT, DIY, pubsub applications and more
Stars: ✭ 24 (-14.29%)
Mutual labels:  websockets
stream video server
demonstrates how to create video streaming server with the help of aiohttp and opencv
Stars: ✭ 15 (-46.43%)
Mutual labels:  websockets
fhq-server
This is an open source platform for competitions of computer security.
Stars: ✭ 33 (+17.86%)
Mutual labels:  websockets
ELMduino
Arduino OBD-II Bluetooth Scanner Interface Library for Car Hacking Projects
Stars: ✭ 274 (+878.57%)
Mutual labels:  hud
Mercury-GS
An Open Source Program that allows users to interact with a Spacecraft in a lab environment, pre-launch.
Stars: ✭ 18 (-35.71%)
Mutual labels:  ground-station
cesium-particle
Visualize wind field(NC file) on Cesium
Stars: ✭ 25 (-10.71%)
Mutual labels:  cesium
general-angular
Realtime Angular Admin/CRUD Front End App
Stars: ✭ 24 (-14.29%)
Mutual labels:  websockets
CoreRemoting
RPC library with classic .NET Remoting flavour
Stars: ✭ 23 (-17.86%)
Mutual labels:  websockets
unity-webgl-multiplayer
Unity WebGL basic multiplayer demo using WebSockets
Stars: ✭ 43 (+53.57%)
Mutual labels:  websockets
factory
Docker microservice & Crawler by scrapy
Stars: ✭ 56 (+100%)
Mutual labels:  tornado
arel
Lightweight browser hot reload for Python ASGI web apps
Stars: ✭ 69 (+146.43%)
Mutual labels:  websockets
OpenScraper
An open source webapp for scraping: towards a public service for webscraping
Stars: ✭ 80 (+185.71%)
Mutual labels:  tornado
live-cryptocurrency-streaming-flutter
A Flutter app with live cryptocurrency updates, powered by Ably
Stars: ✭ 26 (-7.14%)
Mutual labels:  websockets
cesium-satellites
View the orbit of satellites in a Cesium viewer, derived from a two line element list
Stars: ✭ 45 (+60.71%)
Mutual labels:  cesium
github-trending
GitHub trending API powered by Python Tornado.
Stars: ✭ 36 (+28.57%)
Mutual labels:  tornado
sftp-gateway
This repository contains a docker image configured to use the SSH File Transfer Protocol (SFTP) to transfer all its files to Cloud Blob Storage Services. This image can be deployed on a Kubernetes cluster with Helm.
Stars: ✭ 18 (-35.71%)
Mutual labels:  gcs
Autonomous-Ai-drone-scripts
State of the art autonomous navigation scripts using Ai, Computer Vision, Lidar and GPS to control an arducopter based quad copter.
Stars: ✭ 45 (+60.71%)
Mutual labels:  ardupilot

MAVCesium - An experimental web based map display for MAVProxy based on Cesium

UPDATE

This project is currently being re-written from the ground up with a reactive javascript framework (vue js) and graphql for communication. It is being integrated into a new web based GCS, designed to configure and control many decentralised vehicles simultaneously. If you would like to learn more about where we are taking this project go to https://github.com/goodrobots/maverick-web or say hello in our developer gitter channel https://gitter.im/goodrobots/dev.

Notes: Your browser will need to support webgl and web sockets. Please view on a desktop machine as the application does not currently support responsive layouts.

About the project

As a ground control station operator I often find myself wishing MAVProxy had a more intuitive way of displaying an air vehicle attitude and position. This project uses Cesium to display the position and attitude information being received by a MAVProxy ground station in real time.

Note: MAVCesium can now run stand alone from MAVProxy. See this issue if you would like to know more.

Video

Demo Video]

Screenshots

screenshot 1 of webapp screenshot 2 of webapp screenshot 3 of webapp

Development

Although currently under development, this module provides a usable position and attitude display, HUD, geofence display and limited mission display capabilities.

On the TODO list...

  • Improved mission display and planning capabilities
  • Real time visualisation of sensor footprints and data feeds (video and image)
  • Support for custom digital elevation maps
  • Support for custom ground imagery
  • Log playback from .tlog and .bin files
  • Support responsive layouts
  • etc...

Development is being undertaken on a Ubuntu 16.04 x64 machine and has been tested on a 14.04 x64 machine. As the (few) dependencies are pure python I expect it will install and run on a windows machine, however this is currently untested.

How it works

When you load the MAVCesium module a single tornado server is created. This server handles handles static data requests while also streaming JSON between MAVProxy and your webgl enabled browser, driving the display.

The display is updated only as new data is received via the telemetry stream, so the faster the telemetry stream the 'smoother' the display update will be.

Getting it running

The following assumes that you have already installed the requirements for MAVProxy

  • Install the python dependencies for MAVCesium located in requirements.txt via pip

  • MAVCesium is avalable as a git submodule of MAVProxy. If you already have an existing MAVProxy repository setup, you can initialise the MAVCesium module by running the following in your MAVProxy base directory:

git submodule init
git submodule update

Otherwise if you would like to clone MAVProxy and get the MAVCesium module at the same time you can run the following command:

git clone --recursive https://github.com/ArduPilot/MAVProxy.git

You can then install MAVProxy as per the developer guide:

cd MAVProxy
python setup.py build install --user
  • Run MAVProxy and load the MAVCesium module with the module load cesium command in the MAVProxy console

  • Point your webgl enabled browser to http://127.0.0.1:5000/mavcesium/ and once you start receiving valid mavlink messages from the vehicle connected to the MAVProxy ground station you will see the vehicle model in the center of your screen with a HUD overlay

  • If you have other computers / tablets / ipads on your network you can also open webgl capable browsers on them and point it to the network facing IP address of the computer that MAVProxy is running on.

  • For bonus points replace the Griffon Aerospace MQM-170 Outlaw gltf model with something that resembles your air vehicle! You can convert .dae models to .gltf using this online tool

Module usage

The top bar of the MAVCesium display contains similar data to the MAVProxy map. Here you will find the cursor lat, lon, alt and information on left click positions. You can access the context menu via single right click, while camera controls and settings can be found in the upper right of the screen. HUD overlay visibility can be toggled by pressing h when the MAVCesium display is active and can be made smaller via a button in the settings menu.

Further documentation is under construction here

If you get it running or find it useful let me know :) Issues and pull requests welcome!

Credits

Some of the other projects which go into MAVCesium are: Cesium MAVProxy Ardupilot tornado jQuery Bootstrap Font Awesome

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].