GAZEBO仿真里常常使用的模型,一个是机械臂,一个是小车。这里针对机械臂的urdf文件说明,urdf文件使用solidworks导出,参考 solidWorks导出URDF文件,建议使用最新版导出插件,旧版本导出有错误,新版本已经改过来。
1.link属性(机械臂连杆属性)。
1.1 inertial 惯性的参数。
a. origin(连杆坐标),这里是你在solidworks模型里面设置好,导出urdf的时候自带的,一般在设置在关节旋转轴中心点上。
b.mass(连杆质量),即连杆的重量,事先在Solidworks里指定模型材质的话,这里的数值便会自动生成,并且还很准确,之前画了个零件模型,指定了材质为T6铝合金,加工出来,实际重量与预测质量差了只有1克,建模的时候指定材质很有必要。
c.inertia(连杆的惯性矩阵),只要指定了模型材质,solidworks会自动计算出一个结果,会一起导出到urdf文件中,不用自己写。
1.2 visual 外观相关的参数。
a.origin(坐标),一般都是0,不知何用。
b.geometry(几何属性),这里指定连杆是哪个STL模型,即STL存储路径
c.material (材质属性),这里面设置两岸的材质和颜色,一般设置颜色,rgba的参数,改完就变色。
1.3collision(碰撞属性),机械臂有多个连杆,各个连杆之间在转起来的时候可能会发生碰撞,这里设置好可以避免碰撞,发生穿模的尴尬。
2.joint属性(机械臂关节属性)
这里的joint关节属性主要设置机械臂的关节类型(固定关节fixed,限定角度转动关节revolute,连续旋转关节continuous,自由度浮动关节floating,或平面运动关节planar),关节中心坐标,关节连接关系,关节的旋转轴,关节的转转限位,关节力距,关节速度。
以上1和2两个属性是导出urdf文件时就有,但是在gazebo里还不能直接用,还需要手动加入其他的相关属性
3.gazebo属性,ros和gazebo通过这个连接起来。
<gazebo reference="base_link">
<material>Gazebo/grey</material>
</gazebo>
<gazebo reference="joint名字">
<material>Gazebo/grey</material>
</gazebo>
<!-- ros_control plugin -->
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<robotNamespace>/要仿真的机械臂ros文件夹</robotNamespace>
</plugin>
</gazebo>
4.Transmissions 属性,ros控制与gazebo仿真接口。这里设置了关节位置接口,关节马达,减速比。
<!-- Transmissions for ROS Control -->
<xacro:macro name="transmission_block" params="joint_name">
<transmission name="tran1">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${joint_name}">
<hardwareInterface>PositionJointInterface</hardwareInterface>
</joint>
<actuator name="motor1">
<hardwareInterface>PositionJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
</xacro:macro>
5.还有需要增加的,不定期更新。