Presentation @ Miniscuola WOA 2015

Click here to load reader

  • date post

    05-Aug-2015
  • Category

    Education

  • view

    116
  • download

    2

Embed Size (px)

Transcript of Presentation @ Miniscuola WOA 2015

1. Experiences in programming robotic systems for competitions: approaches, languages and tools Experiences in programming robotic systems for competitions: approaches, languages and tools Corrado Santoro ARSLAB - Autonomous and Robotic Systems Laboratory Dipartimento di Matematica e Informatica Universit`a di Catania, Italy santoro@dmi.unict.it Miniscuola WOA 2015 - Napoli, Italy, Sept. 19, 2015 Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 1 2. Experiences in programming robotic systems for competitions: approaches, languages and tools Outline 1 Robotic Competitions: An Overview 2 UNICT TEAM: a show reel 3 Architecture of the Robots 4 Robot Behaviour Basics 5 The Erlang/ERESYE Era 6 The Python/PROFETA Era 7 The C++/GOLEM Era 8 References Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 2 3. Experiences in programming robotic systems for competitions: approaches, languages and tools Robotic Competitions: An Overview What are robotic competitions? Robotic Competitions are challanges in which participants are asked to design and build one or more robots which must perform specic tasks, according to certain pre-dened rules. They are games inspired from real-life situation and (possibly) with real-life applications. Several kind of robotic competitions: Real robots vs. Virtual robots Fixed rules vs. New rules at each edition Fixed robotic platform vs. Free robotic platform Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 3 4. Experiences in programming robotic systems for competitions: approaches, languages and tools Robotic Competitions: An Overview Are robotic competitions worth? They are ... funny! They make some courses more attractive by means of the approach practice-and-learn They make research more attractive and productive since they are a concrete testbench for new solutions and algorithms (not a simple case-study for the papers) They stimulate students and research institutions to compare such solutions and algorithms They help to spread knowledge and improve knowledge and people exchange Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 4 5. Experiences in programming robotic systems for competitions: approaches, languages and tools Robotic Competitions: An Overview A very famous example: RoboCup Several competition types with several leagues: Soccer, soccer championship with teams composed by several robots Rescue, nd and rescue a victim in a hard and complex environment @Home, perform assistance tasks of typical home environment environment @Work, perform assistance tasks of typical work environment environment Real robots, xed rules, both xed and free robotic platforms Pros: you always know what to do, you can reuse robots, after a startup phase, you can focus on software alone Cons: high budget required (at least in the team startup phase), experienced teams are hard to beat Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 5 6. Experiences in programming robotic systems for competitions: approaches, languages and tools Robotic Competitions: An Overview A less famous example: Eurobot Competition based in Europe (but open to the rest of the world), born as an evolution of the Coupe de France de robotique Real robots, new rules at each edition (based on a specic theme chosen by organizers), free robotic platforms Two teams per match, 90-seconds per match One or two robots per team Aim: retrieve specic objects placed in the playing arena sometimes stack them put them in certain zones of the playing arena perform additional specic actions Pros: low budget possible, easy to gain experience Cons: robots must be re-though at each edition, skills in mechanics, electronics and (of course!) programming are required Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 6 7. Experiences in programming robotic systems for competitions: approaches, languages and tools Robotic Competitions: An Overview UNICT and Eurobot University of Catania started participation in Eurobot in 1998 with a team of students of Automation Engineering course Since 2008, a University Team (UNICT TEAM) has been formed, made of students coming from Computer Engineering Automation Engineering Electronic Engineering Mechanical Engineering Computer Science Physics Mathematics A robotic lab is started, at the Dipartimento di Matematica e Informatica: ARSLAB (Autonomous and Robotic Systems Laboratory) Aimed at education and research activities in the robotic/autonomous systems area Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 7 8. Experiences in programming robotic systems for competitions: approaches, languages and tools UNICT TEAM: a show reel UNICT and Eurobot UNICT TEAM: a show reel of some competitions Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 8 9. Experiences in programming robotic systems for competitions: approaches, languages and tools Architecture of the Robots Basic Architecture Drive Structure Two independent wheels, with DC motors Two passive feedback wheels, with quadrature encoders One or more passive omniballs as additional points of contact Sensors Photoelectric, IR, Laser, Utrasound, color sensors for game element and opponent detection Actuators Servo-motors to drive arms of various kind or end-eector Compressors for vacuum suckers Air-tank for air-compressed actuations Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 9 10. Experiences in programming robotic systems for competitions: approaches, languages and tools Architecture of the Robots Basic ArchitectureElectronics A real distributed system: several CPU-based small specialised peripheral boards, interconnected through a communication line, plus a main brain board, running the intelligence/strategy. Peripheral boards Motion Control (one) Servo Driver (several) Remote I/O (several) Opponent detector (one) Peripheral board platform Microchip dsPIC33F Microcontroller family 40 MIPS @ 80 MHz clock Programmed in C/C++ with microchip XC16/XC++16 in bare metal Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 10 11. Experiences in programming robotic systems for competitions: approaches, languages and tools Architecture of the Robots Basic ArchitectureElectronics (II) A real distributed system: several CPU-based small specialised peripheral boards, interconnected through a communication line, plus a main brain board, running the intelligence/strategy. Communication System RS485, with ad-hoc master-slave protocol (until 2011) CAN BUS (since 2012) Main board platform Embedded-Linux (Debian) system w/Cyrix CPU (until 2009) Embedded-Linux (Debian) system w/ARM9 CPU (2010, 2011) dsPIC33F, bare metal (since 2012) FPGAs (near future!) Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 11 12. Experiences in programming robotic systems for competitions: approaches, languages and tools Architecture of the Robots Software Platforms Embedded-Linux (Debian) system w/Cyrix CPU (until 2009) Erlang with ERESYE tool Embedded-Linux (Debian) system w/ARM9 CPU (2010, 2011) Python with PROFETA tool dsPIC33F, bare metal (since 2012) C++ with GOLEM tool Why dont we use Java???No thanks, I prefer to remain alive! :-) Basically for performance reasonsnot so high speed clocks, low amount of memory Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 12 13. Experiences in programming robotic systems for competitions: approaches, languages and tools Robot Behaviour Basics Robot Behaviour Basics Given a goal to accomplish.... 1 Sense the environment 2 Check/evaluate own state 3 Determine the actions 4 Execute the actions Step 3 is the most important: how actions are chosen is fundamental to successfully and eectively reach the goal. Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 13 14. Experiences in programming robotic systems for competitions: approaches, languages and tools Robot Behaviour Basics Determine the actions Roughly speaking, determining the actions implies to execute a series of if with conditions on sensor outputs and robots state. for (;;) { ... if (state == CAPTURE && object_caught () && number_of_objects == 3) { state = DEPOSIT; move_to( DEPOSIT_POINT ); } else if (state == DEPOSIT && current_position == DEPOSIT_POINT ) { release_all_objects (); ... } ... } While programming in such a way is possible, it is not worth!. Dierent (and better!) abstractions are needed. Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 14 15. Experiences in programming robotic systems for competitions: approaches, languages and tools Robot Behaviour Basics Robot Behaviour and Implementation We need ... How to represent the environment How to represent robots state How to represent sensed data How to express the way in which to determine the actions Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 15 16. Experiences in programming robotic systems for competitions: approaches, languages and tools The Erlang/ERESYE Era The Erlang/ERESYE Era Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 16 17. Experiences in programming robotic systems for competitions: approaches, languages and tools The Erlang/ERESYE Era Logic-based Robots A possible know solution is to use a logic-based approach, borrowed from the world of expert systems: Facts to represent: the environment robots state sensed data Production rules on fact to determine new facts and the actions to do Given the model, we must do the implementation ... Corrado Santoro - Programming Autonomous Robots - Miniscuola WOA 2015 17 18. Experiences in programming robotic systems for competitions: approaches, languages and tools The Erlang/ERESYE Era The Erlang Language Erlang is a functional and concurrent language developed by Ericsso