Gazebo仿真建模总结
前言介绍
看的资料是ROS机器人高效编程第五章,原文bug很多,在这里记录下建模过程。
我的版本是ros版本是melodic
robot_medel存放路径是catkin_ws/src
造出来的车就是长方形加四个轮子加一个摄像头和雷达
内部对应文件夹如下(把书里的自己打了一遍)
总体框架
1.机器人模型文件后缀为,存放在urdf文件夹里urdf–xacro
2.模型运行平台rviz
3.模型物理仿真平台gazebo(带有物理仿真)
框架介绍
1.机器人模型urdf–xacro
urdf是ros中对模型的一种描述方式,大概是这个样子
代码介绍:
以上只是代码的一部分(szhrobot1.xacro)
conference of urdf:
---<inerial>---惯性参数
---<visual>---模型的外观,形状
---<origin>---设置模型的外观相对于坐标的位置,默认坐标是在模型的正中心的
---<joint>---节点编辑,就是轮子和正方体的连接处
---axis---:if(type:continuous) axis xyz="0 0 1" 绕z轴旋转 continuous说明这是一个旋转体
---<origin>---这里设置的坐标和欧拉角是相对于父体所在的坐标。
再说xacro文件:
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro"
xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface" name="robot1_xacro">
<xacro:include filename="$(find robot_model)/urdf/szhrobot.gazebo" />
<xacro:property name="length_wheel" value="0.05" />
<xacro:property name="radius_wheel" value="0.05" />
<xacro:macro name="default_inertial" params="mass">
<inertial>
<mass value="${mass}" />
<inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0" />
</inertial>
</xacro:macro>
<xacro:macro name="wheel_color">
<material name="black">
<color rgba="0 0 0 1"/>
</material>
</xacro:macro>
<!--**********************base_link*******************************-->
<link name="base_link">
<visual>
<geometry>
<box size="0.2 .3 .1"/>