Disable the flow deck to use an external positioning system

Discussions related to positioning systems where the position is calculated outside the Crazyflie and sent to the device using radio, including MoCap systems
Post Reply
RafaelGB
Beginner
Posts: 1
Joined: Thu Jan 31, 2019 9:37 pm

Disable the flow deck to use an external positioning system

Post by RafaelGB » Thu Jan 31, 2019 10:02 pm

Hello all,

I'm part of a research group and we are trying to use the Crazyflies for collision avoidance and formation flight. We have several Crazyflies in our lab and we are using tracker balls and an Optitrack system to collect their position data. We are using the Crazyradio and the python lib to connect to them and send commands.

Currently we are able to send them the position data using cf.extpos.send_extpos() and send waypoints using cf.commander.send_position_setpoint().

The problem is that although they receive all the information they need to localize themselves from the Optitrack, they are still using the data from the flow deck. So, when we fly one quadrotor below another, the one that is above loses stability. I tried physically removing the flow deck and tried to fly using different flight modes but without the deck they don't takeoff.

Is it possible to disable the flow deck in a way that they only use the information from the Optitrack?

Thank you very much.



tobias
Bitcraze
Posts: 1891
Joined: Mon Jan 28, 2013 7:17 pm
Location: Sweden

Re: Disable the flow deck to use an external positioning system

Post by tobias » Fri Feb 01, 2019 10:22 am

I think the issue why it is not working when the flow deck is removed is because it the uses a different estimator which is better for manual control. You will have to switch to the kalman estimator which you can do using parameters. The kalman estimator is nr 2 and it would look something like this

Code: Select all

cf.param.set_value('stabilizer.estimator', '2')
self.reset_estimator(self._cf)
resetting and checking for good position could be a good idea but not necessary. See autonomousSequence.py example of how it can be done.

Post Reply