【ROS】中级操作学习整理-传感器建模

系列文章目录 

·【ROS】中级操作学习整理-gazebo机器人仿真

·【ROS】中级操作学习整理-TF坐标变换

·【ROS】中级操作学习整理-传感器建模

·【ROS】中级操作学习整理-激光SLAM


前言

当我们想在gazebo中仿真一个比较逼真的机器人时,光有机器人的样子是远远不够的,一个真实的机器人往往附带着各种各样的传感器,比如用来估计机器人位置的编码器、IMU;用来感知外部环境的摄像头、雷达等等,如果我们想自己在电脑中完全复现出一个逼真的传感器,这是很难得一件事,幸运的是gazebo为我们提供了用来仿真传感器的插件,最常用的有相机、kinect、激光雷达等等,这极大地方便了用户在仿真环境中机器人的构建。

本文以三种常见且难度中等的传感器仿真为例,介绍如何在gazebo中搭建我们自己的传感器模型。

一、RGB相机

1.urdf建模

相机的urdf模型还是分为三部分,视觉模型、碰撞模型、惯性模型,在前面的文章中简要介绍了关于urdf建模的知识,在相机的建模中,我们简单的将它建模为一个盒子(box),然后赋予它一些真实的特性。

然后我们使用xacro格式的建模方法,将传感器单独列为一个文件,然后在主文件中调用它。

2.gazebo物理特性

在gazebo中的颜色显示和在rviz中的颜色显示有所不同,在上述视觉模型中设定的"black"颜色显示,只能显示在rviz中,因此我们先通过以下代码,设置模型在gazebo中的颜色。

<gazebo reference="${prefix}_link">
    <material>Gazebo/Black</material>
</gazebo>

下面这一部分给出相机的参数,这些参数可以根据现实生活中我们购买的相机参数填入

 下面将我们的相机链接到插件库,实现真正的相机仿真

 相关的仿真教程可以在gazebo官网教程找到

二、深度相机

1.urdf建模

kinect是ROS中常用的深度相机,在gazebo建模中我们将它建模为一个盒子,但是由于kinect模型的通用性,作为微软的一个品牌,人们为其配置了模型渲染文件

 仍然使用了xacro文件格式,然后在主文件中调用它

2.gazebo物理特性

第一部分仍然是根据我们购买的相机参数填入它们,其实现在比较流行的一种建模方法是使用.sdf文件,比如kinect的官方教程中就是根据提供的sdf再进行建模

 然后再链接到插件库,进行更详细的设置

 最后附上了gazebo中使用kinect的教程和如何制作自己sdf模型的教程

三、激光雷达

1.urdf建模

在激光雷达建模部分,我们将其建模为一个圆柱体,通过固定关节(fixed)连接在机器人上方,描述了它的视觉模型、惯性模型以及碰撞模型

2.gazebo物理特性

在官方教程中,说以下参数都是不说自明的,其实根据我们真实的雷达参数进行修改即可,我对它们进行简单解释

 其中,这一条如果为真,则在 gpu 激光器的扫描区域内可以看到半透明的激光射线

<visualize>false</visualize>

然后我们将雷达链接到插件库

 最后,我们在主文件中,调用我们写好的传感器文件,然后建立关节将他们与我们的主体连接起来即可。

 四、差速驱动插件及传动机构

在我们的移动机器人中电机关节往往需要搭配减速器使用,而且通常需要对其进行PID控制,ROS为我们提供了差速驱动插件,以及传动机构的配置

1.传动机构

ROS中的传动机构主要是在urdf文件中,通过transmission标签体现,这一部分其实是属于ros提供的通用硬件接口ros_control,有几种类型的transmission可以使用,如:TransmissionInfo、TransmissionLoader、SimpleTransmission等,我们常用的就是SimpleTransmission,transmission标签分为两部分-joint和actuator。

joint部分主要是针对要设置的关节,hardwareInterface标签指定的是关节空间的接口类型。

actuator部分主要是针对驱动器部分进行设置,mechanicalReduction标签指定关节/执行器传动装置处的机械减速;hardwareInterface标签指定的是关节空间的接口类型。

关于接口类型的更多说明参考ros的官方解释

2.差速驱动插件

 差速驱动插件也是通过plugin标签链接到相应的差速驱动库,下面对它的一些参数进行了解释。


总结

本文介绍了ROS仿真中常用的三种传感器-RGB相机、Kinect深度相机、激光雷达的仿真建模方式以及其中参数的含义,最后介绍了SLAM中常见的载体-移动机器人的差速驱动器建模方式,并简单介绍了ros_control硬件接口中关节的传动机构的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值