diff --git a/orbbec_description/launch/launch_utils.py b/orbbec_description/launch/launch_utils.py index 10e43fb0..fd365587 100644 --- a/orbbec_description/launch/launch_utils.py +++ b/orbbec_description/launch/launch_utils.py @@ -12,22 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os import xacro -import tempfile + def to_urdf(xacro_path, parameters=None): - """Convert the given xacro file to URDF file. + """Convert the given xacro file to a URDF string. * xacro_path -- the path to the xacro file * parameters -- to be used when xacro file is parsed. """ - with tempfile.NamedTemporaryFile(prefix="%s_" % os.path.basename(xacro_path), delete=False) as xacro_file: - urdf_path = xacro_file.name - - # open and process file doc = xacro.process_file(xacro_path, mappings=parameters) - # open the output file - with open(urdf_path, 'w') as urdf_file: - urdf_file.write(doc.toprettyxml(indent=' ')) - - return urdf_path + return doc.toprettyxml(indent=' ') diff --git a/orbbec_description/launch/view_model.launch.py b/orbbec_description/launch/view_model.launch.py index 8f163cd9..f5a73fd4 100644 --- a/orbbec_description/launch/view_model.launch.py +++ b/orbbec_description/launch/view_model.launch.py @@ -35,7 +35,8 @@ def generate_launch_description(): rviz_config_dir = os.path.join(get_package_share_directory('orbbec_description'), 'rviz', 'urdf.rviz') xacro_path = os.path.join(get_package_share_directory('orbbec_description'), 'urdf', params['model']) - urdf = to_urdf(xacro_path, {'use_nominal_extrinsics': 'true', 'add_plug': 'true'}) + robot_description = to_urdf( + xacro_path, {'use_nominal_extrinsics': 'true', 'add_plug': 'true'}) rviz_node = Node( package='rviz2', executable='rviz2', @@ -50,6 +51,6 @@ def generate_launch_description(): executable='robot_state_publisher', namespace='', output='screen', - arguments=[urdf] + parameters=[{'robot_description': robot_description}] ) return launch.LaunchDescription([rviz_node, model_node])