Cognitive robotics tools and technology

1,000 views

Published on

An introductory talk about iCub, iCub simulator, YARP, YARP modules and GPUs, Aquila

Published in: Technology
  • Be the first to comment

Cognitive robotics tools and technology

  1. 1. Cognitive Robotics Technology and ToolsMartin Peniak
  2. 2. Overview iCub – iCognitive universal body YARP – Yet Another Robotics Platform GPU – Graphics Processing Unit Aquila – Acquisition of language and actions
  3. 3. iCub humanoid robot The dimensions are similar to that of a 3.5 year old child 53 degrees of freedom Came from the European Framework 6 project: RobotCub (www.robotcub.org) There are now 20 iCubs in different labs in Europe and 1 in the US Continued design - v2.0 to come out Various ongoing project outcomes are distributed via an open-source software repository and via hardware upgrades A free iCub simulator is available
  4. 4. iCub humanoid robotDexterous hands for object manipulation
  5. 5. iCub humanoid robotAlmost walking
  6. 6. iCub humanoid robotSimulator Open-source Developed as part of a joint effort with the European project iTalk Widely adopted within cognitive robotics community V. Tikhanoff, P. Fitzpatrick, F. Nori, L. Natale, G. Metta, and A. Cangelosi, “The icub humanoid robotsimulator,” In International Conference on Intel ligentRObots and Systems IROS, Nice, France, 2008
  7. 7. YARPYet Another Robotic Platform Supports building a robot control system as a collection of programs communicating via tcp, udp, multicast, local, MPI Can be broken down into: libYARP_OS - interfacing with the operating system(s) to support easy streaming of data across many threads across many machines libYARP_sig - performing common signal processing tasks (visual, auditory) in an open manner easily interfaced with other commonly used libraries, for example OpenCV libYARP_dev - interfacing with common devices used in robotics: framegrabbers, digital cameras, motor control boards, etc.
  8. 8. YARPYet Another Robotic Platform /icub /icubSimYARP moduleYARP module YARP module YARP module YARP module YARP module YARP server
  9. 9. ExamplesYARP and iCub simulator
  10. 10. YARPTerminal commandsyarp yarp namespaceyarp help yarp pingyarp check yarp readyarp clean yarp regressionyarp cmake yarp resourceyarp conf yarp rpcyarp detect yarp rpcserveryarp disconnect yarp runyarp exists yarp serveryarp forward yarp terminateyarp help yarp topicyarp name yarp versionyarp name check yarp waityarp name list yarp whereyarp name unregister yarp write
  11. 11. YARP and iCub simulatorControlling motors yarp rpc /icubSim/left_leg/rpc:I Terminal 1: yarpserver 6 joints Starts YARP server yarp rpc /icubSim/right_leg/rpc:i Terminal 2: iCub_SIM 6 joints Starts iCub simulator yarp rpc /icubSim/torso/rpc:I Terminal 3: yarp rpc /icubSim/left_arm/rpc:I 3 joints Terminal 3: set pos 0 – 90 yarp rpc /icubSim/left_arm/rpc:I Terminal 3: set vel 0 50 the arm includes the hand for a total of 16 controlled degrees of freedom Terminal 3: set pos 0 90 yarp rpc /icubSim/right_arm/rpc:I structure is identical to the left arm
  12. 12. YARP and iCub simulatorDisplaying camera outputs and controlling joints Terminal 1: yarpserver Terminal 2: iCub_SIM Terminal 3: yarpview /left Terminal 3: yarpview /right Terminal 3: yarp connect /icubSim/cam/left /left Terminal 3: yarp connect /icubSim/cam/right /right Move the iCub’s head and see the vision changing: Terminal 3: yarp rpc /icubSim/head/rpc:I Terminal 3: set pos 0 -30 (head will move down) Terminal 3: set pos 0 30 (head will move up) Easier way is to use the existing graphical user interface: Terminal 3: robotMotorGui To display camera outputs form the real iCub change the /icubSim prefix with /icub
  13. 13. Computation of visual, auditory, and tactile perception while performingelaborate motor control in real-time requires a lot of computation
  14. 14. YARP can run across any number of machines with different operating systems
  15. 15. YARPYet Another Robotic Platform /icub /icubSimYARP module (Windows)YARP module YARP module (OSX) (Linux) YARP module YARP module YARP module YARP server (Windows) (OSX) (Linux) (Linux)
  16. 16. Biologically-inspired models used in cognitive robotics are inherently parallel andcan greatly benefit from massively parallel devices such as GPU processors
  17. 17. The GPU Computing Revolution GPU CPU
  18. 18. CPU vs. GPU Different goals produce different designs GPU assumes work load is highly parallel CPU must be good at everything, parallel or not CPU: minimize latency experienced by 1 thread big on-chip caches sophisticated control logic GPU: maximize throughput of all threads # threads in flight limited by resources => lots of resources (registers, bandwidth, etc.) multithreading can hide latency => skip the big caches share control logic across many threads
  19. 19. GPU Evolution High throughput computation “Kepler” GeForce GTX 690: 2 x 2811 GFLOP/s 7B xtors High bandwidth memory GeForce GTX 690: 2 x 192 GB/s “Fermi” High availability to all 3B xtors 200+ million CUDA-capable GPUs in the world GeForce 8800 681M xtors GeForce FX 125M xtors GeForce 3 GeForce 256 60M xtorsRIVA 128 23M xtors3M xtors1995 2000 2005 2010 2012
  20. 20. Programming GPUs with CUDAHistory Nvidia creates CUDA to facilitate the development of parallel programs on GPUs (2007) The CUDA language is ANSI C extended with very few keywords for labeling data-parallel functions (kernels) and their associated data Nvidia technology benefits from massive economies of scale in the gaming market, CUDA-enabled cards are very inexpensive for the performance they provide 21
  21. 21. AquilaCognitive robotics research toolkit
  22. 22. InspirationSimplification of commonly used features on the iCub and the simulator
  23. 23. InspirationDevelopment of bio-inspired models and tools
  24. 24. InspirationScalability modularity and platform-independency /aquila/yarprun/0 /aquila/yarprun/1 /aquila/yarprun/2 GPU CPU
  25. 25. InspirationOvercoming computational constrains by using GPU processors Motion compliance < 1 ms Vision (30fps) < 33 ms Vision (60fps) < 16 msWe typically take 33 ms as the cut-off time. 1 complete cycle ofeverything critical MUST be completed in that time.Of course some processes are not critical and their informationcan be used as and when it becomes available, subject tovarious constraints.
  26. 26. Aquila 2.0
  27. 27. Questions?

×