This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
doc:lighthouse:setup [2019-04-02 17:29] arnaud |
doc:lighthouse:setup [2020-05-12 14:35] (current) kimberly |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <WRAP center round important 60%> | ||
+ | This page has deprecated and moved to the new documentation framework of the main Bitcraze website. Please go to [[https:// | ||
+ | </ | ||
+ | |||
====== Setting up the lighthouse deck ====== | ====== Setting up the lighthouse deck ====== | ||
Line 15: | Line 19: | ||
It is possible to setup the SteamVR without a Head Mounted Display (HMD). This allows to setup a minimal system with just two Base stations and one controller or tracker. It can be quite useful when a full VR system is not needed or to setup a system at fairs or conference. | It is possible to setup the SteamVR without a Head Mounted Display (HMD). This allows to setup a minimal system with just two Base stations and one controller or tracker. It can be quite useful when a full VR system is not needed or to setup a system at fairs or conference. | ||
- | Follow the guide from Triad: [[http:// | + | Follow the guide from Triad: [[http:// |
+ | |||
+ | <WRAP center round info> | ||
+ | **OSX** | ||
+ | |||
+ | The osx implementation seems to be a bit shaky, but it is possible to make it work. I used the " | ||
+ | |||
+ | The paths in the triad instructions are for Windows. On Mac OSX you will find the files to update in | ||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | / | ||
+ | </ | ||
+ | |||
+ | </ | ||
For the floor to be flat, it is good to start steamVR with the controller placed on the floor. The only difference with an HMD setup is the orientation of the space: with an HMD the space will be oriented when you setup the room. Without an HMD the master base station (the one in Mode B) will be at the origin of the space. The Z axis will be the vector normal to the base station window, pointing toward the inside of the base station and rotated around X to be parallel with the floor. | For the floor to be flat, it is good to start steamVR with the controller placed on the floor. The only difference with an HMD setup is the orientation of the space: with an HMD the space will be oriented when you setup the room. Without an HMD the master base station (the one in Mode B) will be at the origin of the space. The Z axis will be the vector normal to the base station window, pointing toward the inside of the base station and rotated around X to be parallel with the floor. | ||
Line 28: | Line 48: | ||
'' | '' | ||
+ | |||
+ | Or this when running the script from the Crazyflie firmware repos: | ||
+ | |||
+ | < | ||
+ | $ python3 get_bs_position.py | ||
+ | Openning OpenVR | ||
+ | python3: Relink `/ | ||
+ | Segmentation fault (core dumped) | ||
+ | </ | ||
Then you are maybe missing some essential packages for openvr: | Then you are maybe missing some essential packages for openvr: | ||
Line 34: | Line 63: | ||
* libvulkan-dev | * libvulkan-dev | ||
* libsdl2-dev | * libsdl2-dev | ||
+ | |||
+ | On Ubuntu: | ||
+ | |||
+ | < | ||
+ | $ sudo apt-get install libudev-dev | ||
+ | $ python3 -m pip uninstall openvr | ||
+ | $ python3 -m pip install openvr | ||
+ | </ | ||
if this still doesn' | if this still doesn' | ||
[[https:// | [[https:// | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info> | ||
+ | **Troubleshooting²** | ||
+ | |||
+ | When running SteamVR on Linux, by default the access right to USB device might not be configured right. If you have problem connecting the tracker/ | ||
+ | < | ||
+ | # cat > / | ||
+ | KERNEL==" | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | You may need to restart SteamVR to see the connected devices. | ||
</ | </ | ||
Line 55: | Line 105: | ||
Clone or download the latest version or the [[https:// | Clone or download the latest version or the [[https:// | ||
< | < | ||
- | pip install openvr | + | python3 -m pip install openvr |
cd tools\lighthouse | cd tools\lighthouse | ||
- | python | + | python3 |
</ | </ | ||
Line 98: | Line 148: | ||
===== Space orientation, | ===== Space orientation, | ||
- | The orientation of the flying space will follow the orientation of the OpenVR | + | The OpenVR |
- | + | ||
- | The following rotation is done from the OpenVR space to the Crazyflie | + | |
^ Crazyflie | ^ Crazyflie | ||
| | | | ||
Line 106: | Line 154: | ||
| | | | ||
- | This allows | + | The Lighthouse deck has 4 receivers and can recover its orientation. The Crazyflie can be started in any orientation when using the lighthouse system. |
+ | |||
+ | You can test if the positioning is working by starting the Crazyflie facing X and using the clients " | ||
+ | |||
+ | ===== The number of basestations and frame synchronization ===== | ||
+ | |||
+ | The lighthouse deck works with one or two V1 basestations but the estimated position will be better and more stable with two basestations. When using two basestations, | ||
+ | |||
+ | The protocol for the lighthouse is composed of frames starting with sync pulses from the basestations. The sync pulses are used to identify which basestation the frame is originating from and this information is essential for correct positioning. When one basestation is occluded, only sync pulses from the visible basestation will be available to the system, which is fine as long as the the system can keep track of the frames. If we loose track of the frames, for instance if both basestations are occluded, the system has to re-synch again to function, but this is a quick process | ||
+ | Due to the design of the lighthouse protocol, visibility to both basestations is always required for synchronization or re-synchronization in a two basestation | ||
+ | |||
+ | ===== Position estimation methods ===== | ||
- | While the Lighthouse deck has 4 receiver and so can recover its orientation, | + | There are currently two ways of calculating |
- | {{: | + | |
- | The safest way to verify | + | The first method that was implemented calculates two vectors (or beams) from the basestations, |
+ | A more recent implementation pushes | ||
+ | It is possible | ||
- | {{: | ||
- | Once you have located X positive, you can test if the positioning is working by starting the Crazyflie facing X and using the clients " | ||