SolidWorks导出URDF到rviz注意事项
SolidWorks导出URDF
简化模型
在SolidWorks中去掉无关的细节,高版本的SolidWorks可以用default工具来实现,也可以自己手动来,压缩细小零件,还可以对零件的特征(建议只保留拉伸等主要造型特征去除打孔螺纹孔等特征)进行压缩(建议设置一个压缩快捷建)。
用连接重组的办法简化装配模型,将机械臂的各个零件按link整合到一起,如6轴机械臂就整合成6个零件。这里要注意装配体中的子装配体好像不能连接重组,这里一般要解散装配体,也可不解散到时候导出urdf时选中,连接重组的部分和这部分里面包含的装配体。
对齐坐标系
在每个关节转动处插入基准轴,【插入】–【参考几何体】–【基准轴】
插入完基准轴后最好是根据你的DH参数设定的各个link的坐标系来构建坐标系这样方便后来的理论验证,也不容易出错。一般是以基座为base_link 然后link 1 2 3 4 5 6,link6一般为末端执行器。关节所在轴为z轴,具体可参考《机器人人导论》运动学这一块;操作【插入】–【参考几何体】–【坐标系】;插入坐标系的时候其实不用一开始草图画3个轴,一般同样的方法插入一个点作为原点,一条基准轴也能对齐到想要的坐标系,但也有特殊情况还是要画一下。
计算质量惯性参数(可选)
对于只做规划,或者只涉及动力学的可不同精确的惯性参数。但是要做动力学控制则越精确越好,
所以上面的简化模型我们只是把他作为一个mesh,另存为一下,重新打开原来的装配体,这次不作简化,以免丢失质量信息,将零件连接重组,用【评估】【质量属性】各部分一并选中,测量各link相对于旋转轴坐标系的转动惯量惯性积等。
导出URDF
用solidworks2urdf那个插件,【工具】往下拉【file】
照提示一步步选择,输入参数就可以
装配体最好一开始用英文重命名一下,中文的名字rviz不好打开可能编译不了,省得要改
导入到Rivz打开
创建一个工作空,复制到scr文件夹下解压
修改文件名和文件夹名
防止编译错误一律不得出现中文文件名和文件
可以将packag name 和 project name 以及主文件夹 都设为xxx_description
urdf文件设成xxx.urdf; xxx为机器人名,各文件保持一致就可以
修改urdf文件中的axis这一栏
把他们都改成1 0 0,直接搜索替换就行,
如果之前没有改英文名,这里也需要改一下,把所有中文替换调而且保持一致
###修改package.xml文件
修改package.xml文件
替换文件中的中文名
这个地方xxx全部换成 <build_depend>xxx</build_depend>,如下
<build_depend>roslaunch</build_depend>
<build_depend>robot_state_publisher</build_depend>
<build_depend>rviz</build_depend>
<build_depend>joint_state_publisher</build_depend>
<build_depend>gazebo</build_depend>
修改CMakelist.txt文件
替换project()为你设的英文名
修改display. launch中的地址
如果find不好使,直接复制你的urdf到这两个find所在的地方,然后到这里面ctrl V就是你的urdf的路径
<param
name="robot_description"
textfile="/home/sky/timon_ws/src/timon/urdf/timon.urdf" />
<node
name="rviz"
pkg="rviz"
type="rviz"
args="-d /home/sky/timon_ws/src/timon/urdf.rviz" />
修改joint_state_publisher话题
也是在display中改
<node
name="joint_state_publisher_gui"
pkg="joint_state_publisher_gui"
type="joint_state_publisher_gui" />
<node
name="robot_state_publisher"
pkg="robot_state_publisher"
type="robot_state_publisher" />
kinect好像state_publisher就可以了,melodic要加一个robot ;改成这样之后可能会报没有gui依赖的错,装一个就行
$ sudo apt-get install ros-kinetic-joint-state-publisher-gui
$ sudo apt-get install ros-melodic-joint-state-publisher-gui
版本不一样中间换个版本名就行
最后执行
cd到那个launch的文件夹下输入
$ roslaunch display.launch
打开rviz后可以把map换成base_link然后左下角【add】 【robot model】
大功告成!
参考:
节点名称报错,gui库报错安装
详细的教程很有帮助
B站搜索古月老师讲的如何导出urdf到rviz