diff --git a/src/dynamic.cpp b/src/dynamic.cpp index d9976a32bffecff3d73e26081db5bc0a798b446d..05d91ca89c187aebe387b98487479ac1d66608d8 100644 --- a/src/dynamic.cpp +++ b/src/dynamic.cpp @@ -1271,13 +1271,21 @@ CjrlJoint* Dynamic::getJointByName( const std::string& jointName ) else return m_HDR->rightAnkle()->childJoint(0); - } else { - throw ExceptionDynamic(ExceptionDynamic::GENERIC, - jointName + " is not a valid name." - " Valid names are \n" - "gaze, left-ankle, right-ankle, left-wrist," - " right-wrist, waist, chest."); } + else { + std::vector< CjrlJoint* > jv = m_HDR->jointVector (); + for (std::vector< CjrlJoint* >::const_iterator it = jv.begin(); + it != jv.end(); it++) { + if ((*it)->getName () == jointName) { + return *it; + } + } + } + throw ExceptionDynamic(ExceptionDynamic::GENERIC, + jointName + " is not a valid name." + " Valid names are \n" + "gaze, left-ankle, right-ankle, left-wrist," + " right-wrist, waist, chest, or any joint name."); } void Dynamic::cmd_createOpPointSignals( const std::string& opPointName,