Skip to main content

An asyncio-based multi-robot (MAV for now) orchestration framework

Project description

Multirobot

An asyncio-based multi-robot (MAV for now) orchestration framework

Serial Device Registry

sudo mkdir /dev/serial/by-name/
sudo ln -s /dev/serial/by-id/usb-Espressif_USB_JTAG_serial_debug_unit_F4\:12\:FA\:DC\:98\:F8-if00 /dev/serial/by-name/m5stamp-forwarder
sudo ln -s /dev/serial/by-id/usb-Espressif_USB_JTAG_serial_debug_unit_48\:CA\:43\:B6\:44\:48-if00 /dev/serial/by-name/m5stamp-uav
sudo ln -s /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 /dev/serial/by-name/elrs-transmitter1
sudo ln -s /dev/serial/by-id/usb-1a86_USB_Single_Serial_5969026050-if00 /dev/serial/by-name/elrs-transmitter2

ELRS

Using the Jumper Aion ELRS 2.4G TX Nano:

  • USB does not seem to be powerful enough to power the module
  • Attach it to TX (tested with RadioMaster Zorro)
  • Go into the currently selected model menu and disable the internal RF, enable external CRSF
  • Go into the ELRS menu
  • Bind with the model using the Menu
  • Enable Wifi in the menu
  • Go to 10.0.0.1/hardware.html change pins: RX: 3 TX: 1 (note this will prohibit communication with the TX handset because it will listen on its own USB serial for CRSF communication)
  • Test using DeckTX (921600 Baud)
  • Disable Model Match (bind to normal transmitter with the ELRS Lua script, and disable Model match there).
  • Make sure the propeller directions (CW/CCW) are not inverted (front-left: CW, front-right: CCW, back-left: CCW, back-right: CW)
  • Use the LED colors if available to check if the Mocap feedback works. Set to mode Color and then modulate by e.g. "Roll" which is the x displacement in our Mocap over ELRS conventions
  • Disable Telemetry on the Drone to reduce RF load

PX4

These might not be necessary conditions but this set of settings has been found to be sufficient in aggregate:

  1. ELRS Receiver: Disable telemetry transmission on the ELRS receiver
  2. DroneBridge
  • Lower the max packet size to 16
  • Set Baudrate to 921600
  • Don't make contact with the carbon fiber frame
  1. PX4
  • Set MAV_0_MODE to External Vision
  • Set MAV_0_RATE to 500 B/s
  • Set SER_TEL1_BAUD to 921600
  • Use the SanDisk 32GB Extreme U3 SD card to prevent logging dropouts
  • Configure just a few topics in the etc/logging/logger_topics.txt
  • Check listener rl_tools_policy_status for the visual_odometry_dt_std and visual_odometry_dt_max 3000 and ~30000 (uS) are decent values respectively (when feeding Mocap at 100Hz)
  1. Laptop
  • Run forwarding script with sudo nice -n-20
  • Disconnect from Wifi
  • sudo -E nice -n-20 ./.venv/bin/python choreo/individual_px4.py
  1. Vicon:
  • 100Hz
  • Enable tracking
  • Make Tracker.exe Real-time priority
  1. GL.inet MT300N-v2
  • Wifi running on Mode: Client Channel: 8 (2.447 GHz) HT Mode: HT20 (though Channel 1 might be better with ELRS in the same room)

Deadman Switch

Ikkegol footpedal:

sudo gpasswd -a $USER input

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multirobot-0.0.1.tar.gz (18.2 kB view details)

Uploaded Source

File details

Details for the file multirobot-0.0.1.tar.gz.

File metadata

  • Download URL: multirobot-0.0.1.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for multirobot-0.0.1.tar.gz
Algorithm Hash digest
SHA256 861ba1a257568b724d67bc4deaddaa8976648a8dd8561f1279c604ff42aa8de5
MD5 6d313c69d67d9650d643956b46f9ec79
BLAKE2b-256 c77cc61792a76bd84b0f076e041cd3c3cd57826f3ebdce71e925b72639df8861

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page