Firefly Eindhoven - Localization - Ultrasound

From Control Systems Technology Group
Jump to navigation Jump to search

This page discusses the Ultrasound system manufactured and distributed by Marvelmind Robotics [1]. The working principle of the system will briefly be discussed followed by a user manual on the system.

Working principle

The Ultrasound system by Marvelmind consists of small (~7cmx7cm) beacons (recognized by the 5 ultrasound transmitters on top) and a modem (~3cmx3cm). For the system to work, one should assign at least 2 (2D location estimation) or 3 (3D location estimation) beacons to be stationary. The stationary beacons function as an anchor point in the world and the positions of these beacons need to be known as accurately as possible (+- 3 cm) for good results. Mobile beacons (i.e. non-stationary beacons, also called hedge beacons) can then be triangulated given the distances to each stationary beacon and the location of these stationary beacons in the world frame. This is done by transmitting an ultrasound signal from the mobile beacon. This signal is then received by the stationary beacons, which then determine the range to the mobile beacon by an algorithm created by Marvelmind. These distances are send to the modem through radio with a predefined radio profile. The modem then triangulates the mobile beacons based on these distances.

Multiple beacons are served sequentially, meaning that the rate at which the system functions is some base rate divided by the amount of beacons. On their website, Marvelmind advertises a base rate of 40 hertz. However, after experimenting with the beacons, changing settings such that the system should perform optimally and consulting the Marvelmind help desk, the maximum base rate was found to be 25 Hz under optimal conditions. These optimal conditions included the beacons being no more than 2 meter apart, setting this as upper bound in the software and communicating with the highest radio profile, which are all the tunable parameters to change the rate according to the manual, help desk and YouTube videos. Creating some decent spacing between the beacons to cover an appropriate flying area decreases this base rate to 18 hertz. Selecting a radio profile with an acceptable noise level decreases the base rate to 12 hertz for a single beacon. Therefore, to localize 3 drones with 3 beacons (no rotation), a rate of 3 to 4 hertz is achieved.

User manual

Installation

This documentation will not focus on installing the dashboard (graphical software tool to view beacon output, change the configuration and settings) and the drivers for the modem. The instructions on how to do this can be found at [2]. The dashboard can be downloaded at [3].

Setting up the system through Dashboard

This Section describes the steps that need to be taken to set up the ultrasound system.

  1. Check the settings on each beacon: To make sure the system can communicate, the following parameters need to be configured in such a way that they are the same for the whole system. To do this, plug in each beacon to the laptop while having Dashboard open. This will allow you to change the parameters of that specific beacon.
    • Turn on the beacons (power switch on, DFU switch off).
    • Write down the number and software version of the beacon (for later use to check which beacon is recognized by modem). These can be found in the lower left corner once the beacon is recognized by the Dashboard.
    • Check the charge of the beacon (Supply voltage, right panel). An almost empty beacon will transition into a mode such that it cannot be used for triangulation, but can still be accessed wireless through the dashboard.
    • In parameters of radio (right panel), make sure the base frequency is set to 433 MHz. Then change the radio profile to one of the three profiles of your choice. The lowest mode provides most accurate position estimations, but the lowest rate. The 500 Kbps profile (highest) has the highest rate but is extremely noisy. The 153 Kbps profile is a good compromise between rate and noise and thus the recommended option.
    • Make sure the channel is set to the same integer (defaults to 0) for all beacons and the modem.
  1. Synchronize the software versions. The beacons and modem are most likely running the same software version, so the easiest solution to software version synchronization is just to downgrade your version of dashboard. You could also upgrade the software of the beacons, but this might have to be done by DFU programming (see Marvelmind manual [4]) if the gap in software versions is too big.
  2. Activate the system: If above settings are the same for each beacon, plug in the modem and set its same radio parameters the same as all other beacons. Double clicking on the panels of the beacons corresponding to the beacon IDs in the lower left bar should wake up the beacons. If not, go through above steps again.
  3. Physically place the beacons: Place the stationary beacons while measuring their (x,y,z) coordinates with respect to the origin of a fixed frame.

Possible example setup

Re-using the previous setup

To re-use a previous setup, it suffices to only physically set it up according to its last configuration, turn on the beacons and plug in the modem to a laptop, as the modem stores its settings and the stationary beacon map in its memory. The beacons will then automatically be waken by up by the modem and the system will start functioning as before if all goes well. However, make sure all beacons are in appropriate mode (power switch on, DFU switch off, switches are found on the beacon itself) and are all charged.

Dashboard

C

Python

Possible problems and solutions

Software

  • Link to code repository