Go to the documentation of this file.00001
00002
00003 import sys
00004 import os
00005 import commands
00006
00007
00008 def make_fixed_model (name, eusurdf_package_path=commands.getoutput('rospack find eusurdf'), overwrite=True):
00009 urdf_dir_path = eusurdf_package_path + '/models/' + name
00010 fixed_urdf_dir_path = urdf_dir_path + '_fixed'
00011 urdf_path = urdf_dir_path + '/' + 'model.urdf'
00012 fixed_urdf_path = fixed_urdf_dir_path + '/' + 'model.urdf'
00013
00014 if overwrite:
00015 os.system("rm -rf %s" % fixed_urdf_dir_path)
00016 else:
00017 if os.path.exists(fixed_urdf_dir_path):
00018 print '[ERROR] the same name fixed model already exits'
00019 exit(1)
00020
00021 os.system("cp -r %s %s" % (urdf_dir_path, fixed_urdf_dir_path))
00022
00023 root_link_name = commands.getoutput('grep "link name=".*">" %s | head -n 1 | sed -e "s/ <link name=\\\"\(.*\)\\\">/\\1/"' % fixed_urdf_path)
00024 os.system('sed -i -e \"s@</robot>@ <!-- Used for fixing robot to Gazebo \'base_link\' -->\\n <link name=\\\"world\\\"/>\\n <joint name=\\\"fixed\\\" type=\\\"fixed\\\">\\n <parent link=\\\"world\\\"/>\\n <child link=\\\"%s\\\"/>\\n </joint>\\n</robot>@g\" %s' % (root_link_name, fixed_urdf_path))
00025
00026 os.system('sed -i -e "s@<robot name=\\"\(.*\)\\"@<robot name=\\"\\1_fixed\\"@g\" %s' % fixed_urdf_path)
00027
00028
00029 if __name__ == '__main__':
00030 if len(sys.argv) > 2:
00031 make_fixed_model(sys.argv[1], eusurdf_package_path=sys.argv[2])
00032 elif len(sys.argv) > 1:
00033 make_fixed_model(sys.argv[1])