2.3 ROBOT ENVIRONMENT INTERACTION 机器人与环境交互

2.3 ROBOT ENVIRONMENT INTERACTION 机器人与环境交互_第1张图片

图2.1 阐释了一个机器人(Robot)与其所处环境(Environment)的交互过程。一个robot的Environment,或者称为world,是一个动态的具有内部状态的系统。Robot可以使用传感器(Sensor)获取环境(Environment)信息。然而传感器获得的信息包含噪声,并且很多信息是无法通过传感器直接获取的。因此,Robot内部需要维护对环境的估计(belief),见上图左侧。Rotot 也可以通过执行器(actuators)来影响环境。然而,这么做的结果经常无法预测。现在我们将更加正式地描述这个交互过程。

2.3.1 State 状态

Enviroments 可以使用State来概括其特征。在本书的资料中,为了便利起见,我们认为State就是Robot和Environment的所有方面的集合,并且可以影响将来。State 会随着时间变化,例如人的位置;State也可能保持不变,例如(大多数)建筑物的墙。会变化的State 称为动态状态(Dynamic state),相对的,不变的State被称为 静态状态(Static State or no-changing state)。State也包含关于Robot自身的变量,例如位置姿态(pose)、速度(velocity)。在本书中,State将被记为向量 x , x 中的具体变量取决于应用的上下文。时间 t 的State被记为xt,典型的状态(State)在本书中有:

  • Robot Pose(机器人位置姿态),包含Robot在一个全局坐标框架内的位置和朝向(orientatioin)。刚体移动机器人具有6个状态变量,其中3个是笛卡尔坐标,3个是角度朝向(也被称为欧拉角,pitch,roll,yaw)。对于被限制在一个平面的刚体移动机器人来说,pose(位置姿态)通常用3个变量表达:2个位置坐标值和航向(yaw)。这个Robot Pose也经常被称为 运动状态(kinematic state)。
  • Robot的传动装置(actuator)的设置,例如机器人机械臂的关节的设置。在任何时间点上,机械臂上每个自由度都可以被一个一维参数设置所刻画,这也是 机器人运动状态(kinematic state)的一部分。
  • Robot与关节(Joint)的速度。一个移动中的刚体Robot可以被6个速度变量描述(每个都对应一个Pose分量)。速度一般被归类为 动态状态(dynamic state).Dynamic state 在本书中无足轻重。
  • Enviroment中周围物体(Object)的位置和特征。这里的Object可能是一棵树,一堵墙,或者一个大表面的像素。这些Object的特征(Feature)可能是视觉的(颜色、纹理)。根据State建模的粒度,robot environment 具有几十个到万亿级别的State变量。试着想象一下,想要精确描述自己周边的物理环境,需要多少字节!在本书所研究的大部分问题中,Object的位置是静态的。在一些问题中,这种静态的object 被当做地标(landmark),通常是具有明显特征、环境中的静态要素,必须能被可靠的识别。
  • 移动的Object和人的位置、速度。通常,robot并不是环境中唯一的运动角色。其他运动的实体具有自己的运动(kinematic)和动态(dynamic)状态。
  • 还有大量的State变量。例如,一个Sensor是否坏掉,电动Robot的电量。

状态 xt 被称为 完整(complete)的:当 xt 是未来(future)的最佳预测器。换句话说 完整性(completeness)意味着,此前的State,measurment,control 对更加准确的预测未来(future)没有帮助。需要注意的是,completeness 的定义并不需要未来(future)是当前状态(State)的确定性函数(deterministic function)。未来可以是随机的,但是没有其他变量比 xt 对未来状态的随机进化影响更大,除非这个依赖关系是通过 xt 来体现。能够满足上述条件的时间域过程(temporal processes)通常被称为马尔科夫链(Markov chains)

状态完整(state completeness)的观念在理论上比较重要。然而在实践中,描述一个实际的机器人系统complete state 是不可能的。一个完整状态不仅包含会影响未来状态的各种环境因素,而且同样包含robot自身的信息,例如计算机内存内容,周围人群的意图。这些信息是很难获取的。因此,实战中仅选取上述状态变量的一个子集,这样的状态被称为不完整状态(incomplete state)

大部分机器人学应用中,状态是连续(continuous)的,也就是说 xt 是在连续统(continuum)的。一个明显的例子是Robot Pose(机器人位姿,相对于外部坐标系的位置和朝向)。有时候,状态是离散(discrete)的。离散的例子如描述sensor是否坏掉的二值状态变量。同时包含连续和离散的变量的状态空间(state space)被称为混合状态空间(hybrid state spaces)

在大多数机器人学问题中,状态随着时间变化。在本书中,时间(Time)是离散的,也就是说,我们感兴趣的事件将会发生在离散的时间节点:

0,1,2,...(2.28)

当robot 在一个特定时间点开始运作,此时间点被记为 t=0 .

2.3.2 Environment Interaction 机器人与环境交互

Robot与Environment 交互有两种基本类型:
- Robot可以通过其执行器(actuator)影响State。
- Robot可以通过其传感器(Sensor)收集State的信息。
两种交互类型可以同时进行,但是为了教学方便,我们在本书中对两个过程加以区别。交互过程在图2.1中已经阐释过。
- Sensor Measurements传感器测量
- Control Actions 控制行为
假定,Robot保留了所有过去的传感器测量和控制行为记录。我们将此称为数据data,与上文保持一致,Robot 有两个数据流:
- Measurement data 测量数据
即环境的瞬时状态。measurement data的例子包括相片、测距扫描(range scan)等。
时间t 的测量数据被记为: zt
在本书中,我们假设Robot在一个时间点做一次测量。这个假设是为了数学表达方便,不影响书中算法的有效性,因为本书中所有算法都可以被轻易的扩展,使Robot在一个时间节点上获取 n 个测量(n即状态变量个数)。以下数学标记(2.30):

zt1:t2=zt1,zt1+1,zt1+2,...,zt2

表示从时间 t1 到时间 t2 的所有测量数据, t1 小于或等于 t2

- Control data 控制数据
即环境状态变化(change of state)的信息。在移动机器人领域,一个典型控制数据(control data)的例子是机器人的速度。将机器人的速度设为10cm/s,执行5秒后,机器人的位姿将大约向前移动50cm。所以说,Control data 主要关注State的变化。
另一个可选的control data 源是里程计(odometers).里程计是测量机器人(或车)的轮子转动运行的传感器。尽管odometer是传感器,我们仍然将其读数作为control data,因为其反映了robot pose的变化。
control data 将被记为 ut 。作为变量, ut 表示在时间间隔 (t1,t] 发生的状态变化。像以前一样,我们将control data序列记为

ut1:t2=ut1,ut1+1,ut1+2,...,ut2

表示从时间 t1 到时间 t2 的控制数据序列, t1 小于或等于 t2
即使robot没有执行任何control action,环境可能会发生变化,从技术角度讲,事实上构成了control action。因此,我们假定:对于每个时间点 t , 都存在个control data项。

区分测量(measurement)控制(control)是一个非常关键的问题,这两种不同类型的数据在接下来的要讲的内容分别扮演了不同的基础角色。感知(Perception)过程提供了环境的状态信息,此次增加了机器人的知识(knowledge)。另一方面,行为(Motion)却趋向于引起机器人的知识损失,原因是机器人驱动的固有噪音和机器人所处环境的随机性;尽管有些情况下,一个控制行为(control)会使机器人对的状态更加确定。我们这里强调两者的区别,并不是说两者不会同时进行。相反,感知(Perception)控制行为(control)经常同时发生;很多传感器会影响环境。

2.3.3 Probabilistic Generative Law 概率生成法则

状态和测量的演化是被概率法则支配的。通常来说,某个时间点的状态xt是随机生成的。因此,我们需要搞清楚 xt 所服从的概率分布。初看之下, xt 取决于所有过去的状态(states),测量(measurements),控制行为(controls)。因此, 状态(state)的演化可以用如下概率分布表达:

p(xt|x0:t1,z1:t1,u1:t)(2.32)

(注意:如果没有特别说明,我们假设机器人首先执行一个控制行为 u1 ,然后再进行一次测量 z1 。)

然而,如果状态 x 完整(complete),那么它可以充分代表过去的所有信息。特别的,xt1应当是对之前的所有controls和measurements,即 u1:t1 z1:t1 ,的充分统计量(suffient statistic)。在上述表达式的所有变量中,只有控制行为 ut 在已知状态 xt1 的情况下有意义。用概率论属于,这个见解可以用下面的等式表达:

p(xt|x0:t1,z1:t1,u1:t)=p(xt|xt1,ut)

上面等式表达的特性是条件独立性(conditional independence)的一个例子。条件独立性是指:在已知第三方变量,即条件变量conditioning variables,的情况下,一些变量相对其他变量是独立的。条件独立性(conditional independence)在本书遍地可见,他是概率机器人学算法易用性的保证。

相似的,我们也可以对measurement(测量)数据的生成进行建模。同理,如果 xt 是完整的,有如下的一个重要条件独立性(conditional independence)的例子:

p(zt|x0:t,z1:t1,u1:t)=p(zt|xt)

换句话说,状态 xt 可以充分预测测量数据 zt 。当 xt 是完整的,其他变量,例如过去的测量数据,控制数据、或者过去的状态,是不相关(irrelevant)的。

以上讨论的成果是两个条件概率: p(xt|xt1,ut) p(zt|xt)

  • p(xt|xt1,ut) 状态转移概率(state transition probability),它描述环境状态如何作为机器人控制行为 ut 的函数随着时间进化的。机器人环境是随机的,从 p(xt|xt1,ut) 是一个随机分布,而不是确定性函数,可以反映出来。有些情况下,状态转移分布并不使用时间索引 t ,这时候我们可以使用表达式p(x|u,x),这里 x x 的后续状态。
  • p(zt|xt)被称作测量概率(measurement probability),同上,若不使用时间索引 t ,可被记为p(z|x)测量概率描述了从环境状态 x 生成测量数据z所服从的概率法则。测量数据通常是状态的带有噪音的投射(noisy projection)

    状态转移概率测量概率结合起来,描述了机器人与环境的动态随机系统。上述的基于时序的生成模型也被称作隐藏马尔科夫模型(hidden Markov model, HMM)或者动态贝叶斯网络(dynamic Bayes network,DBN)。为了完整的表达这个模型,我们需要一个初始状态分布 p(x0)

2.3.4 Belief Distributions 状态认知分布

Belief 是概率机器人学另一个关键概念。Belief 反映了机器人对于环境状态的认知。我们已经讨论过有些状态是无法直接测量的。例如,机器人的位置姿态可能是在全局坐标系的 x=(14.12,12.7,0.755) ,但也有可能无法直接获取(即使有GPS也不行!)。在无法直接测量的情况下,机器人必须从数据中推断他的位置姿态。因此,我们需要区分真实的状态(true state)和机器人内部的belief,或者称为对应此状态的状态认知(state of knowledge)

概率机器人学通过条件概率分布(conditional probability distributions)来表达状态认知belief。一个状态认知分布(belief distribution)会给对应真实状态每个可能的假定值一个概率(或者密度值)。belief 分布是关于状态变量的后验概率,并且以数据为条件。我们用 bel(xt) 来表示状态变量 xt 上的belief,即下面这个后验概率的缩写:

bel(xt)=p(xt|z1:t,u1:t)

上述后验概率,即状态 xt 的概率分布,以过去所有的测量数据 z1:t 和控制 u1:t 为条件。
读者可能注意到了,我们默默的假设belief是在将测量数据 zt 纳入以后得到的。有时候,也需要在纳入 zt 以前,刚刚执行完控制行为 ut 时,计算这个后验概率。这样的后验概率,如下式所示:
bel(xt)=p(xt|z1:t1,u1:t)

上述概率分布在概率滤波的上下文中,经常被称为预测(prediction)。这个术语反映了一个事实: bel(xt) 在得到时间点 t 的测量值之前,预测了时间点t的状态。从 bel(xt) 计算 bel(xt) 的过程,称为改正(correction) 或者 测量更新(measurement update )

你可能感兴趣的:(机器人,机器人,传感器)