URDF机器人建模

一、URDF简介
Unified Robot Description Format,简称URDF,统一机器人描述格式。ROS可以解析URDF文件中使用XML格式描述的机器人模型。

1、Link
描述机器人某个刚体外观和物理属性。
包括:尺寸(size)、颜色(color)、形状(shape)、惯性矩阵(mertial matrix)、碰撞参数(collision properties)

<visual>link部分的外观参数
<inertial>惯性参数
<collision>碰撞属性

2、joint
运动学和动力学属性。
位置、速度限制。
关节运动形式:
continuous(无限旋转关节)、revolute(有旋转角度的旋转关节)、prismatic(滑动,沿某一轴移动,有位置极限)、planner(平面)、floating(浮动)、fixed(固定、不可移动)

<calibration>关节的参考位置,校准关节的绝对位置
<dynamics>关节的物理属性
<limit>运动极限值
<mimic>该关节与已有关节的关系
<safety_controller>安全控制器参数

二、实践
1、创建功能包

$ catkin_create_pkg mbot_description urdf xacro

mbot_description:约定俗成的机器人命名格式:机器人名+description。
urdf:创建功能包需依赖urdf功能包,以解析urdf模型。
xacro:功能包依赖

2、创建文件夹
urdf:存放机器人模型的urdf或xacro文件。
meshes:存放urdf中引用的模型渲染文件。
launch:保存相关启动文件。
config:保存rviz的配置文件。

3、创建launch文件

<launch>
	<param name="robot_description" textfile="$(find mbot_description)/urdf/urdf/mbot_base.urdf" />
	<!--param:加载ros参数。$(find mbot_description)/urdf/urdf/mbot_base.urdf:添加路径,加载urdf模型到rviz中。-->

	<!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="true"/>
	
	<!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<!--配合GUI工具,在rviz显示插件控制joint做状态变化-->
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
	
	<!-- 运行robot_state_publisher节点,发布tf  -->
	<!--将robot各个links、joints之间的关系通过tf形式,整理成三维姿态信息发布-->
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
	
	<!-- 运行rviz可视化界面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_urdf.rviz" required="true" />
</launch>

4、配置文件

5、urdf建模
根标签

<?xml version="1.0" ?>
<robot name="mbot">
...
</robot>

创建主体

    <link name="base_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <cylinder length="0.16" radius="0.20"/>
            </geometry>
            <material name="yellow">
                <color rgba="1 0.4 0 1"/>
            </material>
        </visual>
    </link>

创建左轮

    <link name="left_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.06" length = "0.025"/>
            </geometry>
            <material name="white">
                <color rgba="1 1 1 0.9"/>
            </material>
        </visual>
    </link>

左轮链接主体关节

    <joint name="left_wheel_joint" type="continuous">
        <origin xyz="0 0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="left_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

右轮

	<link name="right_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.06" length = "0.025"/>
            </geometry>
            <material name="white">
                <color rgba="1 1 1 0.9"/>
            </material>
        </visual>
    </link>

    <joint name="right_wheel_joint" type="continuous">
        <origin xyz="0 -0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="right_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

三、urdf文件检查模型整体结构
在urdf文件当前路径下打开终端:

$ urdf_to_graphiz mbot_kinect.urdf

生成两个文件,其中一个是urdf文件,pdf打开可看到整体结构。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值