赞
踩
一、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即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。