12.07.2015 Views

Swarm Robots for Autonomous Thrash and Garbage Removal

Swarm Robots for Autonomous Thrash and Garbage Removal

Swarm Robots for Autonomous Thrash and Garbage Removal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

function calls. This complex function intentionally hides the implementation<strong>and</strong> details of its inner workings.The final <strong>and</strong> most crucial software system is the one in charge of integrating allthese systems, <strong>and</strong> synchronizing them to work together to create <strong>and</strong> passmessages between them. The final system design goals are to provide a simplegraphical user interface <strong>for</strong> a complex <strong>and</strong> well designed object-orientedsystem. This software system, written in C++, is responsible <strong>for</strong> h<strong>and</strong>ling all theartificial intelligence comm<strong>and</strong>s <strong>and</strong> behaviours. The project uses <strong>and</strong> integratesa multi-language plat<strong>for</strong>m software system, each one with independent goals,but targeted to work together. We can refer to the three systems as low-levelsystem (C), midlevel system (C++) <strong>and</strong> high-level system (again in C++).Low-Level System (LLS)The main goal of this system is to give the robots the ability to per<strong>for</strong>m differentbehaviours to allow interaction with the hardware (i.e., motors, LED’s etc.). TheLLS is designed with the goal of encapsulating each action into simple functioncalls, each of which will cause one <strong>and</strong> only one result in hardware. The robotmotion has been segregated into four sub classes: move<strong>for</strong>ward(), moveleft(),moveright(), stop() <strong>and</strong> moveback(). The hardware components that need to becontrolled are as follows.• Two Motor Controllers: These motor controllers provide independentmovement to the two wheels. Each wheel receives a high (1) or a low (0) value,corresponding to either an ON or an OFF state of the motor.• Digital I/0 ports: The ability to set <strong>for</strong> read or write up to eight distinct pins onthe I/O port headers permits additional hardware components to be added to thesystem. Some possible uses of these pins are <strong>for</strong> IR sensors (as inputs) or <strong>for</strong>LEDs (as outputs).• Serial Communication: The ability to communicate with another serial deviceis available. The exchange of data can be used <strong>for</strong> further intelligent behaviourIn addition to the hardware control provided above, the second goal is to createa wireless protocol to allow the robot to receive <strong>and</strong> send messages from theoutside world. A function has been created that h<strong>and</strong>les the incoming packetfrom the wireless receiver <strong>and</strong> trans<strong>for</strong>m its data into one of the comm<strong>and</strong>s thatare specified above. By integrating these actions, we can control the behaviourof the robot by simply sending the packets with the right data. In order <strong>for</strong> thisto work properly, we need to specify a consistent data packet that will tell therobot an appropriate series of actions.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!