Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Martin Peniak & Anthony Morse  11/06/2010, Plymouth
Overview <ul><li>iCub </li></ul><ul><ul><li>Introduction </li></ul></ul><ul><ul><li>Hardware, software and communication <...
iCub -  Introduction <ul><li>Designed by RobotCub Consortium </li></ul><ul><ul><li>with the goal of studying cognition thr...
iCub - Hardware <ul><li>Brushless motors, DC motors and wires </li></ul><ul><li>Sensors </li></ul><ul><ul><li>Cameras and ...
<ul><li>Modules </li></ul><ul><ul><li>attentionSelection, audioAnalyser, biologicalControlGazeEngine, camCalib, faceEyeDet...
iCub - Software <ul><li>iCubInterface </li></ul><ul><ul><li>Interface to the robot </li></ul></ul><ul><ul><li>Instantiates...
iCub - Communication iCub – PC104 YARP server Computer - II Computer - I Computer - III
YARP - Introduction <ul><li>Yet Another Robot Platform </li></ul><ul><ul><li>supports building a robot control system as a...
YARP – multiple OSs & PCs <ul><li>Computation of visual, auditory, and tactile perception while performing elaborate motor...
YARP – Terminal use <ul><li>yarp  </li></ul><ul><li>yarp help </li></ul><ul><li>yarp check </li></ul><ul><li>yarp clean </...
YARP – Terminal use <ul><li>[terminal A] yarp server </li></ul><ul><li>[terminal B] yarp  </li></ul><ul><li>[terminal B] y...
iCub Simulator - Introduction
iCub Simulator - Introduction <ul><li>Developed primarily by Vadim Tikhanoff </li></ul><ul><li>Open-source mutiplatform co...
iCub Simulator – ports <ul><li>yarp rpc /icubSim/left_leg/rpc:i  - 6 joints </li></ul><ul><li>yarp rpc /icubSim/right_leg/...
iCub Simulator – ports example <ul><li>yarp rpc /icubSim/left_arm/rpc:I </li></ul><ul><ul><li>set pos 0 45 </li></ul></ul>...
iCub Simulator – ports example Vision <ul><li>Images: </li></ul><ul><ul><li>It is possible to get the images from the left...
iCub Simulator – creating objects <ul><li>There  are currently different objects in the world ball, cube, and box </li></u...
iCub Simulator – creating objects Examples <ul><li>yarp rpc /icubSim/world </li></ul><ul><li>world mk box  (three params f...
iCub Simulator – creating objects Examples <ul><li>world mk box 0.03 0.03 0.03 0.3 0.2 1 1 0 0 </li></ul><ul><li>world mk ...
iCub Simulator – creating 3D object Example <ul><li>3D models can be imported to the simulator via /icubSim/world port: </...
Upcoming SlideShare
Loading in …5
×

Introduction to humanoid robot iCub, YARP and simulator

5,312 views

Published on

This is a very basic introduction to humanoid robotic platform iCub, YARP (Yet Another Robotic Platform) - software that is used to facilitate communication with the robot and also iCub simulator that is a tool that we use first to develop our system before we deploy it on the real physical robot.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introduction to humanoid robot iCub, YARP and simulator

  1. 1. Martin Peniak & Anthony Morse 11/06/2010, Plymouth
  2. 2. Overview <ul><li>iCub </li></ul><ul><ul><li>Introduction </li></ul></ul><ul><ul><li>Hardware, software and communication </li></ul></ul><ul><li>YARP </li></ul><ul><ul><li>Introduction </li></ul></ul><ul><ul><li>Basic use and programming applications </li></ul></ul><ul><li>iCub simulator </li></ul><ul><ul><li>Introduction </li></ul></ul><ul><ul><li>Basic use </li></ul></ul>
  3. 3. iCub - Introduction <ul><li>Designed by RobotCub Consortium </li></ul><ul><ul><li>with the goal of studying cognition through the implementation of bio-inspired algorithms </li></ul></ul><ul><li>There are about twenty iCubs in various laboratories across Europe and US </li></ul><ul><li>Open-source - GPL license </li></ul><ul><li>The dimensions of the iCub are similar to that of a 3.5 year old child </li></ul><ul><ul><li>53 actuated degrees of freedom </li></ul></ul><ul><ul><ul><li>7 in each arm </li></ul></ul></ul><ul><ul><ul><li>9 in each hand </li></ul></ul></ul><ul><ul><ul><li>6 in the head </li></ul></ul></ul><ul><ul><ul><li>3 in the torso/waist </li></ul></ul></ul><ul><ul><ul><li>6 in each leg </li></ul></ul></ul>
  4. 4. iCub - Hardware <ul><li>Brushless motors, DC motors and wires </li></ul><ul><li>Sensors </li></ul><ul><ul><li>Cameras and microphones </li></ul></ul><ul><ul><li>Force-torque sensors </li></ul></ul><ul><ul><li>Absolute encoders and hall-effect sensors </li></ul></ul><ul><ul><li>Gyroscope </li></ul></ul><ul><li>PC104 </li></ul><ul><li>Facial expression </li></ul>
  5. 5. <ul><li>Modules </li></ul><ul><ul><li>attentionSelection, audioAnalyser, biologicalControlGazeEngine, camCalib, faceEyeDetector, Imitation Modules … </li></ul></ul><ul><li>Graphical User Interfaces </li></ul><ul><ul><li>biControlGazeInterface, canLoader, robotMotorGui, selectiveAttentionInterface … </li></ul></ul><ul><li>Libraries </li></ul><ul><ul><li>iDyn, iKin, iCubInterface, iCubDev … </li></ul></ul><ul><li>Tools </li></ul><ul><ul><li>blobTracker, cableLengthGuard, canBusSniffer … </li></ul></ul>iCub - Software
  6. 6. iCub - Software <ul><li>iCubInterface </li></ul><ul><ul><li>Interface to the robot </li></ul></ul><ul><ul><li>Instantiates devices controlling the robot </li></ul></ul><ul><ul><ul><li>CAN bus devices for all CAN networks (head-torso, legs, rightarm and leftarm) and the inertial sensor device </li></ul></ul></ul><ul><ul><li>Instantiates network wrappers </li></ul></ul><ul><ul><ul><li>Creates YARP ports that allow remote control of the robot and access to sensory reading </li></ul></ul></ul>
  7. 7. iCub - Communication iCub – PC104 YARP server Computer - II Computer - I Computer - III
  8. 8. YARP - Introduction <ul><li>Yet Another Robot Platform </li></ul><ul><ul><li>supports building a robot control system as a collection of programs communicating via tcp, udp, multicast, local, MPI, … </li></ul></ul><ul><li>YARP can be broken down into: </li></ul><ul><ul><li>libYARP_OS - interfacing with the operating system(s) to support easy streaming of data across many threads across many machines </li></ul></ul><ul><ul><li>libYARP_sig - performing common signal processing tasks (visual, auditory) in an open manner easily interfaced with other commonly used libraries, for example OpenCV. </li></ul></ul><ul><ul><li>libYARP_dev - interfacing with common devices used in robotics: framegrabbers, digital cameras, motor control boards, etc. </li></ul></ul>
  9. 9. YARP – multiple OSs & PCs <ul><li>Computation of visual, auditory, and tactile perception while performing elaborate motor control in real-time requires a lot of computation </li></ul><ul><ul><li>YARP can run across any number of machines with different operating systems </li></ul></ul><ul><ul><li>Supports CUDA via IGPUInterface in ibYARP_dev </li></ul></ul>
  10. 10. YARP – Terminal use <ul><li>yarp </li></ul><ul><li>yarp help </li></ul><ul><li>yarp check </li></ul><ul><li>yarp clean </li></ul><ul><li>yarp cmake </li></ul><ul><li>yarp conf </li></ul><ul><li>yarp detect </li></ul><ul><li>yarp disconnect </li></ul><ul><li>yarp exists </li></ul><ul><li>yarp forward </li></ul><ul><li>yarp help </li></ul><ul><li>yarp name </li></ul><ul><li>yarp name check </li></ul><ul><li>yarp name list </li></ul><ul><li>yarp name unregister </li></ul><ul><li>yarp namespace </li></ul><ul><li>yarp ping </li></ul><ul><li>yarp read </li></ul><ul><li>yarp regression </li></ul><ul><li>yarp resource </li></ul><ul><li>yarp rpc </li></ul><ul><li>yarp rpcserver </li></ul><ul><li>yarp run </li></ul><ul><li>yarp server </li></ul><ul><li>yarp terminate </li></ul><ul><li>yarp topic </li></ul><ul><li>yarp version </li></ul><ul><li>yarp wait </li></ul><ul><li>yarp where </li></ul><ul><li>yarp write </li></ul>
  11. 11. YARP – Terminal use <ul><li>[terminal A] yarp server </li></ul><ul><li>[terminal B] yarp </li></ul><ul><li>[terminal B] yarp read /read </li></ul><ul><li>[terminal C] yarp write /write verbatim /read </li></ul><ul><li>[terminal D] yarp disconnect /write / </li></ul><ul><li>[terminal D] yarp connect /write / </li></ul>
  12. 12. iCub Simulator - Introduction
  13. 13. iCub Simulator - Introduction <ul><li>Developed primarily by Vadim Tikhanoff </li></ul><ul><li>Open-source mutiplatform computer simulation based on ODE and OpenGL </li></ul><ul><ul><li>Reduces the time of experiments such as in evolutionary robotics approach </li></ul></ul><ul><ul><li>Increases productivity when developing and testing algorithms </li></ul></ul><ul><ul><li>Allows experimenting with changes in morphology </li></ul></ul><ul><ul><li>Allows importing 3D objects as well as on-line creation of various objects such as boxes, cylinders, spheres, etc… </li></ul></ul><ul><ul><li>Provides the same ports as iCub, which makes the communication with the real robot as well as the simulator and development transparent </li></ul></ul>
  14. 14. iCub Simulator – ports <ul><li>yarp rpc /icubSim/left_leg/rpc:i - 6 joints </li></ul><ul><li>yarp rpc /icubSim/right_leg/rpc:i - 6 joints </li></ul><ul><li>yarp rpc /icubSim/torso/rpc:i - 3 joints </li></ul><ul><li>yarp rpc /icubSim/left_arm/rpc:i - the arm includes the hand for a total of 16 controlled degrees of freedom </li></ul><ul><li>yarp rpc /icubSim/right_arm/rpc:i - structure is identical to the left arm </li></ul><ul><li>yarp rpc /icubSim/head/rpc:i - 6 joints </li></ul>
  15. 15. iCub Simulator – ports example <ul><li>yarp rpc /icubSim/left_arm/rpc:I </li></ul><ul><ul><li>set pos 0 45 </li></ul></ul><ul><ul><li>set vel 0 10 </li></ul></ul><ul><li>Moves axis 0 of the left_arm to 45 degrees </li></ul><ul><li>Sets the velocity of the left_arm motor controlling axis 0 to 10 </li></ul>
  16. 16. iCub Simulator – ports example Vision <ul><li>Images: </li></ul><ul><ul><li>It is possible to get the images from the left and right eye as well as a &quot;world&quot; view. The format of the cameras are: </li></ul></ul><ul><ul><ul><li>Cartesian ( 320 x 240 ) </li></ul></ul></ul><ul><ul><ul><li>Fovea ( 128 x 128 ) </li></ul></ul></ul><ul><ul><ul><li>Logpolar ( 252 x 152 ) </li></ul></ul></ul><ul><li>Ports: </li></ul><ul><ul><li>/icubSim/cam/left (left camera Cartesian images) </li></ul></ul><ul><ul><li>/icubSim/cam/left/fovea (left camera fovea images) </li></ul></ul><ul><ul><li>/icubSim/cam/left/logpolar (left camera log polar images) </li></ul></ul><ul><ul><li>/icubSim/cam/right (right camera Cartesian images) </li></ul></ul><ul><ul><li>/icubSim/cam/right/fovea (right camera fovea images) </li></ul></ul><ul><ul><li>/icubSim/cam/right/logpolar (right camera log polar images) </li></ul></ul><ul><ul><li>/icubSim/cam/ for the &quot;world&quot; view </li></ul></ul><ul><li>Example </li></ul><ul><ul><li>yarpview /example </li></ul></ul><ul><ul><li>yarp connect /icubSim/cam/left /example </li></ul></ul>
  17. 17. iCub Simulator – creating objects <ul><li>There are currently different objects in the world ball, cube, and box </li></ul><ul><li>Port yarp rpc /icubSim/world </li></ul><ul><ul><li>SET and GET example </li></ul></ul><ul><ul><ul><li>&quot;world set box x y z&quot; eg: &quot;world set ball 1.0 0.1 2.0” </li></ul></ul></ul><ul><ul><ul><li>&quot;world get cube&quot; (or ball) this will return the x y z coordinates of the object </li></ul></ul></ul>
  18. 18. iCub Simulator – creating objects Examples <ul><li>yarp rpc /icubSim/world </li></ul><ul><li>world mk box (three params for size) (three params for pos) (three params for colour) (This creates a box affected by gravity) </li></ul><ul><li>world mk sph (radius)(three params for pos) (three params for colour) (This creates a sphere affected by gravity) </li></ul><ul><li>world mk cyl (radius lenght) (three params for pos) (three params for colour) (This creates a cylinder affected by gravity) </li></ul><ul><li>world mk sbox (three params for size) (three params for pos) (three params for colour) (This creates a static box) </li></ul><ul><li>world mk ssph (radius) (three params for pos) (three params for colour) (This creates a static sphere) </li></ul><ul><li>world mk scyl (radius lenght) (three params for pos) (three params for colour) (This creates a static cylinder) </li></ul>
  19. 19. iCub Simulator – creating objects Examples <ul><li>world mk box 0.03 0.03 0.03 0.3 0.2 1 1 0 0 </li></ul><ul><li>world mk sph 0.04 0.0 1.0 0.5 1 0 1 </li></ul><ul><li>world mk cyl 0.1 0.2 0.0 0.9 1.0 0 0 1 </li></ul><ul><li>If you need to rotate the boxes or the cylinders just use the following function: </li></ul><ul><ul><li>world rot (object)(num) rotx roty rotz </li></ul></ul>
  20. 20. iCub Simulator – creating 3D object Example <ul><li>3D models can be imported to the simulator via /icubSim/world port: </li></ul><ul><ul><li>yarp rpc /icubSim/world </li></ul></ul><ul><ul><li>world set mdir full_path_to_models – sets the directory containing the 3d model </li></ul></ul><ul><ul><li>world mk model name_of_model.x name_of_texture.bmp Xpos Ypos Zpos – this will create a dynamic 3D model </li></ul></ul><ul><ul><li>world mk smodel name_of_model.x name_of_texture.bmp Xpos Ypos Zpos - this will create a static 3D model </li></ul></ul><ul><ul><li>world get model (num) - this will return the X Y Z position of the 3D model </li></ul></ul><ul><ul><li>world set model (num) Xpos Ypos Zpos - this will set the model to the required X Y Z position </li></ul></ul><ul><ul><li>world rot model (num) rotx roty rotz - this will rotate the model to the required X Y Z angle) </li></ul></ul>

×