Our project is to make a robot based on the kilobot and to add an autonomous charging system and a better positionning system. This program is made as part of an industrial project with Polytech Sorbonne as the industrial and the Institute of Intelligent Systems and Robotics (ISIR), here, as the client.
The team is composed of five Polytech Sorbonne students:
- Romain Bohbot
- Ryan Danekas
- Mathieu Gourichon
- Kristian Harge (project manager)
- Valentin Renard
A kilobot is a mobile device developped by Harvard University. It is a tiny device (diameter of 33mm and height of 34mm) which has been created to work in swarm. Indeed, these robots are meant to operate in group, up to a thousand units. They are mainly used in a laboratory purpose to do research.
In order to create a new robot that could be fully compatible with the actual kilobots, we needed first to understand how they work. We divided our research in two main part : the hard ware one (electronic schematic), and the software one (code).
Another important point is the Overhead Controller (OHC) that is used to control the robots. It is what makes this project very interesting. Indeed the OHC allows you to control your robots via infrared (IR), without having to plug them to your computer. You can even upload your code directly through it.
First, let's take a look at the hardware part. The kilobots schematic can be divided in five main parts :
- The microcontroller (an atmega328p) that control all the components
- The emitter part, composed of an IR emitting led controlled by a transistor. It allows the kilobot to send message
- The receipt part, composed of an IR receiver led. It allows the kilobot to receive message. The signal received is filtered and amplified thanks to operational amplifier before being analysed by the microcontroller
- The two vibrating motors that allows the kilobot to move.
- A RGB led that plays the role of the Human Machine Interface (HMI)
To code your kilobot, you can use a very user friendly interface that looks a lot like the arduino one. There is a setup and a loop function. A library named "kilolib" offers you a lot of simple function to set the color of the RGB led, send or receive message, make the robot move...
The kilobot works following different states, the most important are :
- Run state : does what you have coded
- Pause state : does nothing
- Sleep state : sleep
- voltage state : indicates is battery level
- Upload state : uploads a new code
Here are the very least functionalities of a kilobot. Our job is now to create a new robot that will have the same comportment, that will be able to communicate with kilobots, but that will also have the following new functionalities :
- Add a positioning system. In fact for now the kilobot has only one receiver. Even if it can estimate the distance of the other robot that send the message, it can not know where that robot is. So we need to find a way so we can know more or less where is the robot we are talking too.
- Create an autonomous charging system. For now, when a kilobot needs to be refuel, it has to be taken by hands and place on a charging station. It can be really annoying especially if you have hundreds of robots. The objective is, therefore, to create an "autonomous charging system" where the kilobots could refuel without having to be manipulated.
The new positioning system has 3 infrared receptors, so he can detect information coming from 6 different directions. This feature allows us to have one additional information in the messages that each kilobot receives, the direction. So when this new kilobot receives a message, it has three useful informations for the user :
- Message : the received content of 4 bytes of data.
- Distance : the distance between the two communicating kilobots.
- Position : the relative direction in a 60° precision of the sending kilobot.
The code is available at : https://github.com/kristianharge/projetIndustriel
The schematic is attached to this post.
Autonomous charging systemThe autonomous charging system consists in a wall emitting a specific message so the kilobot identifies the wall as the charging station. Then if the voltage is low, the kilobot will search in the arena for the charging station, and once it found it, it will try to get closer until it detects that it is charging.
ConclusionThis project was really fulfilling, we learned about a lot of different technologies that were completely new for all of us. Beside the huge technical apprenticeship, we worked a lot on our management and group working skills. The work is being continued by the ISIR research lab, and they hope to finish in two years roughly.
Comments
Please log in or sign up to comment.