4,urdf与rviz

前言

本文主要是跟着audolabor学习ROS笔记,多为操作性质,并从另一种角度对实现的顺序进行调整,想要多学习,可以参考autolabor教程

urdf

概念

URDF是 Unified Robot Description Format 的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种 XML 的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度…,该文件可以被 C++ 内置的解释器转换成可视化的机器人模型,是 ROS 中实现机器人仿真的重要组件

语法

urdf是一种XML语言,通过标签层级实现

robot层级

<robot name="name">
</robot>

link节点和子节点

<link name="link1">
	<visual>
		<geometry>
			<!-- 选一个形状 -->
			<box size="1 2 3" />
			<cylinder radius="1" length="2" />
			<sphere radius="1" />
			<mesh filename="package://包名/meshes/文件.stl" />
		</geometry>
		<origin xyz="0 0 0" rpy="0 0 0" />
		<material name="name1">
			<color rgba="1 1 1 0.5" />
		</material>
	</visual>
	<mass value="" />
	<inertial ixx="" />
	<collision>
		<geometry>
			<!--同上-->
		</geometry>
	</collision>
</link>

joint节点

关节类型

  • continuous: 旋转关节,可以绕单轴无限旋转
  • revolute: 旋转关节,类似于 continues,但是有旋转角度限制
  • prismatic: 滑动关节,沿某一轴线移动的关节,有位置极限
  • planer: 平面关节,允许在平面正交方向上平移或旋转
  • floating: 浮动关节,允许进行平移、旋转运动
  • fixed: 固定关节,不允许运动的特殊关节
<joint name="link1_to_link2" type="continuous"> 
	<parent name="link2" />
	<child name="link1" />
	<origin xyz="0 1 2" rpy="0 0 0" />
	<axis xyz="1 0 0" />
</joint>

launch文件

<launch>
	<param name="robot_description" testfile="$(find 文件名)/urdf/urdf/test.urdf" />
	<!-- 启动 rivz -->
    <node pkg="rviz" type="rviz" name="rviz_test" args="-d $(find demo01_urdf_helloworld)/config/helloworld.rviz" />

    <!-- 启动机器人状态和关节状态发布节点 -->
    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
    <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
</launch>

检查

使用安装命令后,可以使用相关语法查看urdf的合法性,代码如下:

sudo apt install liburdfdom-tools
check_urdf urdf文件名
urdf_to_graphiz urdf文件名    生成一个层级关系的pdf文件
evince pdf文件

版权声明:本文为weixin_46536094原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。