如何将Solidworks导出的urdf模型导入至ROS中使用

        关于如何将Solidworks建立的三维模型导出为urdf文件包已有众多的文章对此进行了详细的描述,但是对于如何将导出的urdf模型导入至ROS中使用(如在Gazebo仿真中加载)还没有针对性的文章对此进行描述,因此记录下自己初次尝试的详细操作分享给大家~

1、urdf文件准备

        以我所建立的水坝模型为例,从Solidworks中得到的urdf文件包中包含config、launch、meshes、textures、urdf五个文件夹及独立的manifest.xml文件,其中在meshes文件夹中包含Dam.STL文件,urdf文件夹中包含dam.urdf文件,其他文件夹均为空。

2、建立工作空间并编译

        建立工作空间并对其初始化的步骤在此不做过多描述,和普通的ROS工作空间无异。将模型的urdf文件包拷贝至workspace的src目录下,修改其文件名为dam_description。接着cd至dam_description文件目录下,将manifest.xml文件名修改为package.xml,文件具体内容如下:


  dam_description
  1.0.0
  
    

URDF Description package for dam

This package contains configuration data, 3D models and launch files for dam robot

TODO BSD catkin roslaunch robot_state_publisher rviz joint_state_publisher gazebo

        接着在同样目录下新建CMakeLists.txt文件,文件的具体内容如下:

cmake_minimum_required(VERSION 2.8.3)
project(dam_description)

find_package(catkin REQUIRED)

catkin_package()

find_package(roslaunch)

install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
install(DIRECTORY meshes DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
install(DIRECTORY urdf DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

        接着cd到launch文件夹下,新建display.launch文件,文件的具体内容如下:





	
      
      
      
      
      
      
    

    
      
    

        完成上述步骤后,回到workspace目录下执行catkin_make编译整个工作空间,编译完成后执行 roslaunch dam_description display.launch,该命令执行后即可自动启动Gazebo,在Gazebo中即可看到之前在Solidworks中建立好的模型。(Tips:该步需要调用Gazebo,建议在运行之前先手动开启一次Gazebo,防止因Gazebo加载不出来导致失败。)

3、在Gazebo中将模型保存为.world文件

        在诸如PX4等框架中,建筑物模型等通常为固定在世界中的物体场景,因此可以将带有该物体的场景保存为Dam.world文件方便之后调用。在Gazebo中,点击左上角菜单 File-->Save World 或 File-->Save World As 即可将其保存为.world文件(Save World As 选项可手动在文件名中添加.world后缀)。

        为验证保存的.world模型是否为我们所想要的场景,开启命令行执行 gazebo Dam.world,该命令执行后Gazebo自动启动并将之前保存好的场景呈现出来,就可以看到我们之前在Solidworks中建立好的水坝模型,在之后的各框架仿真中可以调用该.world文件啦~

如何将Solidworks导出的urdf模型导入至ROS中使用_第1张图片

 

你可能感兴趣的:(无人机ROS仿真,xml,solidworks,cmake,linux,仿真器)