From 1fd9899077f94471e7f556418922ce1361859ae4 Mon Sep 17 00:00:00 2001 From: Wim Meeussen Date: Thu, 1 Dec 2011 14:23:06 -0800 Subject: [PATCH] deal with fixed joints correctly. #5269. Patch by k-okada --- collada_parser/src/collada_parser.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/collada_parser/src/collada_parser.cpp b/collada_parser/src/collada_parser.cpp index fe10afb..559619f 100644 --- a/collada_parser/src/collada_parser.cpp +++ b/collada_parser/src/collada_parser.cpp @@ -978,6 +978,9 @@ namespace urdf{ if( pjoint->type == Joint::REVOLUTE || pjoint->type ==Joint::PRISMATIC) { pjoint->limits->lower = fscale*(double)(resolveFloat(kinematics_axis_info->getLimits()->getMin(),kinematics_axis_info)); pjoint->limits->upper = fscale*(double)(resolveFloat(kinematics_axis_info->getLimits()->getMax(),kinematics_axis_info)); + if ( pjoint->limits->lower == 0 && pjoint->limits->upper == 0 ) { + pjoint->type = Joint::FIXED; + } } } } @@ -1002,6 +1005,9 @@ namespace urdf{ double fscale = (pjoint->type == Joint::REVOLUTE)?(M_PI/180.0f):_GetUnitScale(pdomaxis); pjoint->limits->lower = (double)pdomaxis->getLimits()->getMin()->getValue()*fscale; pjoint->limits->upper = (double)pdomaxis->getLimits()->getMax()->getValue()*fscale; + if ( pjoint->limits->lower == 0 && pjoint->limits->upper == 0 ) { + pjoint->type = Joint::FIXED; + } } }