Giter Site home page Giter Site logo

octanis1 / octanis1-field-station Goto Github PK

View Code? Open in Web Editor NEW
4.0 19.0 1.0 38 KB

Software that runs on the Raspberry Pi in the field. Acts as a LoRa tranceiver and MAVLink protocol handler. Must accept and relay MAVLink commands from APM Planner / QGcontrol.

Python 91.50% Shell 8.50%

octanis1-field-station's Introduction

Octanis1-Field-Station

Software that runs on the Raspberry Pi in the field. Acts as a LoRa tranceiver and MAVLink protocol handler. Must accept and relay MAVLink commands from APM Planner / QGcontrol.

Software running on the field station but not in this repository.

UDP <-> MQTT bridge

The goal of the bridge

The goal of this script is to receive MQTT messages from 'A' and to transform them into UDP messages that are sent to 'B' and to receive UDP messages from 'B' and to transform them into MQTT that are sent to 'A'.

Configuration of the bridge

At the beginning of the Python scripts, you can change the IP and the port of the differents actors.

Test the bridge

To test the bridge, you can use the scripts send_mqtt.sh and send_udp.sh. You just need to change the parameters at the begin of each script. To listen : mosquitto_sub -t topic -q 1 and nc -l -u -p 43000

status_reporter script

Sends RADIO_STATUS message to the UDP endpoint (APM Planner) which includes last RSSI from TX MQTT topic. It also sends a HEARTBEAT with sysid 24.

Halt button script

Listens to a rising edge on GPIO pin 16 (hardware pin, not BCM) and halts the operating system if risen.

octanis1-field-station's People

Contributors

jajoe avatar bitmorse avatar traffael avatar

Stargazers

 avatar Cole Hudson avatar  avatar  avatar

Watchers

James Cloos avatar  avatar Johannes Wüthrich avatar  avatar Sven avatar Quentin avatar Michael Spieler avatar Eloi Benvenuti avatar  avatar Ana Roldan avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar Alejandra Plaice avatar  avatar

Forkers

cglusky

octanis1-field-station's Issues

Design Case and power supply for the Field station

Content:

  • RaspberryPi
  • Battery + Power system
  • LoRa gateway
  • u-blox M8P eval kit

Connections to the outside:

  • Ethernet port of RaspberryPi.
  • PV module connector
  • Power adapter connector for manual battery charger

Antennas:

  • dGPS
  • LoRa
  • UHF module for dGPS

Use our EPS (https://github.com/Octanis1/Octanis1-Electronics/tree/master/octanis_eps/v1.0) to supply required voltages and charge batteries with 2 possible inputs: Solar cells or 5V / 9V power adapter (slight modification needed to switch between the two modes --> Maximum power tracking MPP to be adapted)

Other requirements:

  • Good thermal insulation
  • Weather-proof
  • Wind proof (possibility to attach to ground)

Update documentation here: http://wiki.octanis.org/orb/mom#base_stations with complete system drawing and photo

Create a UDP to MQTT bridge

This bridge receives UDP packets from APM Planner containing MAVLink payloads and sends them out to the MQTT server. It must also listen to incoming MQTT packets and relay these to the same UDP endpoint.

configure dGPS base station module

Read datasheet, implement recommended configration using u-center.

Minimum observation time is important and tests must be conducted to verify that a short MOT (<0.5h) will give good precision.

On the RaspberryPi, write script that listens to APM Planner and buffers those incoming messages

Commands and other (MAVlink) messages that originate from an operator's laptop running APM planner, connected via ethernet to the RaspberryPi, have to be buffered and relayed to the LoRa base station. The LoRa base station can only relay messages to the rover just after it received something from the rover. At that instant of time, every logged command, status update and other message in a buffer must be released and forwarded to the rover.
Messages coming from the rover must be forwarded via ethernet to the APM planner. If the rover is silent, the APM planner must be supplied with an "empty" heartbeat message if required.

System description: http://wiki.octanis.org/orb/mom#base_stations

This issue is completed after implementing a buffer that only tranmits messages to the rover after receiving something.

Enable and test static hold on rover gps module

"Static Hold Mode allows the navigation algorithms to decrease the noise in the position output when the velocity is below a pre-defined 'Static Hold Threshold'. This reduces the position wander caused by environmental factors such as multi-path and improves position accuracy especially in stationary applications. By default, static hold mode is disabled.
If the speed drops below the defined 'Static Hold Threshold, the Static Hold Mode will be activated. Once Static Hold Mode has been entered, the position output is kept static and the velocity is set to zero until there is evidence of movement again. Such evidence can be velocity, acceleration, changes of the valid flag (e.g. position accuracy estimate exceeding the Position Accuracy Mask, see also section Navigation Output Filters), position displacement, etc.
The UBX-CFG-NAV5 message additionally allows for configuration of distance threshold (field staticHoldMaxDist). If the estimated position is farther away from the static hold position than this threshold, static mode will be quit."

Setup ethernet switch + cabling

Make USB cable for ethernet switch and have 2 ethernet cables going out of the field station. One for the rover, the other for the operator.

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.