260 likes | 414 Views
TechDays 2011 NAO Programming Session. Jérôme Monceaux Chris Kilner. Les exploits de NAO en 2010. Aldebaran -Robotics in a nutshell. Founded in 2005, Headquarter in Paris, branch offices (Boston, Shanghai, …)
E N D
TechDays 2011 NAO Programming Session Jérôme Monceaux Chris Kilner
Aldebaran-Robotics in a nutshell • Founded in 2005, Headquarter in Paris, branch offices (Boston, Shanghai, …) • Goal : Create humanoid robots and control software as Personal Assistants, Home companions and Academics platforms • Close to 1200 NAOs in operations in 30 countries in 18 months • World leader in Humanoid robotics • 110+ employees : Engineers, PhDs, Sales & Marketing
Le produit dans son ensemble Powerful User Friendly DESKTOP application
Sensorswitches / ActuatorsLEDs • Switches • Chest button • 2*2 feet bumpers • “0”: not pressed / “1”: pressed • LEDs • 8*2 RGB eyes • 10*2 blue ears • 1 RGB chest • 2*RGB feet • 12 head (acad) • Values from “0” (Off) to “1” (full On)
Joint actuators/sensors • Position from the MRE Angle in radians 12 bits precision, absolute, low noise On leg motors and all joints • Electric current (in A) Without sign Security limitation You can use it as a power information • Temperature (in °C) Simulation based on current Saved continuously on the chestboard Security limitation • Joints Angle value in radians - Be careful with fast moves - • Stiffness (Hardness) From 0 (electromagnetic break) to 1 (current limit to maximum) Possible Freewheel (negative value) Set it before moving the joint Can be changed very fast (be careful) You can use it as a security (fall) There is no need for full hardness all the time
Sensor: Inertialboard • 3-axis accelerometer Direct accelerometer output (8 bits, +-2G) Gives a “G” reference, but also other accelerations • 2-axis gyrometer Direct values Could be converted in angular speed (°/s) “Zero” issue • 2 computed inclination angles Computed with a custom onboard algorithm Values in radians
Sensors: FSRs • 4 *2 FSRs • Weight on each sensors • The value is calibrated and directly in Kg • Total weight on the foot • Position of the center of pressure on each foot
Sonar actuators & sensors • 2* Sonars • Every 100ms, you can send a request to the sonar • Automatic mode available (both side every 100ms) • We are providing multiple echoes (up to 10) • Take care of the arms!
AR = Entreprise qui déborde sur ses communautés Clientsclassiques Test de boites Résoudre des Pbs Trouver des scenarios Salariés Aldebaran ALDEBARAN Robotics Beta Testeurs Developer Program Labos de R&D Ecrire des modules NAOQI Co-developper des algorithmes
Site Developer Program : unecommunautéinternationale de trèsbonsdéveloppeurs
Site Developer Program : Destination Applications Applications d’actualités • Développement d’applications nouvelles : • Des jeux • Des players de musiques • Des challenges (arroser les plantes, tenir un labyrinthe) B2B2C : Intégration de solution tièrce (Twitter, lastfm, akinator, paraschool, aibo, Microsoft-Kinect, eventful) • Participation au problématique de Nao • Documentation • Amélioration des softwares • Travail sur la reconnaissance vocale
NAO & .net Presented by Chris Kilner
Programming NAO with • Easy way to program Nao • Use any .Net language • C# • VBScript • Jscript • Features • Full API – Motion, Vision, Audio • Access to all sensors and actuators • Inertial Sensor, FSRs, joints, sonars…
Installation • Simple Install contains just: • One dll • naoqidotnetvc90.dll • Autocompletion help file • naoqidotnetvc90.xml • Documentaion file • NaoQiDotNet Help.chm
Start .Net project • Add a reference to the naoqidotnetdll
How isit made? • Managed c++ wrapped around c++ • No dependencies • Compiled for .Net 2 for maximum compatibility • If using VS2010, this requires an app.config <?xml version="1.0"?><configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> <requiredRuntime version="v4.0.20506"/> </startup></configuration>
Understanding .Net types • Type mapping C++ / C# std::string -> string int -> int float -> float bool -> bool • std::vector<type> -> System.Collections.Generic.List<type> • AL::ALValue -> System.Collections.ArrayList
Motion & Xboxcontroller Move Head with Xbox controller