eus2urdf_for_gazebo.py
Go to the documentation of this file.
00001 #! /usr/bin/env python
00002 
00003 import sys
00004 import os
00005 import commands
00006 
00007 
00008 def eus2urdf_for_gazebo (name, collada_path, urdf_path = (os.getenv("HOME") + "/.gazebo/models"), overwrite = True):
00009 
00010     urdf_dir_path = urdf_path + "/" + name
00011     if overwrite:
00012         os.system("rm -rf %s" % urdf_dir_path)
00013     else:
00014         print "[eus2urdf] check if the same name model already exits"
00015         if os.path.exists(urdf_dir_path):
00016             print '[ERROR eus2urdf] the same name model already exits'
00017             exit(1)
00018 
00019     print "[eus2urdf] make directory for urdf"
00020     os.mkdir(urdf_dir_path)
00021 
00022     add_line_string = '<uri>file://%s</uri>' % name
00023     model_config_path = '%s/../model.config' % urdf_dir_path
00024     if len(commands.getoutput("grep %s %s" % (add_line_string, model_config_path))) == 0:
00025         print "[eus2urdf] add file path to model.config"
00026         os.system('sed -i -e \"s@  </models>@    %s\\n  </models>@g\" %s' % (add_line_string, model_config_path))
00027 
00028     print "[eus2urdf] make model.config in urdf directory"
00029     config_path = '%s/model.config' % urdf_dir_path
00030     os.system('echo "<?xml version=\'1.0\'?>\n<model>\n  <name>%s</name>\n  <version>0.1.0</version>\n  <sdf>model.urdf</sdf>\n  <description>\n     This model was automatically generated by converting the eus model.\n  </description>\n</model>\n" > %s' % (name, config_path))
00031 
00032     print "[eus2urdf] convert collada to urdf"
00033     meshes_path = urdf_dir_path + '/meshes'
00034     urdf_path = urdf_dir_path + '/' + 'model.urdf'
00035     os.mkdir(meshes_path)
00036     os.system('rosrun collada_urdf_jsk_patch collada_to_urdf %s -G -A --mesh_output_dir %s --mesh_prefix "model://%s/meshes" -O %s' % (collada_path, meshes_path, name, urdf_path))
00037     os.system('sed -i -e "s@continuous@revolute@g" %s' % urdf_path)
00038     os.system('sed -i -e \"s@<robot name=\\"inst_kinsystem\\"@<robot name=\\"%s\\"@g\" %s' % (name, urdf_path))
00039     os.system('sed -i -e \"1,/  <link /s/  <link /  <gazebo>\\n    <static>false<\/static>\\n  <\/gazebo>\\n  <link /\" %s' % urdf_path)
00040 
00041     # print "[eus2urdf] add inertia property to urdf   # Inertia value is not correct. Inertia should be added at eus2collada."
00042     #os.system('sed -i -e \"s@<inertia ixx=.*/>@<inertia ixx=\\\"1e-03\\\" ixy=\\\"0\\\" ixz=\\\"0\\\" iyy=\\\"1e-03\\\" iyz=\\\"0\\\" izz=\\\"1e-03\\\"/>@g\" %s' % urdf_path)
00043 
00044 
00045 if __name__ == '__main__':
00046     if len(sys.argv) > 3:
00047         eus2urdf_for_gazebo(sys.argv[1], sys.argv[2], sys.argv[3])
00048     elif len(sys.argv) > 2:
00049         eus2urdf_for_gazebo(sys.argv[1], sys.argv[2])


eusgazebo
Author(s): Masaki Murooka
autogenerated on Wed Sep 16 2015 10:54:41