{"action":"created","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/873","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/873/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/873/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/873/events","html_url":"https://github.com/RobotLocomotion/drake/issues/873","id":62950184,"number":873,"title":"URDF transmission parsing doesn't search child elements","user":{"login":"mauricefallon","id":6404227,"avatar_url":"https://avatars.githubusercontent.com/u/6404227?v=3","gravatar_id":"","url":"https://api.github.com/users/mauricefallon","html_url":"https://github.com/mauricefallon","followers_url":"https://api.github.com/users/mauricefallon/followers","following_url":"https://api.github.com/users/mauricefallon/following{/other_user}","gists_url":"https://api.github.com/users/mauricefallon/gists{/gist_id}","starred_url":"https://api.github.com/users/mauricefallon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mauricefallon/subscriptions","organizations_url":"https://api.github.com/users/mauricefallon/orgs","repos_url":"https://api.github.com/users/mauricefallon/repos","events_url":"https://api.github.com/users/mauricefallon/events{/privacy}","received_events_url":"https://api.github.com/users/mauricefallon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-03-19T10:35:37Z","updated_at":"2015-03-19T12:27:07Z","closed_at":null,"body":"mitdrc/drc recently incorporated the new URDF parsing in drake. It has a knock on effect on the KUKA arm I recently added as well as the Valkyrie. Both previously loaded into ddapp and don't now.\r\n\r\nBelow are some example transmission blocks:\r\n* Atlas and IRB140 parse fine in ddapp\r\n* Schunk fails as the type field is a FirstChildElement and not an Attribute\r\n* Valkyrie has a very different transmission.\r\n\r\nTwo questions:\r\n* Should you support the Schunk case?\r\n* Are the tags used in the Valkyrie case common? It came from NASA, I don't know their origin.\r\nI see the ROS pages that Transmission elements aren't well defined. Is there no standard approach?\r\n\r\nIn passing, the Valkyrie URDF has a PushrodTransmission transmission, which apparently isn't supported yet.\r\n\r\n ( Thanks for the heads up @patmarion . As a work around I can manually edit the URDFs to get by this, but its not the right solution.)\r\n\r\n\r\nAtlas:  ... parses fine\r\n\r\n    <transmission name=\"r_arm_shx_trans\" type=\"pr2_mechanism_model/SimpleTransmission\">\r\n        <actuator name=\"r_arm_shx_motor\"/>\r\n        <joint name=\"r_arm_shx\"/>\r\n        <mechanicalReduction>1</mechanicalReduction>\r\n     </transmission>\r\n\r\n\r\nIRB140: ... parses fine\r\n\r\n    <transmission name=\"joint1_trans\" type=\"SimpleTransmission\">\r\n      <joint name=\"joint1\"/>\r\n      <actuator name=\"joint1_motor\"/>\r\n      <mechanicalReduction>1</mechanicalReduction>\r\n    </transmission>\r\n\r\n\r\nSchunk Hand: ... loader fails to find the 'type' subelement within the transmission element\r\n\r\n    <transmission name=\"sdh_knuckle_trans\">\r\n      <type>transmission_interface/SimpleTransmission</type>\r\n      <joint name=\"sdh_finger_21_joint\"/>\r\n      <actuator name=\"sdh_knuckle_motor\">\r\n        <hardwareInterface>EffortJointInterface</hardwareInterface>\r\n        <mechanicalReduction>1</mechanicalReduction>\r\n      </actuator>\r\n    </transmission>\r\n\r\n\r\nValkyrie: ... loader cannot find joint name. This transmission element is quite different\r\n\r\n    <transmission name=\"LeftKneeExtensorTransmission\" type=\"loadable_transmissions/SimpleTransmission\">\r\n      <mechanicalReduction>1</mechanicalReduction>\r\n      <jointOffset>0</jointOffset>\r\n      <interface type=\"ActuatorToJointStateInterface\">\r\n        <joint data=\"data\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"data\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n      <interface type=\"JointToActuatorPositionInterface\">\r\n        <joint data=\"positionCommand\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"positionCommand\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n      <interface type=\"JointToActuatorVelocityInterface\">\r\n        <joint data=\"velocityCommand\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"velocityCommand\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n      <interface type=\"JointToActuatorEffortInterface\">\r\n        <joint data=\"effortCommand\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"effortCommand\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n      <interface type=\"JointToActuatorStateInterface\">\r\n        <joint data=\"data\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"data\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n      <interface type=\"ActuatorToJointPositionInterface\">\r\n        <joint data=\"positionCommand\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"positionCommand\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n      <interface type=\"ActuatorToJointVelocityInterface\">\r\n        <joint data=\"velocityCommand\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"velocityCommand\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n      <interface type=\"ActuatorToJointEffortInterface\">\r\n        <joint data=\"effortCommand\" name=\"l_leg_kny\"/>\r\n        <actuator data=\"effortCommand\" name=\"left_leg/j4\"/>\r\n      </interface>\r\n    </transmission>\r\n"},"comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments/83536461","html_url":"https://github.com/RobotLocomotion/drake/issues/873#issuecomment-83536461","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/873","id":83536461,"user":{"login":"RussTedrake","id":6442292,"avatar_url":"https://avatars.githubusercontent.com/u/6442292?v=3","gravatar_id":"","url":"https://api.github.com/users/RussTedrake","html_url":"https://github.com/RussTedrake","followers_url":"https://api.github.com/users/RussTedrake/followers","following_url":"https://api.github.com/users/RussTedrake/following{/other_user}","gists_url":"https://api.github.com/users/RussTedrake/gists{/gist_id}","starred_url":"https://api.github.com/users/RussTedrake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RussTedrake/subscriptions","organizations_url":"https://api.github.com/users/RussTedrake/orgs","repos_url":"https://api.github.com/users/RussTedrake/repos","events_url":"https://api.github.com/users/RussTedrake/events{/privacy}","received_events_url":"https://api.github.com/users/RussTedrake/received_events","type":"User","site_admin":false},"created_at":"2015-03-19T12:27:07Z","updated_at":"2015-03-19T12:27:07Z","body":"Ok, i confirm that the urdf transmission spec has changed :\n\nhttp://wiki.ros.org/urdf/XML/Transmission\n\nAnd that the schunk urdf is compliant.  Will add support (soonish)\n\n- Russ\n\n\n> On Mar 19, 2015, at 8:11 AM, Maurice Fallon <notifications@github.com> wrote:\n> \n> It's here:\n> https://github.com/drcbot/drc/blob/mfallon-kuka-bridge/software/models/common_components/hand_factory/schunk_hand.urdf\n> Currently not merged into mitdrc/drc. Pat will merge today I expect.\n> \n> This version includes my hacks to allow it to load. Before it was:\n> \n> transmission_interface/SimpleTransmission\n> \n> \n> EffortJointInterface\n> 1\n> \n> Not it is:\n> \n> transmission_interface/SimpleTransmission\n> \n> \n> EffortJointInterface\n> 1\n> \n> The original xacro source:\n> https://github.com/drcbot/drc/blob/mfallon-kuka-bridge/software/models/common_components/schunk_description/urdf/sdh/\n> \n> Upsteam maintainers - perhaps?\n> https://github.com/ipa320/schunk_modular_robotics/tree/indigo_dev/schunk_description/urdf/sdh\n> \n> —\n> Reply to this email directly or view it on GitHub.\n> \n"}}