Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to build Open Hardware self-navigating car robot

How to build Open Hardware self-navigating car robot

Slides from my lecture at mDevCamp Prague 2016 about How to build a Open Hardware self-navigating car robot #Probee using RaspberryPi and Arduino, Multi-Agent Systems and actor programming in Ruby.

The presentation includes small overview of few AI techniques and a short introduction to Behavior Trees.

Source codes of the #Probee robot can be found at https://github.com/Juicymo/probee

Tomas Jukin

June 17, 2016
Tweet

More Decks by Tomas Jukin

Other Decks in Technology

Transcript

  1. Robotics 101 Micro-Computer vs. Micro-Controller Voltage: 3.3V Flash: SD card

    RAM: 512 MB (CPU & GPU) CPU: ARM11 (BCM2835 SoC) Clock: 700 MHz GPIO: 40 pin HDMI, Ethernet RaspberryPi 1 B+ Arduino UNO Voltage: 5V Flash: 32KB (-0.5 bootloader) SRAM: 2KB EEPROM: 1KB Clock: 16 MHz Digital I/O: 14/6 PWM Analog In: 6
  2. Robotics 101 IIC (i2c, I2C, I2C) Inter-Inter Circuit, 2 wires,

    <128 devices, <2m ways of communication
  3. Robotics 101 IIC (i2c, I2C, I2C) Inter-Inter Circuit, 2 wires,

    <128 devices, <2m ways of communication Serial Peripheral Interface, N+3 wires, N devices SPI
  4. Robotics 101 IIC (i2c, I2C, I2C) Inter-Inter Circuit, 2 wires,

    <128 devices, <2m ways of communication Serial Peripheral Interface, N+3 wires, N devices Universal Asynchronous Receiver/Transmitter, 2 wires, 2 devices, <20m SPI UART
  5. Robotics 101 IIC (i2c, I2C, I2C) Inter-Inter Circuit, 2 wires,

    <128 devices, <2m ways of communication Serial Peripheral Interface, N+3 wires, N devices Universal Asynchronous Receiver/Transmitter, 2 wires, 2 devices, <20m Full Serial Line, 9 wires, 2 devices, <20m RS-232 (COM port) SPI UART
  6. Robotics 101 IIC (i2c, I2C, I2C) Inter-Inter Circuit, 2 wires,

    <128 devices, <2m ways of communication Serial Peripheral Interface, N+3 wires, N devices Universal Asynchronous Receiver/Transmitter, 2 wires, 2 devices, <20m Full Serial Line, 9 wires, 2 devices, <20m RS-232 (COM port) Industry, 2 wires, <32 devices, <1200m RS-485 (EIA-485) SPI UART
  7. Robotics 101 IIC (i2c, I2C, I2C) Inter-Inter Circuit, 2 wires,

    <128 devices, <2m ways of communication Serial Peripheral Interface, N+3 wires, N devices SPI UART Industry, 2 wires, <32 devices, <1200m RS-485 (EIA-485) Universal Asynchronous Receiver/Transmitter, 2 wires, 2 devices, <20m Full Serial Line, 9 wires, 2 devices, <20m RS-232 (COM port)
  8. 1x RaspberryPi 1 B+ Starter Set https://goo.gl/jaTY70 1x Chinese 4WD

    Car Kit with Funduino UNO http://goo.gl/qetuW5 5x Ultrasonic Sensor HC-SR04 http://goo.gl/YojTTp 1x Wi-Fi dongle D-Link DWA-127 https://goo.gl/9d9BPo 1x Arduino Micro https://goo.gl/yjVqgC 1x I2C Level Converter http://goo.gl/9i4jCK 1x RTC module DS1307 http://goo.gl/esKm7t 1x PIR sensor HC-SR501 http://goo.gl/LyYGmb 1x 4D Touch TFT Display 4DPi-35 Rev. 1 http://goo.gl/RWs7rI 1x Skewers 1x Hot Glue *plus PiCamera and PowerBank to power Pi… (and cables)
  9. I2C

  10. 5 Circles of Hell in Arduino .ino includes LCD_i2c.h Crappy

    China goods HW bugs The need of switch
  11. v0 - Procedural (by MacGyver on ohwHack) The Heart v0.5

    - “Spagetka” (was to ugly to Git -> lost :-(…)
  12. v0 - Procedural (by MacGyver on ohwHack) The Heart v0.5

    - “Spagetka” (was to ugly to Git -> lost :-(…) v1 - “Spagetti MAS” (in Git repo)
  13. v0 - Procedural (by MacGyver on ohwHack) The Heart v0.5

    - “Spagetka” (was to ugly to Git -> lost :-(…) v1 - “Spagetti MAS” (in Git repo) v2 - “The Platform” (in Git repo, in progress)
  14. v0 - Procedural (by MacGyver on ohwHack) The Heart v0.5

    - “Spagetka” (was to ugly to Git -> lost :-(…) v1 - “Spagetti MAS” (in Git repo) v2 - “The Platform” (in Git repo, in progress) https://github.com/Juicymo/probee
  15. 5 Circles of Hell in RaspberryPi USB driven computer Unstable

    More features madness Unstable!!! Wi-Fi dongle
  16. Multi-Agent System The Brain build on a Actor-based concurrent object

    framework in Ruby https://github.com/Juicymo/probee
  17. The Brain Raspbian rvm ruby celluloid agens probee MAS https://github.com/Juicymo/probee

    https://rubygems.org/gems/agens https://github.com/celluloid/celluloid https://rvm.io
  18. HFSM Movement FSM Stop Drive Slowly Drive Fast Turn Turret

    FSM Stop Scan Target How to combine them??
  19. HFSM Movement FSM Stop Drive Slowly Drive Fast Turn Turret

    FSM Stop Scan Target How to combine them?? Modularity sucks too…
  20. Neural Nets HFSM MAS HTN Behavior Trees https://github.com/Inza/agens https://en.wikipedia.org/wiki/Multi-agent_system https://github.com/aasm/aasm

    https://en.wikipedia.org/wiki/Finite-state_machine https://github.com/Maumagnaguagno/HyperTensioN https://en.wikipedia.org/wiki/Hierarchical_task_network https://github.com/jvoegele/behavior_tree https://en.wikipedia.org/wiki/Behavior_tree https://github.com/SergioFierens/ai4r https://en.wikipedia.org/wiki/Artificial_neural_network