ROS基础六之URDF模型

URDF模型

  • URDF模型
    • URDF描述文件
    • xacro描述文件
    • URDF生成工具

URDF模型

    URDF模型用于反映机器人各个组件之间的位置关系,包括车体、驱动轮、相机、激光雷达等,是ROS的robot_state_publisher用来给机器人发布tf关系的。
    URDF模型使用xml格式编写,可以使用网格模型网格对象(STL或Collada)、简单的方体或圆柱体等组件。

URDF描述文件

    以下用一个实例来描述URDF文件的构成。

    我们先写一个link作为基础:
01-myrobot.urdf


<robot name="myrobot">
	<link name="link_1">
		<visual>
			<geometry>
				<cylinder length="0.6" radius="0.1"/>
			geometry>
		visual>
	link>
robot>

第一行:声明xml格式,以及版本号
第二行:标签定义了机器人的name:myrobot
第三行:标签定义了link的name:link_1
第四行:标签定义link的可视化属性其包括:geometry、origin、material三个属性
第五行:标签定义link的几何属性,可以是cylinder、box等,还可以是STL文件
第六行:定义了link为圆柱体

    我们再定义两个link、一个joint:joint描述的是两个joint之间的连接关系。
02-myrobot.urdf


<robot name='myrobot'>
	<link name="link_1">
		<visual>
			<geometry>
				<cylinder length="0.6" radius="0.1"/>
			geometry>
		visual>
	link>
	<link name="link_2">
		<visual>
			<geometry>
				<box size="0.6 0.1 0.2"/>
			geometry>
			<origin rpy="0 1.57075" xyz="0 0 -0.3"/>
		visual>
	link>
	<joint name="joint_1" type="fixed">
		<parent link="link_1"/>
		<child link="link_2"/>
		<origin rpy="0 0 0" xyz="0 -0.22 0.25"/>
		<axis xyz="0 0 0"/>
	joint>
robot>

第十五行:标签定义了link_2的方向与位置
第十八行:标签定义了joint的name:joint_1,类型fixed
第十九行:标签指定了joint的父link
第十九行:标签指定了joint的子link
第二十行:标签定义了两个link之间的位置关系
第二十一行:标签定义了两个link之间的旋转轴,一般joint属性为continuous需要定义旋转轴
简单了解了URDF描述文件的写法后,在这里编写一个简易的四轮小车模型并在rviz中显示。
03-myrobot.urdf



<robot name="myroobt">
	<link name="base_link">
		<visual>
			<geometry>
				<box size="0.6 0.4 0.2"/>
			geomet

你可能感兴趣的:(ROS)