|
AltiumAltium
|
SwarmUS - a swarm robotic platform
The Team
SwarmUS is a team of nine engineering students from the University of Sherbrooke at the end of their bachelor diploma whose graduation is scheduled for December 2021. SwarmUS has multidisciplinary expertise in engineering, since its members come from computer, electrical and robotics engineering.
The Project
The project aims to establish an open software and hardware platform (respectively Hivemind and Hiveboard) allowing the implementation of a robotic swarm doing simultaneous localization and mapping (SLAM)[1] from heterogeneous robots and Android smartphones. Android phones can be used as an augmented reality interface to view the shared map produced and as a control interface for the robotic swarm. This technological breakthrough is taking place during a major engineering design project and will be presented at the MegaGéNIALE Expo 2021. The project is academic in nature and will be used by a client at 3IT[2] in the robotics research group IntRoLab[3].
What is the MégaGéNIALE Expo?
The MégaGéNIALE Expo is the largest exhibition of university engineering projects in Canada. It is a unique opportunity to come and discover the work of graduates in each of the fields of engineering, namely: building, civil, chemical, biotechnology, electrical, computer, mechanical and robotics. The event attracts approximately 4,000 people annually. For more information on the event and photos of the event from previous years, visit the following page:
https://www.MégaGéNIALEe.usherbrooke.ca/.
[1] https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
[2] https://www.usherbrooke.ca/3it/en/
[3] https://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/Main_Page (French only)
Robotics section
Pioneer 2DX robots
The SwarmUS team was given the task to update two old Pioneer 2DX that was unused from its client’s lab (IntRoLab). These robots will not only be given back to the client, but they will also serve as bench tests to test our swarm platform. Since the electronics and the software of these robots were obsolete, a full upgrade of this robot was needed and only the chasiss and the motors were kept.
Power
The robots are powered by a 12V GOOLOO GP37-Plus LiPo battery. Theses batteries have some internal protections and an integrated charger, thus simplifying the design around the robot’s power source. However, an additional under voltage protection was needed to prevent the robot from draining the battery below the voltage limit of the LiPo cells.
Under voltage lockout board
A custom PCB that contains an under-voltage lockout (UVLO) and a voltage monitoring circuits was then designed by the team. This solution emits a high pitch sound whenever the voltage drops below a selected threshold and opens the main power relay under another lower threshold.
Power distribution
The power tree is divided in 3 main parts: the 12V main power, the 12V motors’ power and the 5V computer’s power. A main relay controlled by a toggle switch and the UVLO board connects the battery to the 12V main power which, in return, gives power to a 5V@5A regulator and to another relay that controls the motors’ power. The motors’ relay is controlled by a red mushroom button to easily cut off the 12V power to the motors in an emergency case. The 5V regulator powers the main computer and all the robot sensors.
Sensors, computer and motor controller
The robot brain is a Raspberry Pi 4 4GB that runs on Linux 20.04.1 LTS. To sense its environment, the robot is equipped with a RPLidar A2M8 to visualize obstacles all around it and is equipped with a Realsense D435i or a Realsense D455, depending on the robot, to have visual and depth information of the scene afront of it. In addition to the sensors, a RoboClaw 2x60A from BasicMicro is used as the motor controller since it has built-in protections, PID controls and quadrature encoder reading features. The motor controller and all the sensors are connected to the Rasberry Pi via USB. Furthermore, the Hiveboard and the BeeBoards are integrated into the robot and are connected though Ethernet to the Raspberry Pi to give the robots the necessary hardware to join a swarm.
Mechanical modifications
The electronic components and the computer are maintained by wooden plates built with laser cutting technology to have the perfect fit in the narrow interior of the robot. The sensors’ supports and side panels of the robot were 3D printed to give us more flexibility in the design process.
Robot’s software
The Raspberry Pi runs all the robot’s software inside the ROS (Robot Operating System) middleware. With the help of sensors, a navigation stack and RTAB-Map, the robot can move in its environment while mapping it and localizing itself in it. Additional ROS packages were made by the team to connect the ROS environment to the HiveMind running on the HiveBoard to let the swarm behaviors control the robot.
Map produced by one of our robot
The Hardware section
The following section will present in detail the 3 PCBs of the SwarmUS project:
· The HiveSight: Test platfrom for the Decawave Ultra-Wide Band (UWB) integrated circuit (IC) the DW1000
· The Hiveboard : The central board of the last iteration
· The BeeBoard : The UWB ‘’sensor’’
The HiveSight
As mentioned, the HiveSight was a test platform for the team. It confirmed that the team could do a functioning PCB (from design to testing) with the facilities we had access to. It was also a test platform for the UWB technology. Let us go over the board:
1.Protection: function as an over-voltage, over-current and polarity inversion
2.USB: The USB IC opens a COM port for debugging purpose. It is connected to the u-USB port
3.3V3&1V8 Gen: On board 3v3 and 1v8 power rail generation. The 1.8V comes from the 3.3V rail. All the components on the board are using the 3.3V rail. Only the Decawave IC DW1000 is using the 1.8V power rail.
4.IMU: Inertial measurement unit
5.WROOM reset: Physical button of the ESP32-WROOM (which is on the bottom side of the PCB) The ESP32-WROOM is a Wi-Fi IC.
6.Flash 32k: 32 Kb flash memory. Used by our custom solution of the ESP32.
7.ESP32: custom implementation of the ESP32 (Wi-Fi IC). This implementation was used to make a comparison between our custom implementation and the WROOM IC.
8.CLK Gen: Generate the 38.4MHz clock for the DW1000s. Also includes an synchronisation signal for both the DW1000.
9.DW1000: Ultra-wide Band IC. Used to localize other HiveSight in distance and angle. Each DW100 has 4 LEDs for debugging purpose.
Our implementation of the DW1000s is based off the white papers published by decawave (https://www.decawave.com/application-notes/) and is being tested by our team as I write theses lines. However, we did manage to catch some errors in our design.
The 5V power rail can come from 2 different places:
· From the green connector at the top left
· From the u-USB connector
Furthermore, the 3.3V source can come from the 3V3 rail or be supplied by the Nucleo. The Hivesight can also supply 5V or 3.3V to a Nucleo. However, when testing our design, we noticed that when the Nucleo supplied the 3V3 voltage to the HveSight, it was flashing an over-current warning. We recommend using a separate (as in the green connector/u-USB connector) power supply for the HiveSight.
The SPI communication between the HiveSight and the Nucleo is a bit deficient, as we did not treat the SPI lines correctly while routing (too much top to bottom changes) and the ground loop is not the smallest possible. We did not connect the ground of every connector of the HiveSight correctly which is slowing the SPI bus. The maximum speed of the bus we could do was 1Mbit/s of data.
The USB line to the COM port IC has switched plus and minus data lines, resulting in an error in the COM port. We recommend to either change the design or putting the data line in the correct order by removing the ESD protection and solder some wire across. In our implementation, that is the approach we used and put hot glue on top to prevent accidental disconnection.
Also, the IMU was never installed on our version because the footprint lacked the paste opening, therefore no solder was present, and the part was never connected to the board. This simple mistake will be fixed in the next implementation: The Hiveboard.
The HiveSight was designed to be used with the STM32F429ZIT Nucleo (despite the silk screen mentioning STM32F426, another mistake from our part).
All the files (schematic, BOM, PCB, Gerbers) are in the Github link.
For more details:https://github.com/SwarmUS
More details at : https://www.pcbway.com/project/sponsor/SwarmUS___A_heterogenous_robotic_platform.html
SwarmUS - a swarm robotic platform
*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(0)
- Likes(2)
- 2 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
-
7design
-
6usability
-
8creativity
-
7content
-
6design
-
10usability
-
10creativity
-
8content
More by Jonathan Bouchard
-
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
113 0 0 -
DIY Laser Power Meter with Arduino
163 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
156 0 2 -
-
A DIY Soldering Station Perfect for Learning (Floppy Soldering Station 3.0)
566 0 3