Firefly Eindhoven - Localization - Ultrasound: Difference between revisions
Line 20: | Line 20: | ||
# '''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 [https://marvelmind.com/pics/marvelmind_navigation_system_manual.pdf]) if the gap in software versions is too big. | # '''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 [https://marvelmind.com/pics/marvelmind_navigation_system_manual.pdf]) if the gap in software versions is too big. | ||
# '''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. | # '''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. | ||
# '''Physically place the beacons''': Place the stationary beacons while measuring their (x,y,z) coordinates with respect to the origin of a fixed frame. | # '''Assign beacon roles''': Assign stationary and mobile beacons. | ||
# | ** For stationary beacons: In the dashboard, turn off the hedgehog mode, indicating that it is a stationary beacon. The color of the beacon in the bottom bar should now be green. | ||
** For mobile beacons: In the dashboard, turn on the hedgehog mode, indicating that it is a mobile beacon. The color of the beacon in the bottom bar should now be blue. | |||
# '''Physically place the stationary beacons''': Place the stationary beacons while measuring their (x,y,z) coordinates with respect to the origin of a user defined fixed frame in the physical world. | |||
# '''Transform the map on the Dashboard''': Set the parameter starting beacon trilateration (first parameter right panel) to the beacon number which you would like to utilize as origin of the map. Then set Submap rotation degrees to make the axis of the dashboard map line up with the axis of the user defined frame. This parameter can be set to 1 degree accurate. Important: do not touch the Submap X shift, Submap Y (right panel) shift and the compass (on the map). The compass only rotates the view, i.e. no alignment is taking place. The submap parameters are not needed and behave inconsistently. | |||
# '''Set additional preferences''': For each beacon, more parameters can be set. Most should be left the way they are, as they are only understood by a Marvelmind engineer and influence the triangulation/range finder algorithm. | |||
** RX<math>_i</math> normal/frozen can be set on or off depending on which of the five ultrasound transmitters should be used by each beacon. For the numbering of each transmitter, consult the manual. | |||
** Set the limitation distances (right panel) to a maximum physical distance between the beacons to possibly speed up the localization process. | |||
# '''Check distances''': With every beacon placed, preferences set and the map configured correctly, check the table of distances in the top left corner. Each cell indicates the distance from the beacon with the number indicated in the current row to the beacon with the number indicated in the current column. Therefore, the diagonal is empty and the table should be (roughly) symmetric. Furthermore, all cells should be green to indicate that the range found is consistent and accurate. | |||
====Possible example setup==== | ====Possible example setup==== | ||
Revision as of 14:47, 23 May 2018
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.
- 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.
- 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.
- 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.
- Assign beacon roles: Assign stationary and mobile beacons.
- For stationary beacons: In the dashboard, turn off the hedgehog mode, indicating that it is a stationary beacon. The color of the beacon in the bottom bar should now be green.
- For mobile beacons: In the dashboard, turn on the hedgehog mode, indicating that it is a mobile beacon. The color of the beacon in the bottom bar should now be blue.
- Physically place the stationary beacons: Place the stationary beacons while measuring their (x,y,z) coordinates with respect to the origin of a user defined fixed frame in the physical world.
- Transform the map on the Dashboard: Set the parameter starting beacon trilateration (first parameter right panel) to the beacon number which you would like to utilize as origin of the map. Then set Submap rotation degrees to make the axis of the dashboard map line up with the axis of the user defined frame. This parameter can be set to 1 degree accurate. Important: do not touch the Submap X shift, Submap Y (right panel) shift and the compass (on the map). The compass only rotates the view, i.e. no alignment is taking place. The submap parameters are not needed and behave inconsistently.
- Set additional preferences: For each beacon, more parameters can be set. Most should be left the way they are, as they are only understood by a Marvelmind engineer and influence the triangulation/range finder algorithm.
- RX[math]\displaystyle{ _i }[/math] normal/frozen can be set on or off depending on which of the five ultrasound transmitters should be used by each beacon. For the numbering of each transmitter, consult the manual.
- Set the limitation distances (right panel) to a maximum physical distance between the beacons to possibly speed up the localization process.
- Check distances: With every beacon placed, preferences set and the map configured correctly, check the table of distances in the top left corner. Each cell indicates the distance from the beacon with the number indicated in the current row to the beacon with the number indicated in the current column. Therefore, the diagonal is empty and the table should be (roughly) symmetric. Furthermore, all cells should be green to indicate that the range found is consistent and accurate.
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