ROS机器人建模与仿真(一)--URDF机器人建模

前言

经过ROS的保姆级教程之后,相信大家对ROS应该有一个基本的认识了!关于各种工具的使用其实等到真正有所需求之后再去查找即可,roswiki始终是最好的最一手的信息来源。本系列的博客主要用来记录如何让在ROS的环境下进行机器人的建模与仿真,学完之后,就可以称得上是入了ROS的坑了~

什么是urdf

在如今的开发中我们通常使用xacro来进行建模,之后在进行gazebo仿真时将其转换成相应的urdf格式即可,另一种方式是使用专门的三维建模软件诸如solidworks、catia、ug来建模,然后导出urdf文件。虽说早已不再直接使用urdf的格式,但是学习一下还是很有必要的。

首先要了解的什么是urdf?定义如下图所示:
在这里插入图片描述
整个组织的描述形式是xml格式的,在ros中的很多配置文件(比如launch文件等)都是使用的这种格式,可以很方便的使用标签属性来描述各个相关信息,组织起来方便,看上去也比较直观。

link刚体属性

用于描述机器人某个刚体部分的外观和物理属性,包括
  • 尺寸(size)
  • 颜色(color)
  • 形状(shap)
  • 惯性矩阵(inertial matrix)
  • 碰撞参数(collision properties)

<visual>标签用于描述机器人link部分的外观参数
<inertial>标签用于描述link的惯性参数,
<collision>标签用于描述link的碰撞属性
由图中可以看出collision的区域要大于visual的区域,这就意味着只要有其它物体与collision区域相交,就认为link发生碰撞
在这里插入图片描述

joint关节属性

(关节)

  • 描述机器人关节的运动学与动力学属性
  • 包括关节运动的位置和速度限制
  • 根据关节运动形式,可以将其分为六种类型

在这里插入图片描述
在这里插入图片描述

完整的robot属性

  • 完整机器人模型的最顶层标签
  • 和标签都必须包含在标签内
  • 一个完整的机器人模型由一系列的link和joint组成

在这里插入图片描述

实际操作

创建功能包

有关功能包的知识可以参考这篇博客
依旧在我们的catkin_ws中的src文件夹下创建功能包:

catkin_create_pkg mbot_description urdf xacro

在这里插入图片描述

在功能包中创建几个文件夹

  • urdf:存放机器人模型的URDF或xacro文件
  • meshes:放置URDF中引用的模型渲染文件
  • launch:保存相关启动文件
  • config:用来保存相关功能包的配置文件,这里用来保存rviz的配置文件

在这里插入图片描述

在launch文件夹下创建文件display_mbot_base_urdf.launch,并写入代码

<launch>
	<param name="robot_description" textfile="$(find mbot_description)/urdf/urdf/mbot_base.urdf" />

	<!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="true"/>
	
	<!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
	
	<!-- 运行robot_state_publisher节点,发布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>

joint_state_publisher:发布每个joint(除fixed类型)的状态,而且可以通过UI界面对joint进行控制
robot_state_publisher:将机器人各个links、joints之间的关系,通过TF的形式,整理成三维姿态信息发布

在urdf文件夹下创建mbot文件夹,并在mbot文件夹下创建文件mbot_base.urdf,并写入代码,创建我们的小车:

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

    <link name="base_link">
        <visual>
            <origin 
  • 5
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值