自主移动机器人及其控制方法
技术领域
本申请描述的实施例涉及一种自主移动服务机器人,例如用于处理表面(例如清洁地板)的机器人、用于运输物体的机器人,或用于区域的监控和检查的机器人,以及控制这种自主移动机器人的方法。
背景技术
近年来,自主移动机器人,特别是服务机器人,越来越多地用于私人家庭以及专业领域。例如,自主移动机器人可以用于清洁地面、用于监控建筑物、用于实现与位置和作业无关的通信或用于运输物体。
在此,越来越多地使用机器人和系统,其在使用SLAM算法(英文为SimultaneousLocalization and Mapping,德语为simultane Lokalisierung undKartenerstellung,例如参见H.Durrant-Whyte和T.Bailey:“Simultaneous Localizationand Mapping(SLAM):Part I The Essential Algorithms”,in:IEEE Robotics andAutomation Magazine,Bd.13,Nr.2,S.99-110,Juni2006)的情况下创建用于有针对性导航的环境的地图。在此,所使用的用于操纵和控制机器人的算法可以在所使用的传感器和执行器以及机器人的特定形状方面高度优化。这具有如下缺点,即所实施的软件的再利用仅可以通过大规模的匹配开发来实现。在一种可选的方式中,在软件中构建不同的抽象层级,以支持不同的硬件配置。这些解决方案通常是计算密集的,因此需要更昂贵的硬件。
随着需要开发和销售更智能的系统,自主移动机器人中所使用的行为习惯的复杂性也在不断增加。然而,如在许多复杂的软件应用中那样,增加的复杂性大多与提高的容易出错性相关联。这意味着,虽然机器人包括用于识别危险情况的传感器,但是导航和控制软件例如由于干扰、未识别的编程错误或来自外部的不期望的影响,而不能适当地对识别到的危险情况作出反应。随着导航和控制软件的复杂性的提高,机器人在所有可料想的危险情况下适当且正确地作出反应的证明与大量的耗费相关。由于法律规定,在某些应用中可能需要这种关于功能性安全的证明。对功能性安全的要求也是不同标准(例如EN/IEC61508和EN/IEC62061)的主题。
因此,本发明的目的尤其在于提供一种具有成本低廉、可重复使用的导航解决方法和稳固的安全机制的自主移动机器人,以及一种用于自主移动机器人的相应控制方法。
发明内容
上述目的通过根据权利要求1的自主移动机器人以及通过根据权利要求12的方法来实现。不同实施例和改进方案是从属权利要求的主题。
下面将描述一种自主移动机器人。根据一个实施例,机器人包括被设计为接收控制信号并根据控制信号移动机器人的驱动单元、用于检测导航特征的导航传感器以及与导航传感器连接的导航单元。导航单元被设计为从导航传感器接收信息,并规划机器人的移动。机器人还包括控制单元,其被设计为接收表示由导航单元所规划的移动的移动信息,并且基于移动信息生成控制信号。机器人包括与控制单元连接的其他传感器,从而控制单元可以从其他传感器接收其他的传感器信息。控制单元被设计成预处理这些其他的传感器信息,并将预处理的传感器信息以预定格式提供给导航单元。导航单元对机器人的运动规划不仅基于来自导航传感器的信息,而且基于由控制单元所使用的预处理的传感器信息。这样结构化的机器人允许导航单元和控制单元完全的功能分离。此外描述了一种相应的方法。
附图说明
下面借助于附图中所示出的实施例进一步阐述本发明。这些图示不一定按比例绘制,并且本发明并不仅限于所示的方面。更确切地说,重要的是,展示出基于本发明的基本原理。
图1示例性地说明了不同的自主移动机器人以及不同的可能的危险情况;
图2以框图的形式示例性地示出了自主移动机器人;
图3以框图的形式示出了用于自主移动机器人的控制单元的示例性结构,以及控制单元与导航模块和电机控制装置的接口的示例性结构;
图4示例性地示出了自主移动机器人的底部的俯视图。
具体实施方式
图1示出了用于自主地执行活动的自主移动机器人100的各种示例,其中,自主移动机器人100借助地图通过其环境以及可能的危险情况进行导航。注册意义上的活动超出了机器人在其环境中的纯粹导航范围,还包括例如地板清洁,检查和监视活动,运输任务或用于用户娱乐的活动。
图1A示例性的示出了一种被设计成清扫(特别是抽吸)地面的吸尘机器人。其中吸尘机器人通常在至少三个轮子(其中通常由两个驱动轮)上进行运动(在图一中并未示出)。此外在吸尘器机器人的底部通常包括可旋转的刷子和/或抽吸单元等相似部件,以便机器人100在地面上运动时可以收集灰尘。当在坠落边缘(例如楼梯上的台阶)上跌落时,如图1B所示,吸尘机器人可能会受到损伤。此外如果机器人100跌落或撞到地面上,也可能会对地面,位于附近的物体或人造成损伤。因此一些自主移动机器人100包括可以及时检测诸如楼梯的坠落边缘的地面距离传感器(floor clearance sensors)(在图1中未示出),以避免坠落。地面距离传感器也被称为地面探测传感器(floor detection sensors)或简称为地面传感器(floor sensors)。
图1C示例性地示出了一种远程呈现机器人。远程呈现机器人通常包括接口101(用户接口,也称为人机接口,HMI),例如显示器、智能电话、平板电脑等。该接口101固定在机器人100的垂直臂102的上端。在垂直臂102的下端固定有包括驱动模块103的机器人主体。由于机器人100的设计结构狭窄以及固定在垂直臂102的上端的接口101,这种远程呈现机器人具有相对较高的中心。通常机器人自己能够保持平衡。然而,例如在较大倾斜的表面上运动时,机器人100容易倾倒,从而可能损坏设备。或者在加速度很快的情况下或者在驶过凸起部或台阶时机器人100也可能倾倒。如果机器人100倾倒或跌落,周围的地面、附近的物体或者人也可能会收到损害。在图1D中示例性地示出了远程呈现机器人的倾倒。因此远程呈现机器人可以具有被设计为用于确定机器人100的位置(尤其是倾斜度),加速度和/或者角速度的传感器(在图1中未示出)。远程呈现机器人也可以包括被设计为用于检测凸起部(例如门槛)或台阶的传感器,以便机器人的行驶方式可以与之适应,从而避免机器人的倾倒。
图1E示例性的示出了一种辅助机器人,尤其是运输机器人。运输机器人大多包括运输平台104,在该运输平台上可以放置要运输的物品,例如盘子或玻璃杯。运输机器人在其底部包括例如轮子(图1E中未示出)的部件,利用这些轮子它可以向前运动。这种机器人100例如可以在日常生活中支持老年人并且通过这种方式实现其独立生活。对于运输机器人极其重要的是避免碰撞,以便避免带运输的物体或整个机器人100的倾倒以及避免周围环境中的损坏。为此,机器人100可以包括各种传感器,这些传感器(必要时利用所属的传感器信号处理)被设计为用于探测(例如激光测距传感器、光学三角测量传感器、摄像机等)机器人100周围环境中静止或运动的对象或人。
因此,原则上存在以下可能性,即,在使用不同的方式和方法的情况下使机器人自主地在其应用领域中运动,在此识别对于自主移动机器人100而言可能的危险情况并且通过适当地对所识别到的危险情况做出反应(即,避免或至少减轻事故)来避免事故。这种机器人100通常包括用于控制自主移动机器人100的导航软件和控制软件。然而,这种由处理器在控制模块中执行的导航软件和控制软件正变得越来越复杂。由于导航软件和控制软件复杂性的增加,不期望的编程缺失的风险也在增加。此外,越来越多的自主移动机器人100可以对互联网进行访问。由此,例如即使用户没有位于机器人100附近,也能够对机器人100进行控制。同样地,机器人100的固件,特别是导航软件和控制软件也可以通过互联网更新。例如软件更新可以自动地或在用户请求时下载。这种功能也被称为空中编程(OTA-Programming),OTA升级,或固件空中编程(FOTA)。
然而,自主移动机器人100与互联网的连接也可能带来危险,即陌生人获取机器人100的访问权限(例如所谓的机器人被黑、被破解或者被越狱),并借此影响机器人,使得机器人在危险情况下不再做出正确地反应,由此可能发生事故。整个导航软件和控制软件可以存储在机器人100自身中也就是说设置在机器人中的存储介质上。然而,还可以将导航和控制软件的一部分存储在外部设备(例如,云服务器)上。如果导航软件和控制软件的一部分存储在外部设备上,则机器人100的一部分通常不再是实时可用的。已知机器人100,其导航软件和控制软件的算法使用非确定性蒙特卡罗方法或机器学习方法,例如深度学习(也叫深度机器学习)。蒙特卡洛算法是随机算法,可允许以一种向上限制的概率发送错误结果。与确定性算法相比,蒙特卡洛算法通常效率更高。深度学习通常描述了一类用于人工神经网络的优化方法,该网络在输入层和输出层之间包括许多中间层(隐藏层),因此具有广泛的内部结构。不论在蒙特卡洛算法还是机器学习中,因果关系均不是预先定义的,所以很难理解。因此,机器人100的安全运行很难得到证实,也很难保证机器人100的导航软件和控制软件在任何危险情况下都能正确并及时地做出反应,以避免事故发生。同时,为了使自主移动机器人更智能,这种新的机器人控制方式是必要的。改进的机器人的“智能”能使机器人100更容易地用于相应的用户的生活中以及其相应的环境中。
因此,重要的或必要的是,能够实现可证明为安全的机器人行为,但在此又不限制机器人100的智能。根据一个实施例,自主移动机器人100除了包括可以借助导航软件执行路径规划和工作规划的导航单元之外,还包括安全模块(Safety Module),安全模块也可以被称为风险识别模块。在所述实施例中,安全模块功能上独立于导航单元工作。原则上,安全模块被设计为不依靠导航单元来监视机器人行为并识别危险情况。如果在一种明确的危险情况下,机器人的行为被分类为错误、危险或不适当,则安全模块可以启动适当的应对措施(安全措施)。例如应对措施可以是停止机器人100或改变机器人100的行进方向。这利用了这样一个事实,即确定哪种运动是不被允许执行(因为这种运动不安全)的要比确定哪种运动是正确的更容易。
自主移动机器人正在越来越多地在私人环境和商业环境中提供服务。对此其基本功能之一是借助合适的传感器建立环境的地图并且借助该地图自主导航。机器人技术进一步发展中的一个基本问题是,所使用的软件和算法与底层硬件之间的强关联,例如驱动器的电机或活动所需的其他工作单元以及内置于机器人中的传感器。由于上述强关联,在新机器人的构造中很难实现软件的在的再利用。
目前有两种已知方法来解决这些问题。一方面,可以提供满足机器人移动性所有要求的移动平台。但必须在此平台上构建新的应用程序,因此这种方法是不灵活的。另一种方法是对软件进行强大的模块化,从而将与硬件相关的模块和与硬件无关的模块分开。这需要对硬件进行强大的抽象,这通常会对系统的性能产生负面影响。
与此相反,根据实施例所追求的方法旨在将特定硬件和相关算法进行功能分离。这可以与先前描述的导航单元和安全模块的分离相结合。
图2以借助框图示出了自主移动机器人100的示例性结构,该自主移动机器人包括多个功能上相独立的单元。通常单元可以是独立的组件(硬件),用于控制机器人100的软件(在特定的机器人应用区域中执行所需任务(task))的组件,或者二者的组合(例如包括连接的外围组件的专用硬件以及合适的软件和/或固件)。
在本实施例中,自主移动机器人100包括驱动单元170,该驱动单元170可以包括例如电动机、传动装置和轮子。借助驱动单元170,理论上机器人100可以驶向其应用区域的每个点。例如,机器人100还可以包括处理地面清洁或物体运输特定工作的工作单元160(处理单元)。工作单元160例如可以是用于清洁地面的清洁单元(例如刷子、抽吸装置),设计为托盘高度可调节和/或可旋转的运输平台或用于抓住和运输物体的抓臂等。在某些情况下,例如对于远程呈现机器人或监视机器人来说,工作单元160不是绝对必要的。因此远程呈现机器人通常包括与人机接口耦合的复杂的通信单元130,该人机接口200包括由例如麦克风、相机和屏幕(参见图1,接口101)组成的多媒体单元,以便能够实多几个空间上相距遥远的人之间的通信。另一个例子是监控机器人,其可以借助专用传感器(例如摄像机、运动检测器、麦克风)来检测某些(异常)事件(例如火,光,未经授权的人等),并且可以例如通知与之相应的控制中心。
机器人100还可以包括通信单元130,以便于建立与人机接口200(MMS,Human-Machine Interface,HMI)和/或其他外部设备300的通信连接。该通信连接可以是例如直接无线连接(例如蓝牙)、本地无线网络连接(例如WiFi或ZigBee)或互联网连接(例如云服务)。人机接口200的例子有平板电脑、智能手机、智能手表、计算机或智能TV。在一些情况下,人机接口200也可以直接集成到机器人100中,并且可以通过按钮、手势和/或语音输入和输出来操作。前面提到的外部硬件和软件也可以至少部分地设置在人机接口200中。外部设备300的示例有在其上外包计算和/或数据的计算机和服务器,可以提供附加信息的外部传感器,或者其他与自主移动机器人100一起工作和/或信息交换的家用设备(例如其他机器人)。经由通信单元130,例如可以提供关于自主移动机器人100的信息(例如电池状态、当前工作任务、地图信息等),或者可以接收例如涉及自主移动机器人100的工作任务的指示(例如用户命令)。
根据图2所示的例子,机器人100可以包括导航单元140和控制单元150,它们被配置为相互交换信息。控制单元150在此获得由导航单元140产生的运动和工作信息。例如运动信息是规划的路径点、路径段(例如圆弧)或速度信息。例如路径点可以通过当前机器人的姿态(姿势表示位置和朝向)指定。例如对于路径段,可以指定要行进的距离和旋转角度(距离为零,在此处旋转;旋转角度为零,产生直线运动)。例如可以将在预先给定时间内行驶的平移速度和角速度作为速度信息。因此导航单元140预先规划具体运动(例如特定的路径段)并将该运动(作为运动信息)传递给控制单元150。对此控制单元150被设置为由运动信息为驱动单元170生成控制信号。所生成的信号可以是适合于控制驱动器的执行器(尤其是电机)的所有信号。例如这些控制信号可以是差速驱动器的左右轮所需的转数。可选地,可以通过改变电压和/或电流强度来直接控制电机。原则上必须知道机器人特定硬件配置(执行器的类型和位置)才能根据从导航单元140上接受到的运动信息生成控制信号,然而在更抽象的层面上,运动信息主要是不依靠于所使用的硬件来确定的。因此,如果驱动单元160被改变,则必要的适应性开发仅限于控制单元150。
类似于运动信息,工作信息可被转换成用于工作单元160的控制信号。在此,工作信息例如可以描述工作单元是否激活以及以哪个功率激活。因此,工作单元160可以是包括旋转的刷子和抽吸单元的清洁单元。工作信息包括清洁单元是否刚刚激活以及它应以何种强度工作。由此产生的控制信号例如直接控制刷子和抽吸单元的电机的功率。导航单元140在运动的所提及的规划中以及在构建和更新机器人应用区域的地图时使用由导航传感器125提供的信息。这样的导航传感器125可以是例如非接触式光学传感器(例如三角测量传感器)。
另外,控制单元150可以从控制传感器120收集信息,该控制传感器是为机器人检测特定的传感器信息。这例如包括用于检测机器人附近环境的安全关键情况的安全传感器122。安全传感器的一个例子是之前提到的用于探测边缘坠落的地面距离传感器。其他安全传感器122可以包括用于识别障碍物的接触的触觉传感器(例如,接触开关),或者用于检测机器人的附近环境中的障碍物的近程传感器(例如,红外传感器)。由此可以及时识别与这些障碍物的无意的碰撞。控制传感器120的另一示例是运动传感器123,其用于监控机器人100的由控制模块150具体控制的运动,并且其在实践中不与由导航单元140规划的运动完全相同。例如包括里程计,诸如车轮编码器(Wheel encoder)、加速度传感器和陀螺仪(例如,被组合在惯性测量单元(IMU)中)。控制传感器120的另一个例子是用于确定机器人100的倾斜和其变化的位置传感器。控制传感器120的其他例子是检测机器人的各部的状态(状况)的状态传感器124。属于此的例如有电流表和电压表,利用他们确定例如驱动单元的功率消耗。其他状态传感器可以包括开关,例如用于确定机器人是否与地面接触的车轮接触开关,或者显示有或没有部件例如刷子或污物仓的开关。
控制传感器120的测量值由控制单元150检测和分析。结果可以以标准化的形式被传递给导航单元140。这可以以规律的间隔、以周期性的间隔或者根据通过导航单元140的需求来进行。信息的类型与传感器相关并且可以映射到对于传感器典型的传感器模型上。例如,在差速驱动器的情况下,里程计数据可以描述车轮转动的分数(车轮编码器)。由此可以确定,属于编码器的轮子经过哪个路段。由差速驱动器的两个轮子的组合以及它们的位置得出经过的路线和方向改变。传递给导航模块140的里程计信息描述了从上一次信息起,机器人的位置和取向的改变。例如,利用地面距离传感器来确定坠落边缘,其中可能有许多测量原理。控制单元150从地面距离传感器的原始数据确定是否传感器中的一个探测到了坠落边缘。检测到的坠落边缘的位置能够以触发式地面距离传感器相对于机器人的固定坐标系(例如从差速驱动器的运动学中心出发)的位置的形式,发送到导航单元140。可选地,分配给传感器的号码(ID)可以被发送到导航单元140。在导航单元140中可以由该数字(ID)从事先确定的参数中确定属于触发式地面距离传感器的位置。所属的参数(传感器的数量和位置)例如可以在导航单元初始化时被加载。由此减少了数据流量并且将计算转移到导航单元的可能功率更强的处理器上。由控制传感器120提供的信息因此以抽象的并且与具体的传感器无关的形式被传递给导航单元140。
这种传感器的另外的示例是用于检测与障碍物(例如碰撞)的接触的触觉传感器。关于所检测的触摸的相应信息可以(类似于在检测到坠落边缘的情况下)在探测到事件的情况下利用触发传感器的位置或号码(ID)来传输。用于避免碰撞的传感器可以在近程无接触地探测障碍物。为此,例如使用发出红外信号的红外传感器。由其反射可以推断出障碍物的存在和距离。对于这些传感器,除了传感器的位置外,例如,可以向导航单元发送确定无障碍物的距离。
根据图2所示的例子,除了控制单元150的传感器信息之外,导航单元140还获得一个或多个导航传感器125的直接传感器测量,其提供关于机器人周围环境的信息,机器人可以利用这些信息来定向。这意味着,借助一个或多个传感器125可以确定适于建立地图的导航特征的位置。这样的导航传感器125例如是用于通过较大的距离非接触地测量与对象的距离的传感器,如尤其是激光距离测量装置(Laser-Distance-Sensor)或3D摄像机,其借助于三角测量或运行时间测量来确定距离。这些传感器提供关于障碍物的位置的信息,障碍物可记录在地图上。附加地或可选地,导航传感器125可以是提供机器人周围环境的图像的相机。图像可以直接用作导航特征。可选地或附加地,借助于对象识别和图像处理可以识别特征性的特征,如在环境图像中的用作导航特征的角和边缘。尤其是通过组合控制单元150的里程计信息和导航特征,可以借助本身公知的SLAM算法建立周围环境的地图,确定机器人在地图中的位置,并且将其用于导航和工作规划。这种地图可以被临时(即每次使用时重新)构建,或者被存储以重复使用,并且在需要时被重新加载。该解决方案的优点是导航传感器和与之相关的算法的紧密集成。由此,导航单元140和导航传感器125的组合能够相对容易地集成到新的机器人应用中。前提条件是仅控制单元150包括用于以所提及的标准化形式(标准化格式)交换数据的特定的接口。此外,必须预先给定和/或确定(例如借助校准)一些参数,如导航传感器125在机器人中的位置和方向。
除了用于检测周围环境的传感器之外,对于导航重要的其它传感器可以紧密地与导航单元连接并且其信号直接由导航单元分析处理。对此的例子是用于确定加速度和角速度的惯性测量单元(IMU)。这可用于确定由控制单元获得的里程计信息的一致性,并由此改善机器人在地图中的位置确定。特别是可以利用IMU来检测与规划运动不同的加速度,如例如在轮子打滑时出现的加速度。此外,可以确定机器人相对于重力加速度的位置。这可以用于解释环境信息和确定导航传感器的测量方向。
导航单元140例如可以以障碍物回避策略(sense and avoid strategy)和/或SLAM算法(Simultaneous Localization and Mapping;同时定位和测绘)工作,和/或利用机器人应用领域的一个或多个地图工作。机器人在应用期间可以重新创建机器人应用区域的地图,或者可以使用应用开始时已经存在的地图。现有的地图可能是由机器人本身在以前的应用中创建的,例如侦察行程,也可能是由另一个机器人和/或人类提供的。导航单元140的导航和工作规划包括例如创建目的地点、规划目的地点之间的路径、以及确定工作单元160在前往目标点或目的地的途中的活动。另外,导航单元140可以管理登记了预先规划的活动的日历(Scheduler)。例如,用户可记录清洁机器人每天在固定时间开始清洁。
如图2的实施例所示,由通信单元130、导航单元140和控制单元150组成的系统可以这样配置,使得分别仅在通信单元130和导航单元140以及导航单元140和控制单元150之间进行信息交换。这在通过通信单元130进行快速的数据密集的通信时是特别有意义的。此外,由此简化了数据流。
如稍后将更详细地解释的,导航单元140连同导航传感器125在功能上独立于控制单元150,控制单元150处理由控制传感器120提供的传感器。在导航单元140和控制单元150之间交换的数据/信息以定义的格式传输,该格式与所使用的传感器硬件无关。如果在机器人100的后续模型中使用另一个导航传感器125,则仅需要将导航单元140的软件(以及可能还有一些硬件部件)适配于新的导航传感器,而这种改变不会影响控制单元150。同样地,如果在机器人100的后续模型中要使用不同的或附加的控制传感器120或另外的驱动单元170或另外的工作单元160,则仅需要调整控制单元150的软件(特别是驱动器和可能的一些硬件部件)。因此,导航单元140和所使用的导航传感器125在功能上完全与控制单元150和连接到控制单元上的硬件(控制传感器120、工作单元160、驱动单元170)脱耦。如所提到的,不仅控制单元150而且导航单元140可以至少部分地借助软件来实现,然而这些软件可以彼此独立地在不同的处理器(计算单元)或处理器核上被实施。此外,可以将存储器的单独的存储器模块或单独的(例如受保护的)存储器区域分配给不同的处理器或处理器核,从而控制单元150的软件和导航单元140的软件可以彼此独立执行。
通过控制单元150和导航单元140分开处理传感器信息和其它事件(例如用户输入),不能容易地实现时间上的分配。为了简化数据处理,从而简化导航、路径和工作规划,可以为每个测量和每个检测到的事件分配时间戳。这至少应当能够由导航单元140明确地解释。为此,需要控制单元150和导航单元通过时钟发生器145同步时钟。时钟发生器可以是系统时钟,其例如以规则的间隔输出时间信号,该时间信号不仅从导航单元140而且从控制单元150接收。可选地,时钟发生器可以在导航单元140或控制单元150的计算单元中使用。
例如,可以在导航单元140中使用时钟发生器。基于该时钟信号,导航单元140确定要内部分配的时间戳。以周期性的间隔(例如每秒),时钟信号由时钟发生器145发送到控制器150。该时钟信号用于将控制单元150的内部时钟发生器与在导航单元中使用的时钟发生器保持同步。由此,控制单元150能够为传感器信息和其他检测到的事件分配与导航单元140的时间戳同步的时间戳。例如,控制单元150基于里程计的测量值来确定里程计信息。这些被配置上时间戳并被发送到导航单元140。导航单元140获得导航传感器(尤其是导航特征)的传感器信息,这些传感器信息同样配置有时间戳。基于时间戳,导航单元140现在可以决定它是否已经获得所需的里程计信息,并且如果需要,等待获得新的测距信息。基于时间戳,测量值可以按时间排序并且在SLAM算法的框架下合并,由此更新地图的状态和机器人在该地图中的姿态。
此外,自主移动机器人100可以包括电源,例如电池(图2中未示出)。例如,当自主移动机器人100对接在基站(图中未示出)上时,电池可以被充电。例如,基站可以被连接到电网。当需要对电池充电时或当机器人100已完成其任务时,自主移动机器人100可被配置为自主地启动基站。
图3更详细地示出了控制单元150的一个实施例。这可以包括例如安全模块151、电机控制器152(Motor-Controller)和预测模块153。电机控制器152被设置为用于根据从导航单元140接收到的运动和工作信息产生用于控制驱动单元170和工作单元160的电机和执行器的具体信号。为此可以建立缓冲器,该缓冲器在可预先给定的时间间隔内缓存控制信号。在这种情况下,运动信息可以包括机器人的立即停止,其中,在缓冲器中的所有控制信号可以被清除,并且可以由主动制动控制信号代替。在控制回路中,关于电流和电压测量(状态传感器124)的信息以及编码器信息(运动传感器123)可以用于控制。
在产生控制信号时,可能需要硬件特定的调整,这些调整导致实际控制的运动与由导航单元140最初规划的运动之间的一定偏差。在驱动单元170中使用的驱动部件(电动机、功率驱动器等)的限制(最小转弯半径、最大加速度、受限的控制精度等)也能够导致这种偏差。因此,预测模块153可以基于控制信号的缓冲来确定机器人的未来运动。这里,可以使用能够考虑机器人的惯性、驱动电子器件的特性和/或驱动单元的特定构造(例如轮子的位置和尺寸)的计算模型。结果例如是在一个或多个可预定的时间间隔内的位置和方向改变。该预测可以被传输给导航单元140,以便在导航和工作规划时能够考虑该预测。
安全模块151被设计成自主地且独立于导航单元140地监视机器人100的自主移动的所选择的与安全相关的方面。安全模块151还被设计为当导航单元140在危险状况下不能或不能适当地做出反应时进行干预。不适当的反应是不能避免危险情况或可能导致其他危险情况的反应。不适当的情况例如可能是如下反应,该反应可能导致机器人100的倾斜或跌落,由此,机器人100在没有人为干预的情况下不再能继续运行,或者可能对机器人、环境中的物体、地面覆盖物或周围的人员产生损伤。就这点而言,安全模块151可以“过滤”,即拒绝或修改由导航单元140规划的机器人的运动。
为了实现控制单元150与导航单元140的所提及的功能独立性,包括安全模块151的控制单元150如所提及的那样,可以包括自己的处理器以及存储模块。存储模块可以存储可由处理器执行的危险识别软件。然而,包括安全模块151的控制单元150也可以与机器人100的一个或多个其他单元共享处理器和/或存储模块。在一个实施例中,包括安全模块151的控制单元150可以与多核处理器的一个处理器核相关联,其它处理器核可以由机器人100的其它单元(例如由导航单元140)使用。然而,安全模块150的软件可以在功能上独立于控制模块140或其它模块的软件进行工作。如果控制单元150包括自己的处理器和自己的存储模块(或者排他地使用多核处理器的一个处理器核),则这可以减少干扰影响,从而可以更容易地确保控制单元150的与安全相关的安全模块151可以可靠地和及时地反应。与导航模块140不同的是,导航模块不一定必须实时获取控制传感器120的信息,而控制单元150,进而安全模块150可以实时获得来自控制传感器120的传感器信息,并因此可以快速和可靠地识别和反应危险情况。
用于危险识别的安全模块151的软件在此可能最简单地设计,以便确保合理并可靠的探测危险情况,以及确保在危险情况中的反应。根据一个实施例,自主移动机器人100的控制单元150包括多个安全模块151,其中,每个安全模块151都设计有与其相应的危险识别软件,用于确定的危险情况(例如在一个台阶上即将发生坠落的危险),并且专用于此危险情况。
实现安全模块151以及危险识别软件的简化目的(并且因此实现安全模块的功能的简单验证)的可能性例如在于,在安全模块151中使用反应的和/或基于行为的机器人技术(Reactive/behaviour-based robotics)的不同概念。在这种概念中,例如仅基于当前的传感器数据来确定机器人100的处理方式。然而,与这种概念不同,安全模块151被设计为仅在例外情况下,例如当识别到直接的危险并且导航单元140没有适当地对此做出反应,介入到机器人100的所规划的运动中。为此,安全模块151可以从导航单元140获得运动和工作信息以及预测模块153的未来的运动的预测。如果运动信息导致安全运动,则它被传递到电机控制器152。在不安全的运动的情况下,运动信息可以在被传递到电机控制器152之前被安全模块151改变或拒绝。附加地或可选地,安全模块151可以向电机控制器152发送“紧急停止”的命令。这导致,存储在缓冲器中的所有控制信号都被拒绝,并且造成用于主动制动(并且可能重置)机器人100的新的控制信号。出于该目的,安全模块151可以被设计成基于由控制传感器120提供的当前信息来识别被禁止的或潜在危险的运动信息(由导航单元140接收),该运动信息在没有安全模块151的干预的情况下可能导致事故。可选地,安全模块151也可以绕过电机控制器152直接控制驱动单元,以便制动机器人的运动。此外,安全模块151还可中断对驱动单元或包含在其中的电机的供电。
例如,安全模块151可以与作为安全传感器122的一个或多个地面距离传感器连接。如果地面距离传感器指示出与地面的距离异常的大(例如,因为机器人即将行驶越过边缘或者因为机器人已被提升),则安全模块151可以将该情况判断为危险情况。如果所涉及的地面距离传感器(在沿行进方向观察时)布置于机器人的前方,则安全模块151可以将当前运动归类为潜在危险,并且可以使得当前运动停止或改变(例如,向后行进)。在这种情况下,安全模块151用于检测危险情况的标准以及安全模块151用于评估当前运动(危险或非危险)的标准实际上是相同的。即,如果沿行进方向位于前方的坠落传感器显示出增大的距离,则识别出危险情况并且将当前运动判断为危险的;安全模块拒绝由导航单元140规划的前进运动,并且停止当前运动。在检测到确定的危险情况时(例如,当检测到即将坠落边缘时),安全模块可以立即停止机器人的当前运动(因为实际上当前运动的任何继续都被归类为不适当/危险)。
为了评估由导航单元140发送的运动信息,可以评估由控制传感器120发送的信息。例如,控制传感器120的信息可以涉及机器人100的内部状态(状态传感器124)和/或环境(安全传感器122)。因此,信息可以包括例如关于机器人100的环境的信息,例如坠落边缘、凸起部或障碍物(例如人)的位置。所接收的关于机器人100的环境的信息可以由安全模块150与机器人100的当前运动(运动传感器123)或规划的运动(预测模块153)的信息关联。信息可以在直接在安全模块151接收之后被处理,和/或在对其进行处理和/或对其进行考虑之前,首先被存储一段可预定的时间或一段可预定的距离(机器人100所经过的路程)。
另外,所接收的信息还可以涉及到例如由导航单元140创建和管理的机器人100周围环境的地图数据。在地图数据中例如可以包含关于坠落边缘或其他障碍物的信息。机器人100在正常运行中“知道”在当前时刻其位于地图上的位置。
安全模块150可以根据接收到的信息检验是否存在危险情况。例如,当坠落边缘、对于机器人100不利的地形(例如潮湿、光滑的、非常倾斜或不平的地面)或障碍物位于机器人100的附近或朝其运动(例如人)时,则存在危险情况。如果没有识别到危险情况,则不发生任何事情,并且安全模块151将运动信息不改变地继续传输给电机控制器152。
如果安全模块151识别出危险状况,则安全模块151可以首先通知控制模块140。例如,可以向导航单元140发送关于已识别的坠落边缘或即将发生的碰撞的信息。然而,不一定需要向导航单元140通知检测到的危险情况。安全模块151也可以充当“无声观察者”并且在不向导航单元140通知信息的情况下检验危险情况。在这种情况下,如先前所描述的,仅传送传感器信息(例如,具有时间戳的里程计信息)。此外,安全模块151能够检验,导航单元140是否正确地对识别到的危险情况做出反应。也就是说,安全模块151可以检查导航单元140的移动信息是否将机器人100朝向障碍物(或倾倒边缘等)行驶(并且因此加剧危险情况),或者检查机器人100是否偏离危险情况,制动或停止。为此,安全模块151可以首先根据识别出的危险情况确定,哪些运动原则上可能导致机器人100的事故。例如,可能导致事故的可能性高的运动可被归类为“危险运动”,而可能不导致事故的可能性高的运动可被归类为“安全运动”。危险运动例如是一种运动,其中机器人100直接运动到(或者不远离)坠落边缘或障碍物上。机器人100刮擦障碍物并且由此可能导致摇摆、跌落或倾倒的运动,或者障碍物可能由于接触而损坏的运动也可以被归类为危险。
在将运动归类为安全或危险之后,安全模块151然后可以检查机器人100的当前移动是否是危险运动或安全运动。安全模块150在此例如可以检查机器人100是否继续向危险情况运动,或者是否可能从障碍物旁驶过,或者是否变换方向并离开危险情况。为此,安全模块151例如可以使用和分析预测模块153的预测、里程计信息(运动传感器123)和/或由导航单元140发送的运动信息。如果安全模块识别出机器人100执行的是被评级为危险的运动,则安全模块可以启动应对措施(安全措施),这些措施确保了机器人100以及周围物体的安全,即应当避免或至少减轻了事故。应对措施可以包括例如拒绝或改变导航单元140的运动信息。安全模块150的控制信号例如可以是方向和/或速度指令,其例如使得机器人100不改变其方向和/或其速度。例如,当运动的对象与机器人的预定路径相交时,通过降低速度就可以避免事故。在许多情况下这是足够的,例如当机器人100仅轻微地或更强烈地改变其方向而不改变其速度。同样值得考虑的是,机器人100沿完全相反的方向行驶,即例如进行180°转动或者向后行驶。通常,通过机器人100的停止(紧急制动)可以有效的避免事故。
如所提到的,(可选的)如果安全模块151拒绝或修改了导航单元的移动信息,则安全模块151可以将对策通知给控制单元140。导航单元140可以对接收到的该信息进行确认。例如,可以通过导航单元140发送经改变的运动信息来进行确认,所述经改变的运动信息与所识别的危险情况相匹配。然而,导航单元140也可以直接向安全模块151发送确认。
如果在预定时间(例如1秒)之后没有或没有来自导航单元140的有效反馈,则安全模块151例如可以认为,机器人的安全运行无法继续得到保证。在这种情况下,机器人100可以可选择地被持续地停止。例如,只有当机器人100被用户主动准许时或当机器人100被用户或技术人员进行维护(例如清洁传感器)时,才可以再次进行重启。
根据本发明的实施例,导航单元140可以向安全模块151发送请求,以使得由安全模块151归类为危险的运动仍然能够被执行,以使得机器人100能够被进一步操作。该请求可以在安全模块151向导航单元140通知了针对危险运动的应对措施之后被提出。可选地或附加地,该请求可以作为预防措施,使得安全模块151预先获知所规划的运动。以这种方式,例如,可以避免所规划运动的中断。安全模块151可以检验该请求,进而再通知导航单元141所请求的运动是否是允许的。
机器人的传感器(特别是安全传感器122)在许多机器人中仅针对机器人100的向前行驶而设计,即测量方向为通常所说的行驶方向,也就是机器人100的前方区域。也就是说,他们不能提供有关机器人100后面区域的任何信息或仅提供非常有限的信息。因此,机器人100的向后行驶例如仅在非常短的距离内才能被归类为安全的,例如在小于5cm或小于10cm的距离上向后行驶。因此,例如安全模块151不允许较长的向后行驶。然而,当机器人100驶入或驶离可以对其电源进行充电的基站时,则可能例如需要较长的向后行驶。对此,通常安全模块151可以假设基站已经被用户按规定正确设置,从而使驶入和驶离基站都是安全的。如果机器人100现在必须驶入或驶离基站,并且为此需要较长的向后行驶,则导航单元140可以向安全模块151发送相应的询问。然后安全模块151例如可以检验机器人100实际上是否位于基站处。例如,可以这样进行测试,测试机器人100的相应充电触电处是否有电压。在这种情况下,充电触点形成一种状态传感器124,可以检测机器人是否已停靠在充电站。另一种可能性是,例如,当对接至基站时,接触开关闭合。因此,安全模块151可以检查接触开关是否闭合。然而这些仅是示例。可以以任何其他合适的方式检查机器人100是否处于基站。如果安全模块151检测到机器人100正位于基站处,则尽管所需的路段超过了通常可以允许的向后行驶的路段,但是其可以允许离开基站进行向后行驶所需的路段。然而,如果安全模块151检测到机器人100没有停在基站上,则仅正常允许的向后行驶路段能被准许。然而,这仅仅是示例。可以想先到其他各种情况,其中安全模块151例外地将归类为危险的运动视为安全并将其允许。
根据本发明的另一实施方式,控制单元150和特别是安全模块151被设计为执行自检。自检可以包括例如对属于安全模块151的储存模块进行读写测试。如果这种自检失败,则机器人100会被持续地停止或关闭,直到机器人的运行再次被用户准许。在自检失败后,通常不能确保机器人100安全运行。例如自检也可以通过不同组件的冗余设计的方式来实现。因此,例如安全模块151的处理器和/或存储模块可以存在两套,并且危险识别软件可以在两个处理器上运行。只要两个处理器的结果是相同的或者仅具有小的可容许的偏差,则可以认为安全模块151正常工作。
根据本发明的另一实施方式,安全模块151可以被设计为用于监控控制传感器120的可靠运行。在此,仅监控提供安全相关信息的那些传感器就足够了。通过对传感器的监控可以识别是否传感器例如由于故障或污染而提供了不正确的或不可靠的数据。在此,可以将待监控的的传感器设计为,其可独立识别故障并将其报告给安全模块151。可选地或附加地,传感器可以被设计为,仅当传感器功能完全正常时,才提供有意义的测量数据。因此,例如,如果地面距离传感器持续提供到地面的距离为零(或无穷远),而不是提供传感器到地面的距离的典型值,则该地面距离传感器可被视为无效。可选地或附加地,安全模块151也可以检验从传感器接收的数据的一致性。例如安全模块151可以检验,用于确定机器人100运动的传感器数据(运动传感器123,特别是车轮编码器)是否与驱动单元测量的功耗(状态传感器124,电流和电压表)一致。如果识别出一个或多个错误的传感器信号,则机器人会被持续地停止和断开,直至用户再次准许其运行,否则无法确保机器人100的安全运行。
原则上,利用所描述的方法可以识别任何已知的危险情况。为了检查机器人100的安全性,可以在测试情况下专门模拟已知的危险情况进行测试。在这种测试中,机器人100例如可以有针对性地被带入到潜在的危险状况中(例如将机器人定位在坠落边缘附近)。然后,可以模拟导航单元140向控制单元150发送不正确和/或随机运动信息的情况。随后,可以观察安全模块151是否能够有效地防止事故。为此,导航单元140能够启用专门的测试操作,其中预定的运动模式和/或通过通信单元130(例如远程控制)预先给定的运动信息可以被生成。
图4示例性地示出了自主移动机器人100底部的俯视图。图4以示例的方式示出了一种清洁机器人,其中,为了清楚起见未示出该机器人的清洁模块。所示的机器人100包括属于驱动模块170的两个驱动轮171(差速驱动器)和一个前轮172。前轮172可以例如是从动轮,其本身不具有驱动装置,仅由于机器人100的运动而沿着地面运动。在此,前轮172可以围绕基本上垂直于地面的轴进行360°的转动(转动方向在图4中通过虚线箭头表示)。驱动轮171可各自连接到电驱动器(例如,电动机)。通过驱动轮171的旋转,机器人100向前运动。机器人100还包括地面距离传感器121(作为安全传感器122的一部分)。在图4所示的例子中,机器人100包括三个地面距离传感器121R、121M、121L。第一地面距离传感器121R例如位于机器人100的右侧(沿行进方向看)。在此,第一地面距离传感器121R可以不布置在中心轴线x上,该中心轴线x将机器人100均等地划分为前部和后部。例如从中心轴线x看,第一地面距离传感器121R可以稍微向前布置。第二地面距离传感器121R例如位于机器人100的左侧(沿行进方向看)。在此,地面距离传感器121L也不必布置在中心轴x上。从中心轴线x看,第二地面距离传感器121L也可以稍微向前布置。第三地面距离传感器121M例如可以居中地布置在机器人100的前面。例如,至少一个地面距离传感器121以这样的方式布置在每个车轮的前面,使得在向前行驶时,在车轮驶过之前检测到坠落边缘。
地面距离传感器121被设计为探测机器人100与地面的距离,或者至少被设计为探测地面是否存在特定的距离间隔。在机器人100的标准正常运行期间,由地面距离传感器121提供的值通常为一致的,因为地面距离传感器121以及由此机器人100与地面的距离仅发生很小的变化。尤其是在地面光滑的情况下,到地面的距离大多数情况下基本保持不变。值的轻微偏差例如可能在地毯上出现,驱动轮171和前轮172可能沉入该地毯上。因此带有地面距离传感器121的机器人主体相对于地面的距离会变小。如果由至少一个地面距离传感器121提供的值突然剧烈地增大,则例如可识别出坠落边缘,例如台阶。例如,如果至少一个地面距离传感器121测量的值增加超过预定临界值,则可以识别出坠落边缘。地面距离传感器121例如可以包括用于光学或声学信号的发送器以及接收器,该接收器设计为探测所发送的信号的反射。可能的测量方法包括测量从地面反射的信号强度,进行三角测量或测量所传输信号的传输时间及其反射。根据本发明的一个实施例,地面距离传感器121例如不准确测量传感器到地面的精确距离,而是仅提供布尔信号,该布尔信号指示是否在指定距离内检测到地面(例如,在例如最大5cm的距离内检测到地面)。传感器信号的具体评估和解析可以在控制单元150中进行。
自主移动机器人执行的典型运动(或由导航单元140规划的运动,其以运动信息的形式被发送至控制单元140)包括向前运动、向右或向左的旋转运动以及这些运动的组合。如果机器人100在执行这样的运动时是朝着坠落边缘运动的,则这种情况至少会被地面距离传感器121中的一个探测到。出于简单的几何上的考虑,可以得到一些可能导致机器人100发生事故(在该情况下为坠落)的运动。如果例如布置在机器人100的侧面的第一或第二地面距离传感器121R、121L被触发,则此后机器人100最大仅能向前移动第一路段L1,其中第一路段L1与相应的驱动轮171(轮子支撑点)和地面距离传感器121R,121L之间的距离相匹配。例如,如果位于机器人100前方的第三地面距离传感器121M被触发,则此后机器人100最大仅能向前移动第二路段L2,其中第二路段L2与相应的前轮172(轮子支撑点)和第三地面距离传感器121M之间的距离相匹配。因此,机器人100必须能够从全速行驶中检测到坠落边缘,并生成用于制动的控制信号,并在坠落边缘之前(即在第一或第二路段L1、L2内)停止。对此特别应考虑到各个所需部件,例如相关的安全传感器122、导航单元140、带有安全模块151和电机控制的控制单元和驱动单元170的控制单元,以及机器人100的速度,用于制动机器人100(惯性)的可能的(负)加速度和与此相关的制动距离。例如,安全模块150可以被设计为只要至少一个地面距离传感器121被触发,才允许机器人100向后运动。当检测到地面距离大于允许的最大值时,地面距离传感器将被触发。
在图4所示的例子中,第二路段L2比第一路段L1短。为了能够在触发第三地面距离传感器121M之后(尽管还可以安全行驶)确保机器人100在坠落边缘之前能及时停止,安全模块151可以例如设计为拒绝来自导航单元140的所有运动信息,并使电动机控制器发送控制信号,一旦第三离地传感器121M被触发,立即停止机器人100。例如,安全模块151不会首先检验导航单元140的行为是否正确,因为这需要花费太多时间。仅在机器人100停下之后,安全模块151才可以检验,例如,导航单元140是否同样发送了适合于所识别的状况的运动信息。在这种情况下,适当的运动信息可以包括例如停止机器人,使机器人向后行驶或执行远离坠落边缘的旋转的命令。这种运动信息将不受安全模块151阻拦地发送到电机控制器。然而,如果安全模块151检测到导航单元生成了用于执行危险动作(例如,向前行驶)的动作信息,则其可以保持对机器人的控制即通过拒绝该动作信息来接管机器人。
在第一或第二地面距离传感器121R、121L被触发时,例如这是足够的,用以等待导航单元140对危险情况做出反应,因此有很多时间可用,直到机器人100必须停止以避免事故的发生。在这种情况下,安全模块151可以例如等待,直到机器人100已经经过第三路段L3(例如,其中L3=L1-L2)。此时,机器人100仅具有第二路段L2所需的时间,以避免发生事故。因此在第三路程L3所需的时间期间,安全模块151仍可以允许导航单元140进行其工作而不会拒绝其运动信息和/或停止机器人100。如果导航单元140在该时间期间做出了适当地反应(引导机器人100远离所探测到的坠落边缘的运动信息),则不需要安全模块151的介入,并且保持被动(传递不改变的运动信息)。例如,基于机器人100的可能的最大速度,借助于过去的时间和/或借助于里程表可以确定第三路段L3是否已经被驶过。例如,如果导航单元140在第一或第二离地间隙传感器121R,121L检测到坠落边缘之后的10ms内导航单元140没有使机器人100停止和/或使机器人100远离坠落边缘,则安全模块151可以使机器人100停止。在确定路段L3以及路段L3何时被驶过时,可以使用预测模块153对运进行预测。
出于成本原因,机器人100通常如图4所示仅在机器人100的前部区域中包括距离传感器121,从而仅在机器人100向前行驶时才能检测到坠落边缘。因为机器人100主要在前方方向上前行,所以这通常足以保证机器人100在坠落边缘方面能安全运行。然而,在一些情况下,前方方向的运动可能被障碍物或坠落边缘阻挡。在这种情况下,机器人100整体或其驱动轮171中的至少一个会不可避免地向后行驶,以摆脱这种情况。然而,机器人100仅能在他在该方向上能识别到路径上安全行驶。如果无法识别该路径,由于在机器人100的后面部分中缺少地面距离传感器而存在发生事故的危险,以为他例如不能识别位于后面的坠落边缘。例如,机器人100最后行进的路段可以近似为直线。例如在第四路段D上的行驶可以被认为是安全的,例如D是驱动轮171与圆周S之间的距离,在该圆周S上地面距离传感器121布置在机器人100的前部区域中。如果机器人最后向前运动了比第四路段D还短的路段,则机器人可以向后运动一个不大于最后向前运动的路段。通过向前运动和向后运动的组合可以求出真实驶过的路段(例如通过运动传感器123)并考虑到任何必要的向后行驶。
安全模块151例如可以被设计为,在机器人100开启后不允许直接的后向运动,因为可能没有关于机器人周围环境的信息,并且可能不知道机器人后方是否有坠落边缘。例如,机器人100可能已被用户放置在桌子上靠近桌子边缘,或放置在阶梯或阶梯平台上。在此,例如当前方方向被障碍物或坠落边缘阻断时,安全模块151也可以阻断机器人100的向后运动。如上所述,例如,如果安全模块151打算从基站向后控制机器人100,则控制单元140可以向安全模块151发送相应的请求。当安全模块151查验机器人100实际上位于基站,响应这样的请求时,它可以释放基站的关闭所需的距离,用于倒退。
机器人100的移动可以使用各种传感器来确定,例如通过里程计(例如车轮编码器,wheel encoder),和/或基于来自预测模块153的控制信号来计算。在此,例如可以以预先确定的时间间隔和/或运动间隔存储机器人100经过的路程。附加地,例如也可以存储地面距离传感器121的位置或路程,以便由此能够更好地估计安全的表面。
根据本发明的一个实施方式,当机器人100之前已经向前运动了至少大于外接圆S的半径的路段时,能够将其上布置有地面距离传感器121的外接圆S视为安全可行驶的表面。在这种情况下,安全模块151可以被设计为,当(例如,基于控制指令和/或里程计测量)检测到机器人100在向后行驶期间(以及与之结合的短暂地向前移动),通过倒退离开范围S时,使机器人100停止。
为了避免碰撞,可以共同使用多个传感器用于探测障碍物。例如,安全传感器122包括光学传感器(例如,包括与地面距离传感器类似的测量原理的红外传感器),其被设计为以非接触的方式识别机器人附近区域中的障碍物。安全传感器122例如也可以包括触觉传感器,其被设计为在接触时识别难以从光学上探测到的障碍物(例如玻璃门)。例如,触觉传感器可以包括接触开关,该接触开关被设计成当被触摸时闭合。触觉传感器例如还可以包括弹簧行程,该弹簧行程允许机器人100在机器人100的主体撞上障碍物之前制动。在这种情况下,安全模块151表现为类似于在探测到坠落边缘时触发地面距离传感器121时的行为。
安全模块151例如可以被设计为监视机器人附近的障碍物。如果在距机器人100的预定的距离内探测到障碍物,则安全模块150可以例如防止以高于临界速度的速度运动。预定的距离可以取决于探测到障碍物的方向。例如,在机器人100后方探测到的障碍物通常不限制机器人100的向前运动。该临界速度可以取决于到障碍物的距离和/或障碍物被探测到的方向。
安全模块151还可以被设计为,当通过适当的安全传感器122(例如热图像)识别到机器人周围的有生命的对象(人、宠物)时,无论对象以什么速度和在什么方向运动,都可以阻止大于预定临界值的速度和/或加速度。例如,通过限制最大速度,可以提供给机器人100更多的时间,以便对对象的意外运动作出反应。同时,通过限制最大速度,减小了人或动物受伤以及对机器人或对象损伤的危险,因为速度的减小导致了机器人100的动能的减小。通过限制机器人100的加速度,周围环境中的人员可以更好地估计机器人100的行为,并且可以更好地对机器人的运动作出反应,由此,同样降低事故的危险。
自主移动机器人100的状态传感器124,例如运输机器人,可以包括传感器,传感器被设计为探测机器人100是否正在运输以及正在运输哪些物体(例如,玻璃杯或盘子)。根据这些信息,能够调整并限制机器人的运动。例如,如果机器人100不在运输,则机器人100可以更快地加速并且以更大的速度行进。例如,如果他运输扁平的物体如盘子,则他通常比运输玻璃杯或瓶子时能更快地加速。
安全模块151还可以被设计为用于监控工作模块160的功能。这在工作模块160的活动与工作模块160自身的较大运动和/或机器人100的运动通过驱动模块170相连时尤其有利。
工作模块160例如可以包括用于收集污物的刷子。在此,原则上存在这样的危险,即,旋转的刷子例如将环绕的鞋子的鞋带、地毯边缘或电器的电线卷起并由此被阻塞。例如,可以通过旋转速度编码器测量刷子的旋转。当不能再探测到刷子的旋转时,就可以探测到刷子阻塞。例如也可以确定刷子电动机的电功率消耗,并且由此探测被阻塞的刷子。
有几种已知的方法可以释放阻塞的刷子。例如,刷子可以切换到空转,并且机器人100可以执行向后i运动,其中电缆或类似物再次松开。然而,这个程序是危险的。机器人100在刷子阻塞时的运动,总是会导致侵入。例如,如果缠绕在刷子上的电缆是电子设备的电缆,那么在向后行驶时,机器人会有拉动电子设备的风险。如果将电子设备放置在高处,例如架子上,可能会掉落到地面上而损坏。因此,安全模块151可以被设计为,例如,当执行释放刷子的程序时,识别刷子是否继续阻塞。在这种情况下,机器人100的运动可以停止,例如,因为在不损坏物体的情况下,向前或向后的运动都不可能。另一种可能是在机器人100不改变其位置的情况下,将刷子向与正常运动方向相反的方向旋转,以便将电缆等从刷子上释放出来。