• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

URDF学习(二)用URDF建立一个简单的机器模型

人工智能 chuchu 1220次浏览 0个评论

获取机器人URDF模型文件的途径通常有  

  • 自己写
  • 机器人制造商提供其机器人的URDF模型
  • 通过机械设计软件导出URDF文件

  本节我们学习怎么自己写一个简单的URDF模型,但这并不是鼓励大家自己写 urdf 文件,是为了让大家理解 urdf 好能够自行修改。我个人的建议是尽量在cad软件导出来的 urdf 里面做修改,这样可能会简单容易些。   1. URDF模型代码   这里我们学习怎么用URDF建立一个简单的,由两根连杆组成的单摆模型。新建一个文件输入以下代码,并保存为 double_pendulum.urdf.  

<robot name = "linkage">
	<!-- links section -->>
	<link name = "link A">
		<inertial>
			<origin xyz = "0 0 0" />
			<mass value = "0.5" />
			<inertia ixx = "0.5" iyy = "0.5" izz = "0.5" ixy = "0" ixz = "0" iyz = "0" />
		</inertial>
		<visual>
			<origin xyz = "0 0 0" />
			<geometry>
				<box size = "0.5 0.5 0.1" />
			</geometry>
			<material name = "gray A">
				<color rgba = "0.1 0.1 0.1 1" />
			</material>
		</visual>
	</link>
	<link name = "link B">
		<inertial>
			<origin xyz = "0 0 -0.5" />
			<mass value = "0.5" />
			<inertia ixx = "0.5" iyy = "0.5" izz = "0.5" ixy = "0" ixz = "0" iyz = "0" />
		</inertial>
		<visual>
			<origin xyz = "0 0 -0.5" />
			<geometry>
				<cylinder radius = "0.05" length = "1"  />
			</geometry>
			<material name = "gray B">
				<color rgba = "0.3 0.3 0.3 1" />
			</material>
		</visual>
	</link>
	<link name = "link C">
		<inertial>
			<origin xyz = "0 0 -0.5" />
			<mass value = "0.5" />
			<inertia ixx = "0.5" iyy = "0.5" izz = "0.5" ixy = "0" ixz = "0" iyz = "0" />
		</inertial>
		<visual>
			<origin xyz = "0 0 -0.5" />
			<geometry>
				<cylinder radius = "0.05" length = "1"  />
			</geometry>
			<material name = "gray C">
				<color rgba = "0.5 0.5 0.5 1" />
			</material>
		</visual>
	</link>

	<!-- joints section -->>
	<joint name = "joint A" type = "continuous">
		<parent link = "link A" />
		<child link = "link B" />
		<origin xyz = "0 0 -0.05" />
		<axis xyz = "0 1 0" />
	</joint>
	<joint name = "joint B" type = "continuous">
		<parent link = "link B" />
		<child link = "link C" />
		<origin xyz = "0 0 -1" />
		<axis xyz = "0 1 0" />
		<dynamics damping ="0.002" />
	</joint>
</robot>

  2. 代码解读   上面的代码建立了一个名叫“linkage”的机械模型,该模型包括了三个连杆,分别为link A,link B,link C。parent 和 child 主从关系展示了连杆之间的连接方式,Link A 跟link B通过关节 joint 1连在一起,link B 为child link;Link B和link C通过关节joint 2 连在一起,link C为child link。Link A没有parent link,因此为root link,也就是所谓的根连杆。   Link A 中的 inertial 部分定义了link A的重量,惯量矩和惯量积。注意:urdf单位遵循 SI 单位标准。Link A 的 visual 部分定义了连杆的几何形状和颜色。该连杆的形状是一个宽和长度都为0.5m,高为0.1m的方形。 inertial,visual 里的 origin 部分定义了从参考坐标系到惯性参考坐标系和视觉参考坐标系的变换。类似的定义在link B和link C里面也能看到。   joint 里面的类型属性定义了关节类型为continuous,一种没有转动上下限的转动关节。 origin 定义了转动轴相对于参考坐标系的位置,比如link A里的 origin 部分定义了转轴相对于参考坐标系-z方向有着0.05m的位移。并且该关节是以[0,1,0]也就是+y轴为转轴进行旋转的。   下图展示了该模型的所有模块——连杆和关节以及他们包含的各种坐标系,R代表连杆的参考坐标系,I代表连杆的惯性参考坐标系,V代表连杆的视觉坐标系,J代表关节参考坐标系,默认J与child link的参考坐标系相对静止  
URDF学习(二)用URDF建立一个简单的机器模型


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明URDF学习(二)用URDF建立一个简单的机器模型
喜欢 (0)

您必须 登录 才能发表评论!

加载中……