I had the opportunity to implement the Human Robot Interaction module on the NAO Humanoid Robot during my internship at Gade Autonomous Systems Private Limited in Hyderabad recently. As a part of it, I programmed the NAO humanoid robot to perform the Surya Namaskar, the traditional Indian practice of Sun salutation. The video is a bit shaky in the start but gets better in a few seconds. Watch it here.
The development environment used was Choreographe by Aldebaran Robotics running on Ubuntu 11.10. Python was the primary programming language used. The behavior was simulated on NAOsim powered by Cogmation Robotics running remotely on a Windows 7 machine. The development of this behavior deliberately utilized all 3 methods that enable one to integrate motion into a behavior
- Using the Timeline Editor
- Using the Recording Mode
- Using the Motion API (ALMotion)
Each of these methods have their own ups and downs. For example programming in the actuator position values using the Motion API gives you unparalleled precision but at the same time it is time consuming. The timeline panel or the motion editor as it maybe called lets you define frames and animations or behaviors in those frames in a snap. In the recording mode, you can manually move NAO’s body to a specific pose and record the actuator position values.
The experience in building this behavior for NAO humanoid robot gave valuable learning as to how the simulator NAOsim tightly interfaced with the development suite Choreographe and Telepathe to allow for testing behaviors in a virtual world with real physics before playing it on NAO in the real world. Development, in particular, improved the understanding of synchronous and asynchronous flows while programming using the APIs as well as using the box-based GUI.
The inspiration for building this particular behavior came from observing the locals performing their religious practices while I stayed there and ideas from my dad and (the founder) Sasi Gade’s mom.