Open hidmic opened 6 months ago
But the protocol itself is nowhere to be found. It can only be reversed engineered.
Aha! This may not be 100% true. We shall take a look at some of the documentation and tools over at https://github.com/bitcraze/lighthouse-fpga. Thanks @glpuga.
Some info here, found the Bitcrazy API for deck drivers. This will help understand the src code linked above for the lighthouse driver code
I was able to hook up the board to a RPi4 and start receiving data from the sensors with which the positioning algorithm could be implemented.
The bad news: I mistakenly connected the VCC/GND pins backwards and most likely burnt something. Most likely because the board turns on and responds to commands, but does not output sensor info (I think the TS4231 IR receivers burnt).
I will be getting a replacement, but that puts the project on hold for a while (no US market, only Europe). I'll keep this issue updated.
Desired behavior
The Lighthouse Positioning System by Bitcraze is a low-cost pose estimation system for their flagship product, the Crazyflie MAV. It uses a number of IR beacons and a receiver on a deck (the equivalent of Arduino shields) to provide the Crazyflie MAV with pose estimates in real-time.
If we could leverage this deck, we could provide Andino with pose tracking support. This is immensely useful when validating, tuning, and benchmarking localization, mapping, and navigation systems. Also when teaching about them.
Alternatives considered
There are other, full blown motion capture solutions in the market but these are exceedingly expensive when compared with Andino's target budget. We are talking tens of thousands of US dollars.
Implementation suggestion
The one difficulty with this is that both the hardware interface and the communication protocol are very loosely documented. The pinout for the Lighthouse Positioning deck and for Crazyflie expansion decks in general is public. The firmware that talks to this deck is also open source (see here and here). But the protocol itself is nowhere to be found. It can only be reversed engineered. It shouldn't be difficult to do so for one of the typical on-board computers for Andino (e.g. an RPi4).