ASEBA Open-Source Low-Level Robot Programming ephane Magnenat 1 St´ stephane at magnenat.net etornaz 2 Philippe R´ 1 Autonomous Systems Lab ETH Z¨ urich 2 Mobots group - Laboratory of robotics Systems EPFL February 5, 2012 1 / 46
Outline Motivation Current Use Technical Description Performances Wrap-up 2 / 46
Outline Motivation Current Use Technical Description Performances Wrap-up 3 / 46
Motivation: Multi-Microcontrollers Robots Modern integrated mobile robots have ◮ lots of degrees of freedom ◮ many and various sensors Their computing infrastructure consists of ◮ a main processor running Linux (ex. Gumstix) ◮ multiple microcontrollers ◮ a common communication bus (ex. I2C or CAN) 17cm 4 / 46
Motivation: Usual Approach is Centralized Polling... main processor microcontroller 1 continuously main microcontroller 2 ◮ read sensors processor ◮ process data microcontroller 3 ◮ set actuators microcontrollers bus ◮ interface to activity physical devices cycle cycle bus 1 1 ◮ I2C 5 / 46
Motivation: ...but Distributed Events are Better! main processor microcontroller 1 ◮ react to events main microcontroller 2 processor ◮ send events microcontroller 3 microcontrollers ◮ interface to physical devices bus activity ◮ preprocess data ◮ send events ◮ react to events 2 3 bus ◮ CAN 6 / 46
Motivation: An Example of Distributed Events left motor proximity sensors right motor time 7 / 46
Motivation: An Example of Distributed Events left motor proximity sensors right motor no obstacle time 8 / 46
Motivation: An Example of Distributed Events left motor proximity sensors right motor no obstacle obstacle detected time 9 / 46
Motivation: An Example of Distributed Events left motor proximity sensors right motor no obstacle obstacle detected no obstacle time 10 / 46
Motivation: How to Implement Distributed Events? ◮ Contrary to centralized polling, with events the emission policy must be distributed as well. ◮ Microcontrollers must take decisions about what event to send when, and how to link incoming events to actuators. ◮ Therefore they must be programmable, but flashing is slow. ◮ A virtual machine is the solution... ◮ And so Aseba was born! 11 / 46
Motivation: How to Implement Distributed Events? ◮ Contrary to centralized polling, with events the emission policy must be distributed as well. ◮ Microcontrollers must take decisions about what event to send when, and how to link incoming events to actuators. ◮ Therefore they must be programmable, but flashing is slow. ◮ A virtual machine is the solution... ◮ And so Aseba was born! ◮ Aseba stands for Actuator and Sensor Event-Based Architecture. ◮ Aseba puts virtual machines inside microcontrollers; enabling their programming through a user-friendly language and IDE. 12 / 46
Outline Motivation Current Use Technical Description Performances Wrap-up 13 / 46
Swarm Robotics: hand-bot 6 Aseba VM, real-time unwind control, grasping, and state machines implemented in Aseba 14 / 46
Swarm Robotics: hand-bot hand-bot video at http://www.youtube.com/watch?v=92bLgE6DO2g In this video, the hand-bot climbs a shelf and retrieves a book solely using Aseba. 15 / 46
Autonomous Construction: Lonelybuilder 5 Aseba VM, state machines coded in Aseba localisation, mapping, planning running on Linux ARM 16 / 46
Autonomous Construction: Lonelybuilder Lonelybuilder video at http://www.youtube.com/watch?v=h865RHbT9Ms In this video, Lonelybuilder constructs a tower by manipulating cubes. The manipulation state machines are implemented with Aseba. 17 / 46
Brick for Building Robot: Smartrob ◮ 2 motor and 8 servo drivers ◮ single 3 to 25 V input ◮ 8 infrared-sensor drivers ◮ shipped with Aseba ◮ additional I/O and A/D ◮ ROS and D-Bus integration ◮ CAN bus, stackable ◮ soon available for buying 18 / 46
Educational Robotics: Thymio II Full-featured open-hardware programmable mobile robot for 100 CHF ( ≈ 80 ➾ ), see http://aseba.wikidot.com/en:thymio 19 / 46
Educational Robotics: Thymio II 20 / 46
Educational Robotics: Thymio II 1 2 3 4 VCC COX1 X1 6 PIX106 PIR10102 PGC 5 PIX105 PGD COR101 R101 4 PIX104 VCC 10K VCC 3 PIX103 COU19 U19 A 2 PIX102 PIR10101 X2 COX2 A 7 16 PGD Buton1 1 1 PIX101 PIC3301 PIU1907 MCLR PGED1/RP0/PMA6/VREF+/AN0/CN2/RB0 PIU19016 PIX201 PIS202 57 15 PGC Buton2 2 Con1x6 COC33 C33 PIU19057 ENVREG PGEC1/RP1/VREF-/AN1/CN3/RB1 PIU19015 PIX202 14 Buton3 3 100nF VMIO/RP13/C2INB/AN2/CN4/RB2 PIU19014 PIX203 COS2 S2 PIC3302 X5R 56 13 Buton4 4 VCAP/VDDCORE VPIO/C2INA/AN3/CN5/RB3 SW-PB PIC3401 PIU19056 PIU19013 PIX204 34 12 Buton5 5 C34 COC34 PIU19034 VBUS PGED3/RP28/USBOEN/C1INB/AN4/CN6/RB4 PIU19012 PIX205 35 11 6 10uF X5R PIU19035 VUSB PGEC3/RP18/VBUSON/C1INA/AN5/CN7/RB5 PIU19011 POIR0SENS0GROUNDR IR-sens-groundR PIX206 PIS201 GND PIC3402 VCC 17 PGEC2/AN6/RP6/CN24/RB6 POIR0SENS0GROUNDL IR-sens-groundL Con1x6 10 PIU19017 18 S GND PIU19010 VDD PGED2/RCV/RP7/AN7/CN25/RB7 PIU19018 POIR0SENS0FRONT1 IR-sens-front1 PIS20S 26 21 VDD RP8/AN8/CN26/RB8 IR-sens-front3 PIU19026 PIU19021 POIR0SENS0FRONT3 GND 38 22 GND VDD PMA7/RP9/AN9/CN27/RB9 POIR0SENS0FRONT5 IR-sens-front5 GND PIU19038 19 PIU19022 23 PIU19019 AVDD TMS/PMA13/AN10/CVREF/CN28/RB10 PIU19023 POMICRO Micro VCC VCC VCC VCC VCC 24 POUSB0PRESENT USB-Present TDO/AN11/PMA12/CN29/RB11 POMOTOR20SENS MOTOR2-SENS PIU19024 9 27 PIU1909 VSS TCK/PMA11/AN12/CTED2/CN30/RB12 PIU19027 POMOTOR10SENS MOTOR1-SENS PIC3501 PIC3601 PIC3701 PIC3801 PIC3901 COC39 C39 25 28 INNTC2 COC35 C35 COC36 C36 C37 COC37 COC38 C38 VSS TDI/PMA10/AN13/CTED1/CN31/RB13 PIU19025 PIU19028 100nF 41 29 100nF 100nF 100nF 100nF VSS CTPLS/RP14/PMA1/AN14/CN32/RB14 POSDCARD0CS SDcard-CS PIC3502 PIC3602 PIC3702 PIC3802 PIC3902 PIU19041 20 PIU19029 30 PIU19020 AVSS RP29/PMA0/AN15/REFO/CN12/RB15 PIU19030 POSOUND0OUT SOUND_OUT Y1 COY1 39 2 1 OSCI/CLKI/CN23/RC12 GND GND GND GND GND PIU19039 47 PIC4101 PIY102 PIY101 PIC4201 B C41 C42 B SOSCI/C3IND/CN1/RC13 PIU19047 POLED0CS LED_CS COC41 815-ABLS-8-B2 COC42 GND 48 RPI37/SOSCO/C3INC/TICK/CN0/RC14 POIR0SENS0BACKR IR-sens-backR 18pF 18pF PIU19048 40 PIC4102 PIC4202 OSCO/CLKO/CN22/RC15 PIU19040 46 Therm. NTC Sensor RP11/DMH/CN49/INT0/RD0 PIU19046 POLED0CLK LED_CLK 49 GND GND RP24/VCPCON/CN50/RD1 PIU19049 POSDCARD0CK SDcard-CK 50 DPH/RP23/CN51/RD2 POSDCARD0DI SDcard-DI PIU19050 51 RP22/PMBE/CN52/RD3 PIU19051 POSDCARD0DO SDcard-DO 52 PMWR/RP25/CN13/RD4 MOTOR2-PWML1 PIU19052 POMOTOR20PWML1 INNTC2 53 PMRD/RP20/CN14/RD5 POMOTOR20PWML2 MOTOR2-PWML2 PIRT101 PIU19053 54 C3INB/CN15/RD6 PIU19054 POIR0PULSE0GROUNDL IR-pulse-groundL 55 C3INA/CN16/RD7 POACC0INT ACC_INT PIR10202 RT1 CORT1 PIU19055 t° 42 RP2/DMLN/RTCC/CN53/RD8 POMOTOR10PWML2 MOTOR1-PWML2 R102 NCP15XH103F03RC 58 PIU19042 43 COR102 POUSB0500 USB-500 VBUSST/VCMPST1/CN68/RF0 RP4/DPLN/SDA1/CN54/RD9 POIR0PULSE0FRONT IR-pulse-front PIU19058 PIU19043 10K 59 44 POUSB0CHARGE USB-Charge VCMPST2/CN69/RF1 RP3/SCL1/PMCS2/CN55/RD10 POIR0SENS0BACKL IR-sens-backL PIU19059 33 PIU19044 45 PIRT102 PIR10201 COR137 R137 PIU19033 RP16/USBID/CN71/RF3 RP12/PMCS1/CN56/RD11 PIU19045 POLED0SDI LED_SDI 31 POIR0PULSE0BACK IR-pulse-back PMA9/RP10/SDA2/CN17/RF4 PIC6201 PIR13701 PIR13702 PIU19031 32 60 VCC C62 COC62 180 POMOTOR10PWML1 MOTOR1-PWML1 PMA8/RP17/SCL2/CN18/RF5 PMD0/CN58/RE0 POMOTOR20PWMH1 MOTOR2-PWMH1 PIU19032 PIU19060 61 100nF PMD1/CN59/RE1 MOTOR2-PWMH2 PIU19061 POMOTOR20PWMH2 PIC6202 37 62 PIR10302 C POD0 D+ D+/RG2 PMD2/CN60/RE2 POVAENABLE VAenable C PIU19037 36 PIU19062 63 PIR10402 COR103 R103 D- PIU19036 D-/RG3 PMD3/CN61/RE3 PIU19063 POMOTOR10PWMH1 MOTOR1-PWMH1 4 64 R104 COR104 4.7K R143 PMA5/RP21/C1IND/CN8/RG6 PMD4/CN62/RE4 IR-pulse-groundR COR143 PIU1904 PIU19064 POIR0PULSE0GROUNDR GND IR_Receiver 5 1 4.7K RP26/PMA4/C1INC/CN9/RG7 PMD5/CN63/RE5 POMOTOR10PWMH2 MOTOR1-PWMH2 PIR14302 PIR14301 PIU1905 6 PIU1901 2 PIR10301 100K POIR0SENS0FRONT4 IR-sens-front4 PIU1906 PMA3/RP19/C2IND/CN10/RG8 PMD6/SCL3/CN64/RE6 PIU1902 PIR10401 POACC0SCK ACC_SCK 8 3 POIR0SENS0FRONT2 IR-sens-front2 RP27/PMA2/C2INC/CN11/RG9 PMD7/SDA3/CN65/RE7 POACC0SDA ACC_SDA PIU1908 PIU1903 36 kHz IR receiver PIC24FJ128GB106-I/PT VA PIR10502 100 R105 COR105 COU20 U20 3 PIR10501 VSS PIU2003 PIC4301 C43 COC43 1 IR_Receiver OUT 4.7uF PIU2001 PIC4302 D D 2 36 kHz GND Project thymio2-main.PrjPCB Date: Michael Bonani PIU2002 STI-IMT-LSRO1 16.06.2011 IRM-3636T Part 13:33:03 EPFL Thymio2 CH-1015 LAUSANNE AGND PCB principal A Revision: Laboratoire de Systèmes Robootiques File : microcontroleur.SchDoc Page 2 de 9 1 2 3 4 21 / 46
Educational Robotics: Thymio II 5 capacitive touch buttons with activity display , and ON-OFF function Li-Po battery level pencil support speaker USB connection (programming and recharging) memory card slot hook for trailer 2 proximity sensors microphone infrared remote control receiver mechanic fixation 3 axis accelerometer 5 proximity sensors (obstacle detection) ’ 2 wheels with speed control 2 ground sensors (line following) temperature sensor 39 LED to visualize sensors and interaction reset button 22 / 46
More recommend