|
I merged LeggedSim with the last USARSim version (downloaded today from CVS):
This package contains only the differences between LeggedSim and USARSim. The AIBO is scaled at 250 uu/m and is not optimized, QRIO is scaled at 80 uu/m. I'm not concerned about the robots now but only about the code operation and stability. Please try it and let me know if all works properly (make a backup of BotAPI and USARBot directories first :-). If it's all OK I'll commit it to sourceforge.
The main changes that the code introduces are:
Now you can make more than one texture per robot and select it with with the INIT command:
INIT {ClassName robot_class} {Name robot_name} {Skin skin_name} {Location x,y,z} {Rotation r,p,y}
You can define skins in the USARBot.ini file, in your robot section (see ERS robot for an example). The syntax is:
RobotSkins=(Name="SkinName", Skin=Texture'texture_package.texture_name', Comment="optional comment")
The AIBO has already defined red and blue skins. If you don't specify a skin the default one will be used. To spawn a red or blue AIBO enter:
INIT {ClassName USARBot.ERS}{Skin red}{Location x,y,z}
INIT {ClassName USARBot.ERS}{Skin blue}{Location x,y,z}
Red AIBO |
Blue AIBO |
AIBO with default skin |
The AIBO has a lot of problems with replication (client + server). The original USARSim code doesn't work with legged robots because it's too much "brute force", so I separated rigid body from commands replication and decreased MaxNetUpdateInterval for the AIBO. Now its behavior in a client + server environment is almost acceptable. This change should not influence other robots behavior.
In KDHinge I set absolute angles for order 0 commands otherwise I could not be able to drive correctly legged robot joints.
There's a special robot, the MultiView, that can be placed in any map to show camera images from different robots at once. KRobot includes some modification to handle the MultiView (that works even with stereo cameras). See the DM-spqrSoccer2006 map for an example (spawn one or more robots and cycle through the cameras until you find the MultiView). The bad news is that it still doesn't work in a client + server configuration. Can someone check ViewBot and MultiView classes to see what's wrong?
I modified the converter so that its conversion constants could be changed in USARBot.ini (see the [USARBot.USARConverter] section).
This command was specifically designed for legged robots, however it can be used with any other robot. It allows to command more than one joint at the same time. Its syntax is:
MULTIDRIVE { joint_1 value}{ joint_2 value}{ joint_3 value}...
Joint_n is the joint name and value is its new (absolute) angular position.