SolidWorks导出urdf并在ROS中用Rviz和gazebo显示

一、SolidWorks导出urdf

默认已经安装完成urdf插件在SolidWorks中。

1.确定基准轴,坐标系

①首先选择一个对应的点(用于生成坐标系),点是准备建立坐标系的零件装配体的中心点,可自己建立选取 。(这里选取了主要运动结构的中心点:左右大轮子,底盘,雷达,传感器,相机,与相机相连可旋转机构visual0和1)

 

②建立坐标系(以建立的点为参考),x轴向前(前进的方向),z轴向上。

 

 ③建立旋转轴(需要旋转的给出旋转轴如轮子,相机)

 2.生成joint和link

选择 工具- Tools -Export as URDF,打开以下界面

一般选取底盘为base-link。由上可知这里建立了14个坐标系。

 首先选取base_link,将没有建立坐标系的部分全部选取(减少了一些没有必要额外建立坐标系的结构,统一放到base_link里减轻工作量),如图选取部分会变色

坐标系选择建立的base坐标系

 Number of child links(子坐标系)根据剩下的坐标系数量设定,还剩下13个坐标系正常的话设置为13,这里设置为11(由于下边有子坐标系可以接着拆分,下边再讲)

 会发现多出来了11个empty link ,依此点击修改它们的名字(link name),名字可以自己随便设置,这里是为了对应建立的坐标系名字,方便选取。

 joint name也对应修改(可以自己设置)。

设置wheel的坐标系和旋转轴,对应着建立的选取,左右轮同理。

对于joint type各个类型的意义:

continuous: 不受限制, 绕着一根轴旋转. revolute: 转动角度受到限制, 绕着一根轴旋转. prismatic: 一个沿着一根轴的滑动副, 并且有限位. fixed: 固定关节. floating: 这个关节允许六个自由度的运动. planar: 既包括平移, 也包括旋转的运动

我们的轮子是360°旋转的,所以Type选择continuous

 接着是imu传感器的设置,Axis没有设置基准轴,选择第一个默认的让其自动生成,joint Type选择fixed(固定)。其它同理,link components将传感器部分全部选中。

 

 雷达的设置同传感器类似,既杉川雷达,前雷达,后雷达。

最后说visual0_link的设置,设置的visual0类似我们视觉系统的base_link,是由visual0的转动带动visual1的转动,visual1的转动带动相机的转动。所以将visual0的number of child links设置为1,将visual1的number of child links也设置为1所以上边的base_link下的子坐标系有11个

 visual0_link配置如下,将它的部分全部选中

 

 

同理,visual1_link如下

 

 camera_link如图

 

3.生成文件

全部都配置好以后,点击preview and export,打开以后检查一下设置的有没有问题,没有问题点右下角的next

 接着点击

 选择保存路径,文件名不要设置成中文(后边操作会很麻烦)

 二、 urdf文件在Rviz和Gazebo中显示

①首先打开虚拟机,找到创建好的工作空间,将生成的urdf文件复制到工作空间的src下,有窗口提示错误全部跳过即可。

 如何创建工作空间:

mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make

②在终端下打开工作空间,编译一下:caktin_make

 接着输入指令source一下

 ③打开urdf文件的launch文件夹,里边有两个文件分别是启动Rviz和gazebo的

 接着在刚才的终端启动launch文件,首先启动Rviz的

 打开之后是这样的:

 接着把左边区域的map换成base_link,红色字母变为正常。点击左下角的add,找到RobotModel点击,然后点ok,我们的模型就调出来了,可以通过滚轮进行缩放,鼠标左键按住拖动进行360°观察。

 与我们Rviz同时打开的还有一个小窗口,把它调过来,对应有五个joint,分别是我们当时导出urdf时添加的旋转轴,拖动直线对应的地方会动,这时说明我们导出成功了。在gazebo中打开与Rviz的同理,将终端代码的display.launch换成gazebo.launch即可。

 

  • 8
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
操作流程如下: 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的操作流程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值