Why does that robot look so happy?
Simple, it's just been successfully simulated to a surprisingly degree by Laurent Lessieux using the Webots robot simulation software application. The robot is a Kondo KHR-2HV humanoid. For this simulation project, Laurent not only simulated the physical aspects of the robot, he also created additional programs to simulate the RCB3 on-board robot controller within the Webots system.
Laurent is one of the few people in the world currently building sophisticated humanoid robot simulation models. Prior to simulating the KHR-2HV in Webots, Laurent successfully simulated the same robot using the Microsoft Robotics Studio tools, so we really wanted to track him down to find out some of his secrets, and to hear his comparisons between the two robot simulation packages.
- Simplification of the Kondo KHR-2HV model
- Separation of the model into individual parts
- Creation of tools to generate the parts and related information for Webots
- Generation of Bounding box and Convex hulls for visualization of the robot
- Creation of a RCB3 controller simulation program for use in Webots
o RCB file support
o Scenario support
o Keyboard functionality to simulate the remote control
- Creation of a sensor simulation program for Webots
o Program was designed to simulate both gyros and an accelerometer, but
only the accelerometer has been tested so far
- Texture mapping tool
Laurent: Yes, I do. I'd like to simulate the Kyosho MANOI AT01 in Webots next. It's similar enough to the KHR-2HV that it shouldn't take much time to simulate successfully, yet different enough to be an interesting challenge. Starting off with an accurate 3D geometric model, hopefully from Kyosho, will be really helpful.
Lem : Besides building the reusable tool set, what took the most time and effort?
Laurent: Creating the RCB3 controller simulation. Most of the work was fairly simple and straight forward, but the way that the servos are driven wasn't easy to simulate correctly. It took a lot of experimentation - trial and error.
Lem: Are you satisfied with the simulation as it's turned out?
Laurent: Yes, very much so. It's better than I expected. Still, it's not 100% perfect. As you can see in the video clip, the robot is falling down after doing the push ups. It's all stock motion sequences but I was expecting that the motion right after the push ups would fail and the robot would fall on its back so I added in a stand-up motion. But, it didn't fail and the robot ended up standing up correctly at that point. So when my added motion tried to make it standup, it actually caused it to fall. It turns out that the Webots simulation reproduces everything very accurately, even when you make mistakes.
Lem: What's your impression of Webots after building the simulation? How does it compare to the Microsoft Robotics Studio (MRS)?
Laurent: I'm very positive about Webots and its approach to robot simulation. At the same time, it's not really practical nor fair to try and compare the two systems against each other since they address different needs and can be complimentary solutions.
In contrast, Webots is extremely focused and experienced with robot simulation. They didn't want to dilute their energy by addressing other aspects of the robot development process. So a direct comparison would be like comparing apples and oranges.
Laurent: Theoretically. It's easy to imagine a Webots simulation with an MRS interface, though I haven't tried it.
Lem: Fair enough. Let's limit the scope of this discussion just to simulation then.
Laurent: It is much simpler to describe a robot in Webots than it was with the Microsoft SDK. It allowed a simpler interface with the controller code, which was all in clear C/C++, while the Microsoft SDK required a complex and somewhat confusing framework. I made more progress in 2 weeks with Webots than I was able to accomplish in 2 months trying to simulate the same robot.
Webots has a very solid simulation engine, that seems to do the job well, as you can easily see from the video clip. Since Webots works under Linux as well, it may appeal to a wider range of robot developers than a Windows only solution.
Laurent: Of course, one possible use for the simulation is to test scenarios and motions before running them on the real robot. You could write a long scenario, test and update it until it's working exactly the way you want it, without running the real robot once. Combat simulation isn't far off either. You would just need 2 simulated
robots plus some good scenarios and motions.
Lem: Now that you have the basic KHR-2HV simulation working well, what's the next step?
Laurent: Right now I'm working on some new features. One is a user interface (UI) to visualize a scenario or motion in process - a bit like the H2H3 software with the ability to see what the robot will actually do. The basic UI is almost finished. After that I might add file loading and scenario creation, then later add motion creation.