Using Flow Deck with laser pointer beacons
Posted: Mon Jan 22, 2018 12:13 am
Hello, I am new to this forum.
I have bought a CrazyFlie2 STEM bundle with the flow deck to attempt some basic indoors navigation. The Loco system is out of my budget and in any case is not precise enough for my purposes.
What I had in mind was to attempt to navigate very precisely using upwards-pointing laser pointers.
I have successfully installed all the Python libraries etc for the flow deck and can run the example scripts for MC Commander.
I had hoped that these commands in conjunction with the flow deck would allow me to fly a coarse search pattern with the CrazyFlie.
I am intending to use vertically pointed laser pointers on the ground and then simple boresighted sensors (photodiodes etc) on the drone. Upon overflying one of the laser pointers, once it illuminated the boresighted sensor the CrazyFlie would attempt to retrace its steps and then lock on to the beam and ride it down to ground level. What I would do then is another thread for the future.
Do people think this would actually work?
Can the flow deck sensors survive if they are illuminated by such a laser or would they be burned out?
In initial tests, I don't think the CrazyFlie in conjunction with the flow deck can really give such precise (<1cm) movements, but of course my expectations were no doubt too optimistic for such an excellent lightweight, low cost drone
Can anybody give me any tips on steadying the drone?
One thing I had thought of was somehow changing the hover mode with the flow deck as supported by MC Commander - I have scant idea how to do this and have never coded in Python previously.
As an example, the drone often exhibits what I call the "crumpled duvet effect" because I usually fly it over my duvet in case of crash landings! Undulations in the duvet cause quite a bumpy flight for the drone since it tries to hold an exact hover height. Basically there is a touch of an autopilot induced oscillation (AIO) here, since as the drone undulates up or down the ToC sensor in the flow deck sees a larger or smaller slice of the ground which varies with the square of the distance so it is not "seeing" the same area as it bobs up and down. Woe betide if I try flying it off my bed altogether, since then it suddenly tries to drop down to the set altitude above floor level, and nearly always crashes (I assume this is due to vortex rign state due to an excessively quick descent)
All of this could be avoided if I just could turn off hover - so what is the command in MC Commander etc to do this?
Overflying objects of known height would even be a useful way of providing waypoints in its own right.
I would be extremely grateful if someone could point me in the direction of example snippets of Python code so that I could begin to learn to program the drone in Python alongside the basic MC Commander commands (for instance, turning hovering off, and also perhaps slowing down or rationalising the data logged - I have replied to a separate developer thread about some odd logging behavour I have seen).
This also segues into making a larger chassis perhaps in conjunction with the BigQuad. For instance, the obvious thing to do would be to have a central boresighted sensor to detect the laser pointers- except that the flow deck is mounted centrally.
Can the flow deck double as the laser sensor? (Would it be damaged?)
Otherwise, either the flow deck or the boresighted sensor would have to be mounted off-centre, on one of the arms for instance.
I would also hanker after adding a Qi charger deck and, for instance, landing the drone on a charger plate using the laser pointer (or something else?) as a beacon. Ultimately I would also like to try picking things up and dropping them off, but that is a discussion for another day. Basically it doesn't all fit in the normal stack of decks, so I need some sort of breakout board to distribute different components on different arms.
Can additional sensors (e.g photodiodes) be added to spare pins on the CrazyFlie? And if so, how can this be coded - in Python? Is there any such example code that people could point me towards?
This is all too much for one post of course. But I can see a realistic progression:
Learn more about commands in Python for the drone
Turn off hovering somehow and test
Experiment with CrazyFlie hardware and in Python for adding additional sensors such as boresighted photosensors
Attempt to create BigQuad footprint or similar with different components spread out on different arms
Any advice on ANY of this very gratefully received
Many thanks
Astrobiologist
(Oliver)
I have bought a CrazyFlie2 STEM bundle with the flow deck to attempt some basic indoors navigation. The Loco system is out of my budget and in any case is not precise enough for my purposes.
What I had in mind was to attempt to navigate very precisely using upwards-pointing laser pointers.
I have successfully installed all the Python libraries etc for the flow deck and can run the example scripts for MC Commander.
I had hoped that these commands in conjunction with the flow deck would allow me to fly a coarse search pattern with the CrazyFlie.
I am intending to use vertically pointed laser pointers on the ground and then simple boresighted sensors (photodiodes etc) on the drone. Upon overflying one of the laser pointers, once it illuminated the boresighted sensor the CrazyFlie would attempt to retrace its steps and then lock on to the beam and ride it down to ground level. What I would do then is another thread for the future.
Do people think this would actually work?
Can the flow deck sensors survive if they are illuminated by such a laser or would they be burned out?
In initial tests, I don't think the CrazyFlie in conjunction with the flow deck can really give such precise (<1cm) movements, but of course my expectations were no doubt too optimistic for such an excellent lightweight, low cost drone
Can anybody give me any tips on steadying the drone?
One thing I had thought of was somehow changing the hover mode with the flow deck as supported by MC Commander - I have scant idea how to do this and have never coded in Python previously.
As an example, the drone often exhibits what I call the "crumpled duvet effect" because I usually fly it over my duvet in case of crash landings! Undulations in the duvet cause quite a bumpy flight for the drone since it tries to hold an exact hover height. Basically there is a touch of an autopilot induced oscillation (AIO) here, since as the drone undulates up or down the ToC sensor in the flow deck sees a larger or smaller slice of the ground which varies with the square of the distance so it is not "seeing" the same area as it bobs up and down. Woe betide if I try flying it off my bed altogether, since then it suddenly tries to drop down to the set altitude above floor level, and nearly always crashes (I assume this is due to vortex rign state due to an excessively quick descent)
All of this could be avoided if I just could turn off hover - so what is the command in MC Commander etc to do this?
Overflying objects of known height would even be a useful way of providing waypoints in its own right.
I would be extremely grateful if someone could point me in the direction of example snippets of Python code so that I could begin to learn to program the drone in Python alongside the basic MC Commander commands (for instance, turning hovering off, and also perhaps slowing down or rationalising the data logged - I have replied to a separate developer thread about some odd logging behavour I have seen).
This also segues into making a larger chassis perhaps in conjunction with the BigQuad. For instance, the obvious thing to do would be to have a central boresighted sensor to detect the laser pointers- except that the flow deck is mounted centrally.
Can the flow deck double as the laser sensor? (Would it be damaged?)
Otherwise, either the flow deck or the boresighted sensor would have to be mounted off-centre, on one of the arms for instance.
I would also hanker after adding a Qi charger deck and, for instance, landing the drone on a charger plate using the laser pointer (or something else?) as a beacon. Ultimately I would also like to try picking things up and dropping them off, but that is a discussion for another day. Basically it doesn't all fit in the normal stack of decks, so I need some sort of breakout board to distribute different components on different arms.
Can additional sensors (e.g photodiodes) be added to spare pins on the CrazyFlie? And if so, how can this be coded - in Python? Is there any such example code that people could point me towards?
This is all too much for one post of course. But I can see a realistic progression:
Learn more about commands in Python for the drone
Turn off hovering somehow and test
Experiment with CrazyFlie hardware and in Python for adding additional sensors such as boresighted photosensors
Attempt to create BigQuad footprint or similar with different components spread out on different arms
Any advice on ANY of this very gratefully received
Many thanks
Astrobiologist
(Oliver)