diff --git a/VirtualRobot/XML/RobotIO.cpp b/VirtualRobot/XML/RobotIO.cpp index 00a72918512014101a5560ab34c4c6629fcdd50f..dff8f735624f2a27d94228afa500bb143185a80c 100644 --- a/VirtualRobot/XML/RobotIO.cpp +++ b/VirtualRobot/XML/RobotIO.cpp @@ -11,6 +11,7 @@ #include "../Visualization/VisualizationFactory.h" #include "../Visualization/TriMeshModel.h" #include "../RobotConfig.h" +#include "../RuntimeEnvironment.h" #include "rapidxml.hpp" #include <boost/pointer_cast.hpp> #include <boost/filesystem.hpp> @@ -1021,12 +1022,19 @@ VirtualRobot::RobotPtr RobotIO::createRobotFromString( const std::string &xmlStr VirtualRobot::RobotPtr RobotIO::loadRobot(const std::string &xmlFile, RobotDescription loadMode) { + std::string fullFile = xmlFile; + if (!RuntimeEnvironment::getDataFileAbsolute(fullFile)) + { + VR_ERROR <<"Could not open XML file:" << xmlFile << endl; + return RobotPtr(); + } + // load file - std::ifstream in(xmlFile.c_str()); + std::ifstream in(fullFile.c_str()); if (!in.is_open()) { - VR_ERROR <<"Could not open XML file:" << xmlFile << endl; + VR_ERROR <<"Could not open XML file:" << fullFile << endl; return RobotPtr(); } @@ -1042,7 +1050,7 @@ VirtualRobot::RobotPtr RobotIO::loadRobot(const std::string &xmlFile, RobotDescr VirtualRobot::RobotPtr res = createRobotFromString(robotXML, basePath, loadMode); if (!res) { - VR_ERROR << "Error while parsing file " << xmlFile << endl; + VR_ERROR << "Error while parsing file " << fullFile << endl; } res->applyJointValues(); diff --git a/VirtualRobot/data/robots/ArmarIII/ArmarIII.xml b/VirtualRobot/data/robots/ArmarIII/ArmarIII.xml index 6e4121ee5aee93051d48ea5352cbb6b9435400b2..c5c2aa54b9066295d610accf0ac6050386c6d573 100644 --- a/VirtualRobot/data/robots/ArmarIII/ArmarIII.xml +++ b/VirtualRobot/data/robots/ArmarIII/ArmarIII.xml @@ -252,6 +252,57 @@ <Node name="Wrist 1 R"/> <Node name="Wrist 2 R"/> </RobotNodeSet> + + <RobotNodeSet name="Robot" kinematicRoot="Platform"> + <Node name="Neck_1_Pitch"/> + <Node name="Neck_2_Roll"/> + <Node name="Neck_3_Yaw"/> + <Node name="Head_Tilt"/> + <Node name="Cameras"/> + <Node name="Eye_Left"/> + <Node name="Eye_Right"/> + <Node name="Hip Pitch"/> + <Node name="Hip Roll"/> + <Node name="Hip Yaw"/> + <Node name="Shoulder 1 L"/> + <Node name="Shoulder 2 L"/> + <Node name="Upperarm L"/> + <Node name="Elbow L"/> + <Node name="Underarm L"/> + <Node name="Wrist 1 L"/> + <Node name="Wrist 2 L"/> + <Node name="Shoulder 1 R"/> + <Node name="Shoulder 2 R"/> + <Node name="Upperarm R"/> + <Node name="Elbow R"/> + <Node name="Underarm R"/> + <Node name="Wrist 1 R"/> + <Node name="Wrist 2 R"/> + <Node name="Hand Palm 1 L"/> + <Node name="Hand Palm 2 L"/> + <Node name="Thumb L J0"/> + <Node name="Thumb L J1"/> + <Node name="Index L J0"/> + <Node name="Index L J1"/> + <Node name="Middle L J0"/> + <Node name="Middle L J1"/> + <Node name="Ring L J0"/> + <Node name="Ring L J1"/> + <Node name="Pinky L J0"/> + <Node name="Pinky L J1"/> + <Node name="Hand Palm 1 R"/> + <Node name="Hand Palm 2 R"/> + <Node name="Thumb R J0"/> + <Node name="Thumb R J1"/> + <Node name="Index R J0"/> + <Node name="Index R J1"/> + <Node name="Middle R J0"/> + <Node name="Middle R J1"/> + <Node name="Ring R J0"/> + <Node name="Ring R J1"/> + <Node name="Pinky R J0"/> + <Node name="Pinky R J1"/> + </RobotNodeSet> <RobotNodeSet name="PlatformYawTorsoLeftArm" kinematicRoot="Armar3_Base" tcp="TCP L"> <Node name="Yaw_Platform"/> @@ -282,4 +333,4 @@ </RobotNodeSet> -</Robot> \ No newline at end of file +</Robot>