solidworks导出urdf文件/导入ros详细教程
本文基于ros搬运小车来讲解如何使用插件sw_urdf_exporter来配置urdf文件,这里涉及轮子、机械臂、摄像头、激光雷达不同关节类型(joint type)的使用,并导入ros系统,以及解决使用Visual Studio Code WSL远程连接ubuntu会遇到的问题。
1.下载插件sw_urdf_exporter,需要到ros官网下载sw_urdf_exporter - ROS Wiki。
1.1打开网页,点击Download Installer。

1.2选择使用版本,这里我使用的solidworks是2023,所以使用的版本可以是2021的,sw版本高于插件版本即可。点击sw2urdfSetup.exe开始下载安装包。(这里关一下防火墙)

1.3安装
双击文件安装

install,建议选择文件位置到solidworks目录下。
1.4安装成功,打开solidworks,在工具栏中tools(file)中找到有Export as URDF即下载成功

2.solidworks中需要先搭建的一些坐标系,基准轴。(只有轮子关节需要搭建urdf文件的可以跳过直接看2.2.2)
2.1打开装配体,建议装配体调整到适当的位置再进行后面的步骤,我这里有舵机机械臂,我是将所有舵机调整到中间位置,这样方便后面设置舵机上下旋转角度的定义,以及ros中打开urdf文件时,舵机的位置方便调试。

2.2在装配体上3D建图,把每个link对应的坐标系、基准轴都设定好,插件可以自动生成这些但大概率不能用。
2.2.1 先3D草图在对应的link上选择关节中心(选择不到就先定义一个点)建两条中心线就可以确定后面要建立的坐标系方向,这里我就建立主体、舵机、激光雷达和摄像头的坐标系。轮子是continuous的关节类型是可以不考虑坐标系的方向,就没有画它的坐标系,后面插件会给我们随机生成。

设定坐标系这里就以主体的来介绍我是将前方设定为x轴的正方向,左为y轴的正方向。(其他没有特殊情况我也都是这样设定),把上面对应的坐标系都设定好就完成这一步了。

2.2.2接下来把除了base link(主体)的其他link基准轴建出来,就是所有运动需要使用的旋转轴。这一步和上面是不冲突的,需要在装配体参考几何体中的基准轴建立。

3.到这一步我们就可以打开插件Export as URDF配置。
(接下去的步骤建议先保存上面的设置再进行,防止solidworks崩溃)
3.1进入插件先是设定第一个link,也就是主体,一般我们把主体link命名为base_link,然后依次下来选择对应的坐标系,选择base_link的对象,选择与base_link直接连接的link个数(这里我是轮子link四个、机械臂第一个关节link一个、激光雷达link一个、摄像头link一个,总共就是7个link在base_link上)。

3.2轮子link的设定
这里我link和joint都从1开始命名,然后轮子我从前面有提到不设置坐标系就跳过,选择基准轴,选择关节类型(轮子是无限制旋转就是continuous),以此类推设置好4个轮子。

3.3机械臂link的设定
机械臂第一个关节link5是附着在主体上的,选好坐标系、基准轴,joint type是revolute属于是需要限制角度的关节类型(后面会添加限制角度的范围),因为机械臂的link是一个串联一个的,所以连接的link数是1个。

机械臂第二、三个link的设定,跟第一个类似。


我这里机械臂是有夹爪的,所以在夹爪的前一个link上是有两个link的。

夹爪1、2的link设定


3.4激光雷达link的设定,这里关节类型是fixed,因为激光雷达是不需要自身旋转的,属于固定关节的情况。

3.5摄像头link的设定,这里跟激光雷达同理。

4点击Preview and Export,插件开始运作,过程中不要操作界面防止solidworks报错。
然后会生成下面这个界面,检查一下所有joint type、坐标系、基准轴有没有被插件修改(一定要看好,经常会被改)。

机械臂revolute关节类型可以在上面界面的右边中间这个位置调整角度的范围(弧度制)、力矩、速度。(这个步骤也可以不用,可以到生成的urdf上改也行,建议还是要)

检查完就可以点击next,下面的界面是一些link的坐标参数、密度、颜色设定可以不用修改,点击右下角生成urdf文件。(这里生成的文件名最好是小写英文)

把文件夹添加到ubuntu你工作区间的src内,保存source一下,在终端运行launch文件就能生成rviz界面。

左下角Add添加机器人模型、坐标系之类的。使用虚拟机和双系统可能在这一步就完成了。我是使用Visual Studio Code的wsl远程连接所以需要在终端输入下面两行代码才行,这里具体原因我也不清楚,问了很久AI,它才告诉我(我是机械小菜这里只能这样了)。
export LIBGL_ALWAYS_SOFTWARE=1
export OGRE_RTT_MODE=Copy

最后呈现的结果,这个小窗口是前面我们有设定的revolute的限制角度,生成的launch文件就会有“gui”这个标志的程序,可以调节观察角度设定是否正确。

更多推荐

所有评论(0)