1.机器人的定义与组成
1.1机器人的组成
2.机器人系统构建
2.1执行机构的实现
2.2驱动系统的实现
2.3内部传感器系统的实现
2.4控制系统的实现
2.5外部传感系统的实现
2.5.1连接摄像头
不过需要RGB-D摄像头,才可以正常运行
3.URDF机器人建模
让机器人模型在rviz中可视化
先建立一个简单的模型
创建一个机器人建模的功能包
catkin_create_pkg mbot_description urdf xacro
在功能包里面建立四个文件夹,分别如下:
把mbot.rviz,mbot_urdf.rviz这两个文件放入config文件夹中
把display_mbot_base_urdf.launch文件放入launch文件夹中
在urdf文件夹中创建文件mbot_base.urdf文件,输入以下的代码
<?xml version="1.0" ?>
<robot name="mbot">
<link name="base_link">
<visual>
<origin xyz=" 1 0 0" rpy="0 0 0" />
<geometry>
<cylinder length="0.20" radius="0.20"/>
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1"/>
</material>
</visual>
</link>
</robot>
<!---->
然后在终端中使用
roslaunch mbot_description display_mbot_base_urdf.launch
一个车体模型
打开以下两个方框内容,可以通过更改相应的参数,进而得到
增加link产生一个左轮,并且跟小车连接起来,创建一个左侧车轮
<?xml version="1.0" ?>
<robot name="mbot">
<link name="base_link">
<visual>
<origin xyz=" 0 0 0" rpy="0 0 0" />
<geometry>
<cylinder length="0.20" radius="0.20"/>
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1"/>
</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="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>
</robot>
<!---->
产生了一个滑动条,可控制车轮的正负方向旋转
创建右侧车轮
<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>
<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="front_caster_joint" type="continuous">
<origin xyz="0.18 0 -0.095" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="front_caster_link"/>
<axis xyz="0 1 0"/>
</joint>
<link name="front_caster_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<sphere radius="0.015" />
</geometry>
<material name="black">
<color rgba="0 0 0 0.95"/>
</material>
</visual>
</link>
<joint name="back_caster_joint" type="continuous">
<origin xyz="-0.18 0 -0.095" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="back_caster_link"/>
<axis xyz="0 1 0"/>
</joint>
<link name="back_caster_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<sphere radius="0.015" />
</geometry>
<material name="black">
<color rgba="0 0 0 0.95"/>
</material>
</visual>
</link>
为了看得清,创建前轮的样子,我在截图的时候放大了半径,对了,这次创建的是一个球体
以下是取消参数RobotModel和show Names的效果图
创建传感器--摄像头
把对应的urdf文件和launch文件放入对应的文件夹中,在把meshes里面的三个文件放入其中
运行终端程序
检查URDF模型整体结构
cd catkin_ws/src/mbot_description/urdf/
urdf_to_graphiz mbot_with_kinect.urdf
得到两个文件