如何将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,文件具体内容如下:

<package format="2">
  <name>dam_description</name>
  <version>1.0.0</version>
  <description>
    <p>URDF Description package for dam</p>
    <p>This package contains configuration data, 3D models and launch files
for dam robot</p>
  </description>
  <author>TODO</author>
  <maintainer email="TODO@email.com" />
  <license>BSD</license>
  <buildtool_depend>catkin</buildtool_depend>
  <depend>roslaunch</depend>
  <depend>robot_state_publisher</depend>
  <depend>rviz</depend>
  <depend>joint_state_publisher</depend>
  <depend>gazebo</depend>
  <export>
    <architecture_independent />
  </export>
</package>

        接着在同样目录下新建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文件,文件的具体内容如下:

<?xml version="1.0"?>

<launch>

	<include file="$(find gazebo_ros)/launch/empty_world.launch">
      <arg name="world_name" value="worlds/basic.world"/>
      <arg name="debug" value="false" />
      <arg name="paused" value="true" />
      <arg name="gui" value="true" />
      <arg name="verbose" value="false"/>
      
    </include>

    <param name="dam_description" command="cat $(find dam_description)/urdf/dam.urdf"/>
      
    <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" output="screen"
          args="-urdf -param dam_description -model dam"/>

</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文件啦~

 

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作流程如下: 1. 在SolidWorks,安装插件SolidWorks to URDF Exporter,该插件可以将SolidWorks模型导出为URDF(Universal Robot Description Format)文件。 2. 在导出URDF文件之前,需要为SolidWorks模型添加必要的约束和关节,以便在URDF文件正确表示模型的运动。可以使用SolidWorks的“运动学”选项卡来添加这些约束和关节。 3. 使用SolidWorks to URDF Exporter插件导出URDF文件。在导出时,请确保选择正确的选项以保证URDF文件的正确性。 4. 在ROS2使用ROS2 URDF parser将URDF文件转换为ROS2的格式。可以使用以下命令来安装ROS2 URDF parser: ``` sudo apt-get install ros-<distro>-urdfdom-py ``` 其,<distro>是ROS2的发行版名称,例如“foxy”或“galactic”。 5. 将URDF文件转换为ROS2格式。使用以下命令将URDF文件转换为ROS2格式: ``` ros2 run robot_state_publisher robot_state_publisher /path/to/urdf/file ``` 其,“/path/to/urdf/file”是URDF文件的路径。 6. 启动ROS2节点,以便可以使用ROS2控制机器人模型。可以使用以下命令来启动ROS2节点: ``` ros2 run <node_name> ``` 其,“<node_name>”是要启动的ROS2节点的名称。 7. 使用ROS2的控制器来控制机器人模型的运动。可以使用ROS2的控制器来控制模型的运动,例如使用ROS2的JointStateController来控制机器人模型的关节状态。 以上就是SolidWorks导出URDF导入ROS2的操作流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值