gazebo 加载urdf_ROS探索总结(二十四)——使用gazebo中的插件

URDF文件完成后,可以在rviz中显示机器人的模型,如果要在gazebo中进行物理环境仿真,还需要为URDF文件加入一些gazebo相关的标签。既然是仿真,那么机器人应该像真在真实环境中一样,可以通过传感器感知周围环境,还可以根据指令进行运动。

在gazebo中可以通过插入一些插件,来仿真机器人的传感器、执行器的特性,这些插件通过元素中的标签描述,使用下边的格式加入到URDF文件中:

... plugin parameters ...

当然,这些插件常常需要附着于机器人的某个部分,比如要加入一个激光传感器的插件,那么我们需要将这个插件与机器人模型中的激光传感器link绑定:

... plugin parameters ...

gazebo默认支持不少常用的设备,可以找到ros安装目录中的gazebo_plugins功能包,里边就是所有支持的插件。当然,你也可以自己编写需要的gazebo插件。

下边列出一些常用插件的使用方法:

1.差速驱动插件

很多机器人本体都采用差速驱动的方式,gazebo提供差速机器人的仿真插件,可以直接将下边的代码放到URDF文件中,修改相应的参数,指定运动控制需要订阅的主题,让机器人在gazebo中动起来。

true

${update_rate}

base_link_right_wheel_joint

base_link_left_wheel_joint

0.5380

0.2410

20

cmd_vel

odom

odom

base_footprint

2.摄像头

在gazebo中也可以让机器人的摄像头看到虚拟的环境,将下边的代码放到URDF文件中,“reference”修改成机器人的摄像头link,还有一些分辨率、刷新率、发布的图像主题等等参数。把机器人模型在gazebo中运行起来后,用image_view或者rviz就可以看到机器人在虚拟环境中的视野了。

30.0

1.3962634

800

800

R8G8B8

0.02

300

gaussian

0.0

0.007

true

0.0

rrbot/camera1

image_raw

camera_info

camera_link

0.07

0.0

0.0

0.0

0.0

0.0

我们来解释一下这个插件中的参数含义:

插件都是用来描述link、joint的,是一种虚无的属性描述,需要关联相应的实体,所以首先我们需要通过reference参数来定义关联的link或者joint。这里我们关联的是camera_link。

然后声明插件的类型,并为该插件取一个唯一的名称。

30.0

设置摄像头数据更新的最大频率。

1.3962634

800

800

R8G8B8

0.02

300

再来设置一些摄像头相关的参数,尽量让这些仿真的参数与实际使用的硬件相同。

关联摄像头插件,该插件已经在gazebo中实现,所以直接关联即可。

rrbot/camera1

image_raw

camera_info

camera_link

声明摄像头发布的消息话题,以及数据所在的参考系。

3.Kinect

Kinect在机器人导航中用的也很多,为机器人的kinect link绑定这个kinect插件,我们就可以在gazebo中进行SLAM、导航了,对于一些初学者,就算没有实体机器人,也可以在仿真器中玩转机器人。

0.2

true

1.0

${camera_name}_ir

/${camera_name}/depth/image_raw

/${camera_name}/depth/camera_info

/${camera_name}/depth/image_raw

/${camera_name}/depth/camera_info

/${camera_name}/depth/points

${frame_name}

0.5

0.00000001

0.00000001

0.00000001

0.00000001

0.00000001

0

0

0

0

0

4.激光

有没有感叹过激光传感器太贵了!现在不要9999,不要999,只要把激光传感器的插件放到URDF模型中,上万的激光传感器在gazebo里随便用,妈妈再也不用担心玩机器人败家了。

0 0 0 0 0 0

false

40

720

1

-1.570796

1.570796

0.10

30.0

0.01

gaussian

0.0

0.01

/rrbot/laser/scan

hokuyo_link

当然,实践是第一要义,这些插件用起来效果到底怎么样,还得你上手来试试。ROS中的很多机器人也提供了gazebo中仿真的模型和实验的案例,如果你还不太明白,直接运行这些已有的模型,看看别人写的代码,理解会更快。这里,推荐一个husky机器人的案例,可以在gazebo中SLAM和自主导航。

husky机器人的主页是,仿真案例在Demo Applications那里。

参考链接:

你可能感兴趣的:(gazebo,加载urdf)