コード例 #1
0
# ------------------------

if __name__ == "__main__":
    # Initialize ROS stuff
    rospy.init_node("create_initial_robot_description")
    rospy.sleep(0.1)

    xacro_file = rospy.get_param('~xacro_file')
    rospy.loginfo('xacro_file is ' + xacro_file)
    prefix = rospy.get_param('~prefix')
    rospy.loginfo('prefix is ' + prefix)

    # Parse robot description from param /robot_description
    rospy.loginfo('Reading xml xacro file ...')
    # xml_robot = URDF.from_xml_file(xacro_file)
    xml_robot = URDF.from_parameter_server()

    rospy.loginfo('Changing link names ...')
    for link in xml_robot.links:
        link.name = prefix + link.name

    rospy.loginfo('Changing joint names, parents and childs ...')
    for joint in xml_robot.joints:
        joint.name = prefix + joint.name
        joint.parent = prefix + joint.parent
        joint.child = prefix + joint.child

    # print(URDF.to_xml_string(xml_robot))
    rospy.loginfo('Writting new initial_robot_description parameter')
    rospy.set_param('initial_robot_description', URDF.to_xml_string(xml_robot))
コード例 #2
0
        for joint in xml_robot.joints:
            if joint.parent == parent and joint.child == child:
                print('Found joint: ' + str(joint.name))

                print('Replacing xyz = ' + str(joint.origin.xyz) + ' by ' +
                      str(trans))
                joint.origin.xyz = trans

                rpy = list(
                    tf.transformations.euler_from_quaternion(quat,
                                                             axes='rxyz'))
                print('Replacing rpy = ' + str(joint.origin.rpy) + ' by ' +
                      str(rpy))
                joint.origin.rpy = rpy

    print(URDF.to_xml_string(xml_robot))

    rospack = rospkg.RosPack()
    outfile = rospack.get_path(
        'atom_calibration') + '/calibrations/atlascar2/optimized.urdf.xacro'
    with open(outfile, 'w') as out:
        print("Writing optimized urdf to " + str(outfile))
        out.write(URDF.to_xml_string(xml_robot))
    #
    # rospy.loginfo('Changing link names ...')
    # for link in xml_robot.links:
    #     print('link is ' + link.name)

    # rospy.loginfo('Changing joint names, parents and childs ...')
    # for joint in xml_robot.joints:
    #     joint.name = prefix + joint.name