版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
授课老师:连国云项目16:智能机器人自建地图《智能机器人技术》课程任务要求知识导入任务实施任务评价智能机器人在一个真实的室内环境中,基于ROS系统,智能机器人使用Gmapping算法,对真实的室内环境进行SLAM建图。任务要求知识导入任务实施任务评价SLAM技术定位与建图是机器人实现自主导航的必要条件。机器人的定位与建图是两个单独的问题,直到HughDurrant-Whyte和JohnJ.Leonard等学者提出了SLAM(SimultaneousLocalizationandMapping),即时定位与建图这一概念,从此,机器人的定位与建图共同称为SLAM问题,它被用来解决机器人的同步定位与地图构建任务要求知识导入任务实施任务评价SLAM技术经过多年的发展,SLAM技术发展出了许多类型的方案,即可以使用滤波的方法,也有很多基于图优化的方法。根据环境和要求的不同,可以选用不同的传感器组合,但目前用的较多的传感器是激光雷达,因为它的精度较高,数据量比视觉传感器少,容易实现实时SLAM任务要求知识导入任务实施任务评价SLAM技术机器人在陌生环境下,既要创建周围环境的地图,还要进行自定位,这两个任务处于互相依赖、相辅相成的状态,必须同步进行求解。SLAM问题是指:机器人在未知环境中估计位姿并构建地图的过程。机器人要想完成定位,需要知道所处环境的特征信息;机器人要想完成建图,需要知道它自身在所处在的位置任务要求知识导入任务实施任务评价SLAM技术SLAM的工作过程可以包括以下几个部分:(1)进行相关初始化工作,先对机器人系统模型与观测模型初始化,并将初始位置的子地图初始化为全局地图(2)控制移动机器人运动到新位置,并扫描周围的环境信息,对数据进行预处理,并制作出当前位置下的环境子图任务要求知识导入任务实施任务评价SLAM技术(3)将从传感器数据中获得的特征信息和全局特征信息进行匹配,通过位姿求解算法求解出机器人的位姿估计;(4)根据解算所得位姿,将新探测到的子图更新到全局地图中(5)通过机器人的移动,不断获取新的扫描数据,并回到第(2)步,进入下一轮的定位与制图任务要求知识导入任务实施任务评价SLAM的地图地图是用来表示环境的主要方式。目前针对机器人自主绘制地图主要包括栅格地图、几何特征地图和拓扑地图。在智能机器人的开发中通常是根据机器人所处环境的实际情况、同时定位与建图(SLAM)算法的适用条件以及机器人的需求来选择地图的表示方式。选择合适的地图表示方式不仅可以满足建图的需求,同时更加有利于在地图的基础上开展其他工作任务要求知识导入任务实施任务评价栅格地图栅格地图是最基础的地图表示方式,其主要思想是:将环境分为若干个相同大小的格网,对于二维栅格地图,每个格网都有两种状态:被障碍物占用和未被障碍物占用任务要求知识导入任务实施任务评价几何特征地图几何特征地图是指提取几何特征并使用全局坐标来描述环境,表示方法简洁,适用于结构化的环境信息描述几何特征的优点是数据存储计算量相对较小,不足之处是地图创建维护相对困难任务要求知识导入任务实施任务评价几何特征地图任务要求知识导入任务实施任务评价几何特征地图几何特征地图的优点在于易于识别,同时对于内存的占用也不是很大。但是这种表示方法存在一个很大的问题:数据关联问题,在进行地图创建时,需要将局部地图与全局地图相对应的环境特征进行关联匹配,它要求所提取的环境特征要具备一定的精准度,这样才可以保证地图的一致性任务要求知识导入任务实施任务评价几何特征地图另外数据关联问题也会影响环境特征和全局地图的匹配,从而对机器人位姿估计造成影响同时物体特征的提取是另一个难点,对于室内结构化的环境来说,物体特征较简单,大多是点、线等,较易于提取,但是对于室外非结构化的环境,就很难用简单特征去描述,因此几何特征地图更适合室内环境任务要求知识导入任务实施任务评价拓扑地图拓扑地图是通过把环境中某些空间抽象为一些节点,空间之间的通道抽象为边来表示环境。这种地图最适合路径规划,特征清晰、结构明确,路径规划的鲁棒性非常好,而且也不占用计算机资源正因为这种地图信息量少,遇到可运动环境比较小的情况,还需要别的算法提供足够的环境信息用于导航任务要求知识导入任务实施任务评价拓扑地图任务要求知识导入任务实施任务评价SLAM算法智能机器人自定位与环境建模密不可分,在未知环境中,智能机器人依靠构建的环境地图进行自定位,环境地图的准确性又依赖于定位精度在SLAM算法中,比较常见的算法有基于卡尔曼滤波(Kalmanfiltering,KF)的SLAM算法、基于粒子滤波(particlefilter,PF)的SLAM算法,以及基于图优化的SLAM算法任务要求知识导入任务实施任务评价SLAM算法卡尔曼滤波
(KalmanFilter,KF)算法可分为预测与更新2个过程,该算法的核心思想是递归求解经典的卡尔曼滤波适用于线性系统,对于非线性系统,衍生出了EKF(ExtendedKalmanFilter)。采用EKF实现SLAM的算法就叫做EKF-SLAM任务要求知识导入任务实施任务评价SLAM算法粒子滤波是用大量随机样本来估计系统状态变量的,随着这些粒子逐渐逼近准确的状态值,可以统计这些粒子所代表的状态,形成系统概率密度函数粒子滤波相比于卡尔曼滤波,它的优越性在于它可以用在任何形式的状态空间模型上,其局限性比卡尔曼滤波要小的多任务要求知识导入任务实施任务评价SLAM算法基于图优化的SLAM算法将机器人的位姿及其观测数据表示成图结构的形式,然后不断去优化图的配置,最终的图配置即作为SLAM问题的解一般的图优化框架分为前端和后端。前端负责构建图结构,后端负责优化图配置任务要求知识导入任务实施任务评价SLAM算法在EKF-SLAM算法和PF-SLAM算法的基础上,产生了实际应用中得到广泛认可的FastSLAM算法,该算法采用EKF算法递归估计移动机器人的位姿,得到相应的估计均值和方差,利用估计的均值和方差构建一个高斯分布函数,作为粒子的重要性函数。这个重要性函数加入了机器人位姿的历史信息,并按照重要性对粒子进行重采样,这很好的解决了粒子退化问题,提高了算法的精度任务要求知识导入任务实施任务评价SLAM算法Gmapping算法是基于栅格地图的FastSLAM算法的具体实现,该算法通过加入最新的传感器观测信息,来计算高精度的提议分布,根据有效样本大小进行自适应重采样,减少粒子滤波重采样的次数,降低了粒子退化的风险这不仅提高了建图的精确度,而且还减小了估计的误差任务要求知识导入任务实施任务评价gmapping功能包gmapping功能包在ROS系统中实现了Gmapping算法,它为开发者隐去了复杂的内部实现,开发者只需要通过使用该功能包就可以实现Gmapping算法,这大大降低了智能机器人的开发难度,也使开发者不需要自己实现SLAM算法gmapping功能包订阅机器人的深度信息、IMU信息和里程计信息,同时完成一些必要参数的配置,即可创建并输出基于概率的二维栅格地图任务要求知识导入任务实施任务评价gmapping功能包在ROS的软件源中已经集成了gmapping相关功能包的二进制安装文件,可以使用如下命令进行安装:$sudoapt-getinstallros-melodic-gmapping任务要求知识导入任务实施任务评价gmapping功能包中发布/订阅的话题和提供的服务topic(service)名称msgs(srv)类型功能topic订阅tftf/tfMessage用于激光雷达坐标系、基于坐标系、里程计坐标系之间的变换scansensor_msgs/LaserScan激光雷达扫描数据topic发布map_metadatanav_msgs/MapMetaData发布地图Meta数据mapnav_msgs/OccupancyGrid发布地图栅格数据~entropystd_msgs/Float64发布机器人姿态分布熵的估计servicedynamic_mapnav_msgs/GetMap获取地图数据任务要求知识导入任务实施任务评价gmapping功能包中可供配置的参数parameter名数据类型默认值功能描述~throttle_scansint1每接收到该数量帧的激光数据后只处理其中的一帧数据,默认每接收到一帧数据就处理一次~base_framestring“base_link”机器人基坐标系~map_framestring“map”地图坐标系~odom_framestring“odom”里程计坐标系~map_update_intervalfloat5.0地图更新频率,该值越低,计算负载越大~maxUrangefloat80.0激光可探测的最大范围~sigmafloat0.05端点匹配的标准差任务要求知识导入任务实施任务评价gmapping功能包中可供配置的参数parameter名数据类型默认值功能描述~kernelSizeint1在对应的内核中进行查找~lstepfloat0.05平移过程中的优化步长~astepfloat0.05旋转过程中的优化步长~iterationsint5扫描匹配的迭代次数~lsigmafloat0.075似然计算的激光标准差~ogainfloat3.0似然计算时同于平滑重采样效果~lskipint0每次扫描跳过的光束数任务要求知识导入任务实施任务评价gmapping功能包中可供配置的参数parameter名数据类型默认值功能描述~minimumScorefloat0.0扫描匹配结果的最低值。当使用有限范围(例如5m)的激光扫描仪时,可以避免在大开放空间中跳跃姿势估计~srrfloat0.1平移函数(rho/rho),平移时的里程误差~srtfloat0.2旋转函数(rho/theta),平移时的里程误差~strfloat0.1平移函数(theta/rho),旋转时的里程误差~sttfloat0.2旋转函数(theta/theta),旋转时的里程误差~linearUpdatefloat1.0似然计算时同于平滑重采样效果任务要求知识导入任务实施任务评价gmapping功能包中可供配置的参数parameter名数据类型默认值功能描述~angularUpdatefloat0.5机器人每旋转该弧度后处理一次激光扫描数据~temporalUpdatefloat-1.0如果最新扫描处理的速度比更新的速度慢,则处理一次扫描。该值为负数时关闭基于时间的更新~resampleThresholdfloat0.5基于Neff的重采样阈值~particlesint30滤波器中的粒子数目~xminfloat-100.0地图x向初始最小尺寸~yminfloat-100.0地图y向初始最小尺寸任务要求知识导入任务实施任务评价gmapping功能包中可供配置的参数parameter名数据类型默认值功能描述~xmaxfloat100.0地图x向初始最大尺寸~ymaxfloat100.0地图y向初始最大尺寸~deltafloat0.05地图分辨率~llsamplerangefloat0.01似然计算的平移采样距离~llsamplestepfloat0.01似然计算的平移采样步长~lasamplerangefloat0.005似然计算的角度采样距离~lasamplestepfloat0.005似然计算的角度采样步长任务要求知识导入任务实施任务评价gmapping功能包中可供配置的参数parameter名数据类型默认值功能描述~transform_publish_periodfloat0.05TF变换发布的时间间隔~occ_threshfloat0.25栅格地图占用率的阈值~maxRange(float)float-传感器的最大范围任务要求知识导入任务实施任务评价gmapping功能包中的TF变换TF变换描述必需的TF变换<scanframe>→base_link激光雷达坐标系与基坐标系之间的变换,一般由robot_state_publisher或者static_transform_publisher发布base_link→odom基坐标系与里程计坐标系之间的变换,一般由里程计节点发布发布的TF变换map→odom地图坐标系与机器人里程计坐标系之间的变换,估计机器人在地图中的位姿任务要求知识导入任务实施任务评价时间同步智能机器人的控制实现方式主要有两种,一种是单独选用嵌入式系统的本地控制方式,另一种是“主控制器+PC“的分布式控制方式,如果采用本地控制方式,在SLAM实现中,则可以直接运行SLAM相关节点和命令,如果采用分布式控制方式,则需要首先进行PC端和智能机器人主控制器之间的时间同步设置任务要求知识导入任务实施任务评价时间同步在进行导航操作之前,必须要保证智能机器人的机载控制器的时间跟远程PC的时间是同步的,否则会出现数据错误,在ROS系统中进行时间同步设置的具体方法有两个:一种是通过配置文件实现,另一种是通过网络配置界面实现任务要求知识导入任务实施任务评价时间同步(1)通过配置文件实现时间同步设置通过配置文件实现时间同步设置的具体操作包括以下几个步骤:(a)在PC端打开ntp配置文件$sudovim/etc/ntp.conf任务要求知识导入任务实施任务评价时间同步在文件的末尾增加下面几句,其中IP地址是指智能机器人机载控制器的IP地址,默认为192.168.1.100,增加这几句的目的是为了能让位于同一个局域网的其他设备能跟远程电脑进行时间同步restrict192.168.1.100mask255.255.255.0nomodifynotrapserver127.127.1.0#localclockfudge127.127.1.0stratum10任务要求知识导入任务实施任务评价时间同步任务要求知识导入任务实施任务评价时间同步(b)在PC端创建时间同步设置脚本文件(sh文件)用户可以自由命名该脚本文件,在这里命名为sync_time_with_ip.sh(b.1)创建时间同步设置脚本文件,输入以下命令:$touchsync_time_with_ip.sh(b.2)编辑该脚本文件,输入以下命令:$visync_time_with_ip.sh任务要求知识导入任务实施任务评价时间同步并在该脚本文件中输入以下内容:#!/bin/bashsudo/etc/init.d/ntpstopsudo/usr/sbin/ntpdate192.168.1.101(b.3)保存该脚本文件:按下“ESC”键,键入:wq保存退出,将该文件拷贝到智能机器人主控制器的指定文件中任务要求知识导入任务实施任务评价时间同步(b.4)在智能机器人端给该脚本文件赋予可执行权限在智能机器人主控制器相应的文件夹下,输入以下命令:$chmod+xtest.sh任务要求知识导入任务实施任务评价时间同步(c)在智能机器人端打开该脚本文件所在的目录,运行该脚本文件,输入以下命令:$./sync_time_with_ip.sh注意:如果执行同步时间的时候出现“noserversuitableforsynchronizationfound”的报错信息,这个时候可以尝试同时重启远程电脑和Transbot机器人,然后重复上面同步时间的步骤再操作一次任务要求知识导入任务实施任务评价时间同步(d)在PC端和智能机器人端分别确认时间是否完成同步在PC端和智能机器人端分别运行以下命令:$date对比打印出来的时间,确认时间是否已经完成同步任务要求知识导入任务实施任务评价时间同步(2)通过网络配置界面实现时间同步设置PC端和智能机器人端主控制器使用WIFI或者有线连接到外部网络,同时操作系统设置中的时间设置界面,使能同步网络时间任务要求知识导入任务实施任务评价节点的配置与运行对于智能机器人的开发者来说,只需要合理的使用gmapping功能包的相关node、topic、parameter等软件接口,掌握如何借助其提供的接口实现相应的功能任务要求知识导入任务实施任务评价<launch>
<!--Arguments-->
<argname="model"
default="$(env
TRANSBOT_MODEL)"doc="model
type[normal,mecanum,omni,helm]"/>
<argname="configuration_basename"default="transbot_lds_2d.lua"/>
<argname="set_base_frame"default="base_footprint"
/>
<argname="set_odom_frame"default="odom"
/>
<argname="set_map_frame"default="map"
/>任务要求知识导入任务实施任务评价
<!--Gmapping-->
<nodepkg="gmapping"
type="slam_gmapping"
name="transbot_slam_gmapping"
output="screen"
>
<paramname="base_frame"value="$(arg
set_base_frame)"/>
<paramname="odom_frame"value="$(argset_odom_frame)"/>
<paramname="map_frame"value="$(argset_map_frame)"/>
<paramname="map_update_interval"value="2.0"
/>
<paramname="maxUrange"
value="3.0"
/>
<paramname="sigma"
value="0.05"
/>任务要求知识导入任务实施任务评价<paramname="kernelSize"
value="1"
/>
<paramname="lstep"
value="0.05"
/>
<paramname="astep"
value="0.05"
/>
<paramname="iterations"
value="5"/>
<paramname="lsigma"
value="0.075"
/>
<paramname="ogain"
value="3.0"
/>
<paramname="lskip"
value="0"
/>
<paramname="minimumScore"
value="50"
/>
<paramname="srr"
value="0.1"
/>
<paramname="srt"
value="0.2"
/>任务要求知识导入任务实施任务评价
<paramname="str"
value="0.1"
/>
<param
name="stt"
value="0.2"
/>
<paramname="linearUpdate"
value="1.0"
/>
<paramname="angularUpdate"
value="0.2"
/>
<paramname="temporalUpdate"
value="0.5"
/>
<paramname="resampleThreshold"
value="0.5"
/>
<paramname="particles"
value="100"
/>
<paramname="xmin"
value="-10.0"
/>
<paramname="ymin"
value="-10.0"
/>
<paramname="xmax"
value="10.0"
/>任务要求知识导入任务实施任务评价<paramname="ymax"
value="10.0"
/>
<paramname="delta"
value="0.05"
/>
<paramname="llsamplerange"
value="0.01"
/>
<paramname="llsamplestep"
value="0.01"
/>
<paramname="lasamplerange"
value="0.005"
/>
<paramname="lasamplestep"
value="0.005"
/>
</node></launch>任务要求知识导入任务实施任务评价节点的配置与运行在启动slam_gmapping功能包的同时,需要配置较多gmapping节点的参数。这些参数都有默认值,大部分时候使用默认值或使用ROS中相似机器人的配置即可这些参数都跟SLAM算法有着紧密的联系,要熟练使用这些参数需要掌握SLAM算法的原理,在智能机器人开发过程中,可以首先采用这些参数的默认值,在SLAM功能实现之后再进行参数优化任务要求知识导入任务实施任务评价节点的配置与运行在这些参数中需要重点检查两个参数的输入设配置(1)里程计坐标系的设置,odom_frame参数需要和机器人本身的里程计坐标系一致(2)激光雷达的话题名,gmapping节点订阅的激光雷达话题名是“/scan“,如果与机器人发布的激光雷达话题名不一致,需要使用<remap>进行重映射任务要求知识导入任务实施任务评价(1)在PC端启动master节点在PC端输入以下命令,启动ROS系统的master节点$roscore(2)在PC端登录到智能机器人主控制器通过SSH远程登录到智能机器人主控制器,当成功登录到主控制器时,命令窗口输入栏的抬头会标称transbot在PC端输入的命令:$sshtransbot@192.168.1.100任务要求知识导入任务实施任务评价(3)运行智能机器人的启动节点在智能机器人端输入的命令:$roslaunchtransbot_bringuptransbot_robot.launch(4)在PC端启动gmapping功能包在PC端打开一个新终端,并在该终端中输入以下命令:$exportTRANSBOT_MODEL=normal$roslaunchtransbot_slamtransbot_gmapping.launch任务要求知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年团餐服务管理培训试题及答案解析
- 2026陕西西安医学院第二附属医院硕士人才招聘51人备考题库及答案详解(夺冠系列)
- 2026广西师范大学高层次人才招聘148人备考题库及答案详解【历年真题】
- 2026浙江嘉兴市海宁许村中心卫生院招聘1人备考题库及参考答案详解一套
- 2026甘肃甘南州舟曲县城关镇社区卫生服务中心招聘3人备考题库(含答案详解)
- 2026广东湛江市吴川市公益性岗位人员招聘5人备考题库及答案详解一套
- 2026江苏保险公司销售人员招聘备考题库含答案详解(满分必刷)
- 2026年上半年长信保险经纪(四川)有限公司第二批人员招聘1人备考题库及参考答案详解(综合卷)
- 2026北京大学生命科学学院招聘动物实验科研助理1人备考题库及答案详解(易错题)
- 2026年甘肃省兰州大学党委教师工作部聘用制B岗招聘备考题库及参考答案详解(综合题)
- 国际珍稀动物保护日课件
- 2026年南京大数据集团有限公司校园招聘考试参考试题及答案解析
- 2025年湖南省益阳市事业单位招聘笔试试题及答案解析
- 2026新疆喀什地区地直机关遴选公务员、事业单位选聘31人考试参考试题及答案解析
- 认识情绪拥抱阳光心态+-2026年高一下学期情绪管理与压力调节主题班会
- 2026年中国烟草招聘考试试题及答案
- 2026年浙江省衢州市六校联谊初三百日冲刺考试英语试题含解析
- 一次性使用止血套环产品技术要求北京中诺恒康生物
- 2026广东阳江市江城区招聘教师102人(编制)笔试模拟试题及答案解析
- XX医院关于2025年医保基金监管专项检查工作的整改报告
- 2026人教版二年级英语下册Unit 1 基础单元测试(含解析)
评论
0/150
提交评论