Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for the Bitcraze™ Lighthouse Positioning System #236

Open
hidmic opened this issue Apr 25, 2024 · 3 comments
Open

Add support for the Bitcraze™ Lighthouse Positioning System #236

hidmic opened this issue Apr 25, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@hidmic
Copy link

hidmic commented Apr 25, 2024

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).

@hidmic hidmic added the enhancement New feature or request label Apr 25, 2024
@github-project-automation github-project-automation bot moved this to 🆕 Backlog in Andino Roadmap Apr 25, 2024
@hidmic
Copy link
Author

hidmic commented Apr 25, 2024

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.

@francocipollone francocipollone moved this from 🆕 Backlog to 🏗 In progress in Andino Roadmap Apr 25, 2024
@JCarosella
Copy link

Some info here, found the Bitcrazy API for deck drivers. This will help understand the src code linked above for the lighthouse driver code

@JCarosella
Copy link

Status update:

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: 🏗 In progress
Development

No branches or pull requests

2 participants