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

When a robot is smart enough?

Tomas Jukin
November 04, 2017

When a robot is smart enough?

Slides from my talk at DevFest Prague 2017 about few thoughts on a topic of "When a robot is smart enough" with examples how you can build one at home from Open Hardware components.

Ideas were demonstrated on a showcase of my #Probee smart robotic car build using #Arduino and #RaspberryPi.

All code is open source at https://github.com/Juicymo/iot-probee

Link to event: https://2017.devfest.cz/schedule/day1?sessionId=123

Talk was presented on 2017/11/04

#DevFestCZ #Probee

Tomas Jukin

November 04, 2017
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, structure) https://github.com/Juicymo/iot-probee v3 - “The Platform” (in Git repo, done)
  15. idle reasoning 5000ms forward fast_forward slow_forward brake stop 10000ms 10000ms

    100ms slow_backward backward 1000ms 1000ms turn_left turn_right 2000ms 2000ms The FSM
  16. The FSM idle reasoning FORWARD_OBSTACLE_CLOSE FORWARD_OBSTACLE_BLOCKED BACKWARD_OBSTACLE_CLOSE BACKWARD_OBSTACLE_BLOCKED 5000ms forward

    fast_forward FORWARD_OBSTACLE_NONE slow_forward FORWARD_OBSTACLE_CLOSE brake FORWARD_OBSTACLE_BLOCKED TURRET_OBSTACLE_BLOCKED stop 10000ms FORWARD_OBSTACLE_FAR FORWARD_OBSTACLE_NEAR FORWARD_OBSTACLE_CLOSE FORWARD_OBSTACLE_BLOCKED TURRET_OBSTACLE_BLOCKED 10000ms FORWARD_OBSTACLE_NONE FORWARD_OBSTACLE_FAR FORWARD_OBSTACLE_NEAR FORWARD_OBSTACLE_BLOCKED TURRET_OBSTACLE_BLOCKED 100ms slow_backward backward FORWARD_OBSTACLE_NONE BACKWARD_OBSTACLE_FAR BACKWARD_OBSTACLE_NEAR BACKWARD_OBSTACLE_BLOCKED 1000ms BACKWARD_OBSTACLE_BLOCKED BACKWARD_OBSTACLE_CLOSE 1000ms REASONING_STOPPED REASONING_MOVE_FORWARD REASONING_MOVE_SLOW_FORWARD REASONING_MOVE_SLOW_BACKWARD REASONING_MOVE_BACKWARD turn_left REASONING_TURN_LEFT turn_right REASONING_TURN_RIGHT TURRET_OBSTACLE_PRESENT TURRET_OBSTACLE_BLOCKED 2000ms TURRET_OBSTACLE_PRESENT TURRET_OBSTACLE_BLOCKED 2000ms
  17. How to make AI Logic Scripting HFSM Heuristics MAS GA

    ANN HTN spaghetti?? Hierarchical Task Networks Hierarchical Finite State Machine Lets be just good enough!
  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
  21. 5 Circles of Hell in RaspberryPi USB driven computer Unstable

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

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

    https://rubygems.org/gems/agens https://github.com/celluloid/celluloid https://rvm.io