|
KiCADKicad
|
CrazyFlie Obstacle Avoidance Sensor Deck
Crazyflie is a lightweight micro aerial vehicle; or in simple terms, a mini drone from a company called Bitcraze. This drone platform is widely used among the robotics research community for micro UAVs and swarm robots. It being an open source platform with both the hardware and firmware resources available freely online in GitHub repositories, users are given an opportunity to design a "deck", which is a pluggable expansion board on top of the main drone platform PCB.
What is this about?
This hardware design is a PCB for such a custom deck with exact dimensions to match CrazyFlie 2.x drones. It includes the main deck PCB and PCBs for Time-of-Flight sensors. This deck can be used to detect obstacles around the CrazyFlie drone and help navigation much easier without relying on a line of sight view with the drone.
CrazyFlie runs on a small Li-Ion battery that accounts for a maximum 7 minutes flight time with minimum payload. The more power it uses or heavier it is, shorter the flight time. However, the stock drone platform does not have any obstacle sensing ability around it. If it were to fly, the pilot needs to have a clear line of sight with the drone. Otherwise the drone might crash into a wall or an obstacle.
If someone plugs in a small camera to capture the view to navigate, the battery would drain faster and the drone would not be able to fly any longer. How can one navigate this tiny drone, without having to constantly see it?
I had this research problem at hand to design a micro aerial vehicle that can navigate itself inside a collapsed building. Obviously the human controller/pilot will not have a clear line of sight with the drone almost all the time due to safety reasons. In order to expand the flight time, cameras is not even an option. The only viable alternative is to build a type of a miniaturised Light Detection And Ranging (LiDAR) on top of the drone which is light-weight and doesn't consume much energy. This LiDAR implementation will help us generate a map of the surrounding environment. But we couldn't find such a device to match the requirements in the market.
Luckily, CrazyFlie support custom decks and we could make one ourselves. And that's exactly what we did. We had to go a bit further upgrading the stock firmware to support this new obstacle avoidance deck. Finally this work was published in Australasian Conference on Robotics and Automation (ACRA 2020).
How does it work?
CrazyFlie drone platform can support multiple expansion decks. They have couple of such decks on their official website for various sensing and actuation functions such as RGB LED deck, micro SD Card deck, wireless charging deck etc. These decks communicate with the main PCB using I2C protocol. I2C protocol uses two wires known as SDA (Data) and SCL (Clock) to communicate back and forth between a main device called master and a second device/sensor called slave. In our case, CrazyFlie main board will be the "master" and all other decks will be "slave"s. Each slave has a device ID (7 or 10 bits long), master uses to address them. When called upon, only the respective slave should answer.
In this design, we have thirteen (13) VL53L1X Time-of-Flight (ToF) sensors mounted around the deck facing different orientations covering 360 degree view. These sensors are from STMicroelectronics and they can measure accurately up to 4 meters at a rate of 50 Hz. Each of these sensors share the same I2C address (which is 0x29). Here is the catch. When the master device calls this address, which slave is going to answer? That's right! It will create a conflict because all the slave ToF devices has the same address. As a workaround, we are using an I2C bus expander -- PCA9555. This expander can support upto 16 channels. This is ideal for us as we're only using 13 of them. This expander will help us address only one of the ToF sensors at a time without creating any conflict.
Once powered up and configured correctly with the main CrazyFlie deck, the firmware will drive each of these ToF sensors to capture range Information in the surrounding environment. The rate of this scan can be as high as 20 milliseconds per sensor.
Based on these range information, we can generate a two-dimensional (2D) map of the surrounding environment. This is indeed a point cloud map. A point cloud map is a map of points where each point correspond to a point in 3D space. There are quite a few of algorithms to deduce a path from such a map. The following figure shows the point cloud map generated from range readings captured with the sensor deck in orange and the actual trajectory of the CarzyFlie drone in a blue line.
The amazing part of this is that the pilot does not need to see the drone to navigate it. He only need to see the real-time map of the surrounding environment which refreshes pretty quickly (at 50 Hz) and guide the drone away from obstacles. Since the power consumption is also very low, the flight time is not affected a lot.
Have a look at this demonstration video where a human pilot navigates a CrazyFlie drone with this obstacle avoidance deck in a corridor with turns without having to see the drone.
What does the hardware include?
This project has two parts.
Base PCB: This is the main PCB where the I2C bus expander and ToF sensor PCBs connect to.
ToF Sensor PCB: Each deck requires 12 such ToF sensor PCBs
ToF Sensor PCB link: https://www.pcbway.com/project/shareproject/ToF_Sensor_PCB_CrazyFlie_Obstacle_Avoidance_Sensor_Deck_c4b8707d.html
Assembly
Each assembled ToF sensor PCB needs to be soldered onto the main deck PCB board as shown in the figure below.
Use Case
If one could assemble this set of PCBs with all the components and sensors, the official CrazyFlie firmware already supports this custom deck since this pull request feat: pca9555 library by me which is now merged into production branch.
This sensor deck is used as the basis for a disaster response research which was published in Australasian Conference on Robotics and Automation (ACRA 2020) and the citation is as follows.
Sensor Deck Development for Sparse Localization and Mapping for Micro UAVs to Assist in Disaster Response T. Suraj, M. Padmal, D. Bibile, P. Jayasekara Conference: Australasian Conference on Robotics and Automation (ACRA 2020) [Link to paper]
CrazyFlie Obstacle Avoidance Sensor Deck
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(4)
- Likes(9)
- Engineer Aug 25,2023
- Elizabeth Ann Moran Jul 27,2023
- jhevar Jun 15,2023
- Paul BluJay Feb 09,2023
- Engineer Nov 11,2022
- Bo Hein Sep 22,2022
- Engineer Apr 06,2022
- Hohol2010 Nov 07,2021
- FPM Nov 01,2021
- 3 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
9design
-
7usability
-
9creativity
-
9content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
More by Padmal
- ToF_Sensor PCB_CrazyFlie Obstacle Avoidance Sensor Deck ToF Sensor PCB: Each deck requires 12 such ToF sensor PCBsDeck PCB link:https://www.pcbway.com/proje...
- Pocket Science Lab What is Pocket Science Lab?Pocket Science Lab also known as PSLab is a small USB/Li-Ion Battery powe...
- CrazyFlie Obstacle Avoidance Sensor Deck Crazyflie is a lightweight micro aerial vehicle; or in simple terms, a mini drone from a company cal...
- NeuroLab - Open Source Brain Wave Analyzing Tool NeuroLab - Open Source Brain Wave Analyzing ToolDESCRIPTIONThis project is inspired from another ope...
- PSLab Version 4 ### DESCRIPTIONThis is the work I have done and continued for Google Summer of Code 2017. PSLab is a...
- MCP2200 PIC24EP256GP204 Breakout Boards ### DESCRIPTIONThis PCB allows you to create breakout boards for Microchip MCP2200 UART bridge IC an...
-
-
-
-
-
-
3D printed Enclosure Backplate for Riden RD60xx power supplies
153 1 1 -
-