This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
doc:lighthouse:setup [2019-03-12 11:35] tobias [Prerequisite] |
doc:lighthouse:setup [2019-11-29 15:29] kristoffer |
||
---|---|---|---|
Line 7: | Line 7: | ||
The VR computer must have [[https:// | The VR computer must have [[https:// | ||
- | In order to setup the system you must also be able to compile a custom firmware for your Crazyflie and to program your Crazyflie 2.X. To do so youcan | + | In order to setup the system you must also be able to compile a custom firmware for your Crazyflie and to program your Crazyflie 2.X. To do so you can follow the [[https:// |
===== Setting up SteamVR without Head Mounted Display ===== | ===== Setting up SteamVR without Head Mounted Display ===== | ||
Line 15: | Line 15: | ||
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:// |
- | 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 slave base station (the one in Mode A or C) will be at the origin of the space and the Z axis will be normal to the base station window. | + | <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. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | <WRAP center round info> | ||
+ | **Troubleshooting** | ||
+ | |||
+ | If you get the following message when running the tracker_test.py script of the tutorial (step 16): | ||
+ | |||
+ | '' | ||
+ | |||
+ | 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: | ||
+ | |||
+ | * libudev-dev | ||
+ | * libvulkan-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' | ||
+ | [[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. | ||
+ | </ | ||
===== Setting up the space origin and orientation with an HMD ===== | ===== Setting up the space origin and orientation with an HMD ===== | ||
Line 34: | Line 101: | ||
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 56: | Line 123: | ||
- | Copy the last two lines and, on the computer or virtual machine you use for Crazyflie development, | + | Copy the last two lines and, on the computer or virtual machine you use for Crazyflie development, |
{{: | {{: | ||
<code c> | <code c> | ||
- | // # | + | // #ifndef DISABLE_LIGHTHOUSE_DRIVER |
+ | // # | ||
+ | // #endif | ||
baseStationGeometry_t baseStationsGeometry[] = { | baseStationGeometry_t baseStationsGeometry[] = { | ||
Line 75: | Line 144: | ||
===== 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 83: | Line 150: | ||
| | | | ||
- | This allows to easily orient the Crazyflie when setting up the system | + | The Lighthouse deck has 4 receivers and can recover its orientation. The Crazyflie |
+ | |||
+ | 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 ===== | ||
- | While the Lighthouse deck has 4 receiver | + | The lighthouse deck works with one or two V1 basestations but the estimated position will be better |
- | {{: | + | |
- | The safest way to verify | + | The protocol for the lighthouse is composed |
+ | Due to the design of the lighthouse protocol, visibility | ||
- | {{: | ||
- | Once you have located X positive, you can test if the positioning is working by starting the Crazyflie facing X and using the clients " | ||