The goal of this project was implementing an indoor drone position monitoring system using AR (Augmented reality) binary markers and an external RGB (Red Green Blue) camera. The project was implemented using ROS (Robot Operating System) to enable easy upgrades in the future.
This project was made with the intention of further improvement by integration with multi-drone coordination system (swarm control). The given solution would be used to track and identify drones, find errors in the movements of drones, and provide information for the decision making process for following movements of each of the drones. AR markers are an adequate solution for the purposes of this project, but it can be improved by using various computer vision algorithms, IE detection and object identification algorithms. This would provide useful information for the needs of precise collision avoidance, complex flight formations or formations using large numbers of drones. The work provided provides a basis for future improvements and integrations into new systems for the needs of the RiTeh Drone Team.
My task was to prepare TurtleBot, so that people can work with them. TurtleBot has many fuctions from basic fuctions(moving around or rotate) to mapping a room.
Preparing my PC for work
First I had to install Ubuntu 16.04 on my remote PC. After that I had to install ROS and dependent ROS packages. And I had to set my IP adress in bashrc file. After that my PC was set up to work with TurtleBot.
Preparing Raspberry Pi for work
Now I hade to communicate with motors so that TurtleBot could move around. That was made over OpenCR board. I hade to upload OpenCR firmware on OpenCR board which I found on robotis github repository.There were 2 ways of uploading Firmware to OpenCR. First one is through terminal and second one is trough Arduino IDE. After that I could press button SW 1 or SW 2 on OpenCR and robot would move forward or rotate.
First I had to make server on which would TurtleBot connect so that
my PC and TurtleBot could communicate.
This procedure is called Bringup. To see if everything is working
normally I loaded TurtleBot inside rviz program.
Inside rviz I could see that my TurtleBot is sending me data from his
laser sensor. This data is used to see how far is the obstacle from
TurtleBot. Rviz uses this data to visually show us where the obstacle
is. It is shown to us with small red dots.
Now I could finally start with basic operation
There are many ways of how to control TurtleBot. You can use
keyboard, PS3 Joystick, XBOX 360 Joystick,
Wii Remote, LEAP Motion, etc. just to move hime around your room (move
forward, backwards, left, right, rotate right, rotate left).
Rviz program is giving us the ability to control TurtleBot (to move him
TurtleBot has fuction to detect obstacle. It will move forward until
it detects obstacle and will move very close to it without touching it.
It will send data to our PC so we can see how far the obstacle is and
when did it stop.
There is also point operation where we give TurtleBot x,y coordinates
and z-angular and TurtleBot will move to point x,y and then rotates for
One cool feature is called patrol.
We can say what type of patrol we want (rectangle, triangle and circle).
So we give TurtleBot type of patrol, radius of patrol (for example if
we say circle we must give him radius of that circle) and how many times
do we want him to repeat that lap.
SLAM (Simultaneous Localization and Mapping)
This feature gives us ability to make a map of a room and to navigate TurtleBot with that map. Firstly I started SLAM program and used my keyboard to move robot around a room. After I made mape of a room I started navigation program in which you can tell estimated pose of robot. Then you move it around a little to get a precise pose of the robot. After that you can tell him point/goal where it needs to move and he will move to that point while avoiding obstacles. Also we can use that map to run simulation so we dont need to use real robot. So first you make simulation and when everything works inside of simulation then you test it on real TurtleBot.