关于智能体运动的AI、IK和物理引擎的思考

--本文为几年前旧文,原来写在网易博客,但是转不过来,故粘贴于此,并进行修改--

看了好长时间的《游戏人工智能编程案例精粹》,《游戏物理引擎开发》,主要是对机器人的动作控制感兴趣,希望从中获得灵感,学习如何控制机器人,比如说如何控制一个机器人从A点运动到B点,下面是我这段时间学习和思考的总结

机器人系统应该有感知层,决策层,控制层,执行层

首先感知层就是获取外界信息(环境,位姿,命令等),并将其转化为系统能够理解的形式;----有什么

然后决策层(策略层)根据获取的信息,决策层进行分析,做出决策(是跑呢,还是躲避?);                ----做什么

接着控制层(规划层)根据决策信息和自身信息规划各个关节(或电机)的动作目标;                        ----怎么做

最终执行层根据动作目标执行最终的动作(电机转动等,相当于肌肉控制骨骼)              ----做

 2021.11.26:执行层是设计控制器的,PID算法(神经网络?控制器模型?)

                       感知层:卡尔曼滤波,获得信息,预测

                       决策层:路径规划

比如说一个机器人(轮式,多足式等):

----1)发现一个目标(激光,超声、图像等方式获取),检测周围环境及自身状态,或发生某个事件等,进行环境建模

        PS:SLAM是属于第1层

----2)制定或调整决策,决定躲避(根据当前位置,规划了一条从A点移动到B点的路径,路径规划等),可根据状态机的,或制定层次化目标

----3)根据动力学方法FK,反向动力学方法IK,关键帧方法keyframe、动作帧方法、碰撞检测 或操控行为方法steering behavior等确定各个执行机构的目标(角度,位移等),动作规划等。

       PS:这一部分的内容和目前国内的机器人学的内容关系匪浅,如机械手动作的规划等就属于这部分内容,机械本体的结构也是本部分重点关注的内容。

      PS:是否将碰撞检测也放到1层?理论上来看是可以的

      PS:工业机器人、机械手2、3层可能并为1层:运动规划

----4)执行机构(电动机)执行目标(PS:大学的自动控制研究的是这部分内容)

      对于游戏动画而言,执行层貌似是没有的

现在机器人所谓的三大核心部件是控制器、伺服电机、减速机,实际上目前控制器属于1、2、3层部件,目前主要是3层;而伺服电机和减速机属于4层部件

目前其中的重点是3层,难点是2层,2层主要是AI,1层的机器视觉也是目前比较热门的领域,至于4层,因为系统一般属于时变,非线性系统,控制器的实现也比较困难。(后记:确切地说,目前国际上流行的重点是1,2层,但是我的重点是3层。1层如slam,机器视觉,机器学习、神经网络等都是热门,2层是信息的综合应用,人工智能的,3层、4层偏基础,是根基,是运动控制,目前主要是动态控制,主要是研究机器人的动态性能。对波士顿动力公司的Bigdog人们之所以惊叹,刚开始时是因为其能够实现四足运动,踹一脚Bigdog能够自动调节身姿,能够行走在崎岖路面,这都是3,4层实现的功能;而其atlas让人惊叹的原因是1:摔倒后能够起(规划一系列动作,2层);2识别物品,并将其搬用(1层,2层);至于后面的开门等更是1,2层实现的功能了;老美的DARPR目前也更关注此处,国内外差距还是比较大的。)

PS:可以说人工智能是1、2、3层的基础技术,极其重要

PS:控制器有机器人控制器和电机控制器,这个一定要做区分

以例说明,首先以两轮的轮式机器人为例说明,以走迷宫为例

A迷宫地图未知时(随机运动,游荡):

1发射超声,发现前方有一堵墙,记录下信息,根据车体速度(位移)与轮的速度(角位移)等确定车体位姿

2根据已有的策略,决定左转(右转,停止,后退等)根据障碍物,速度,位置、姿态等确定车体控制目标速度(可采用steering behavior方法确定)

3根据角速度、线速度等确定两个电机的各自目标转速及角位移

4根据速度、位移等控制电机转速及角位移(PID等方式)

B迷宫地图已知时(路径跟随)

1获取位姿及环境等信息(GPS,加速度记,电机编码器,电子指南针,超声等)

2规划整体目标路径(一般第一次就已经规划好了),执行路径跟随,根据位置信息及路径信息,根据steering behgavior方法确定车体速度,位移目标等。

3根据车体速度与轮的速度关系确定两个电机的各自目标转速,位移等

4控制电机转速、位移(PID等方式)

可以看出3层基本相同,主要的差别在2层规划了跟随路径,在3层steering behavior中智能体的动作实际是多种动作的综合

如果在上述过程中更有随机的障碍,更要考虑3层了,一般是采用steering behavior方法

再次以两足机器人为例说明,同样走迷宫

因为1,2,4层基本相同,不再叙述了

A迷宫地图未知时(随机运动,游荡):

2根据已知信息,采用steering behavior等方法确定车体(整体)速度,位移等目标。

3采用IK,或关键帧等方法确定各个关节的位姿目标,根据各个关节的位姿确定各个关节执行器(电机)的速度位移等(采用steering behavior方法),IK和关键帧本质上也是属于路径跟随方法,此时2,3可以合并

需要注意的是整体速度,位移等不一定容易根据steering behavior方法,采用动力学方法得出,参数要仔细调节。

确定各个关节执行器的动作是路径跟随方式,在其中可能要有多种因素考虑,比如说碰撞,主要是考虑各个关节及与环境之间的碰撞问题

在确定整体的steering behavior 控制时,把智能体最为一个整体(看成一个点或一个球?),忽略关节等细节

B迷宫地图已知时(路径跟随)

由轮式机器人的运动控制分析,基本可以确定2层确定跟随路径,其他相同

在3层中可能涉及到动作和姿态的切换,一个动作和姿态通常是一个周期性的动作,从一种动作A(姿势a)到另一种动作B(姿势b)通常采用的方法是设定一个过渡时间,两种动作的权重A不住降低,动作B的权重不住增加

在这里综述一下steering behavior控制,我认为这是一种非常重要的控制方式,它将各种因素转换为对智能体的一种作用力(引力,或斥力),如目标点就要引力,障碍就是斥力等,并根据具体情况给各种力分配不同的权重,这个也是要不停的调校的,可阅读《游戏人工智能编程案例精粹》了解,《游戏物理引擎开发》中对点或刚体的处理也是最终转换为作用在点或刚体上的各种力的综合效益,有异曲同工之妙。

多关节系统的动态控制性能应该说是目前研究的一个重点,其研究的问题就是给各个关节下达何种指令或给各个关节设置何种目标,可以让机器人性能最优(功耗最小,动态稳定等)《双足机器人行走控制与优化 》内容基本是这方面内容,涉及到两个内容:1具体指标是什么?2如何实现最优

对于功耗最小已经有指标了,就是如何实现最优,该书设计了多种动作

对于动态稳定,首先就涉及到以什么指标来判定是否稳定,该书介绍一般采用零力矩点(ZMP)来判断,也有些其他指标或ZMP的变形等,至于如何实现就是仁者见仁,智者见智了,一般要在机器人的足部设定力感应器来计算ZMP,然后确定动作(?难),设定关节目标等,然后采用类似steering behavior或IK,关键帧等方式来控制关节动作

猜测波士顿动力公司的BigDog控制方式:

A 正常状态:目标跟随、路径跟随等,3层确定动作采用关键帧方式,ZMP一直是稳定的

B意外状态:忽然受到冲击,不稳了

1) 检测到ZMP不在投影区,说明动态性能变差

2)确定目标位姿设定整体目标(?)

3)以IK方式确定关节动作目标,以steering behavior确定各个关节的动作

4)控制执行器

另外波士顿动力公司的Atlas能够搬用物体,其控制方式猜测如下:

1)检测物体位置

2) 判断是否在操作范围内,不是则向物体运动(目标靠近),是执行搬用动作

3)根据2层的决策设定目标靠近或搬用动作的目标

4)执行

而其开门的动作决策也是在2层确定的,至于在执行过程中出现失稳,要进行动作调节也是在2层

ps(2021.2.17)波士顿动力比google建立的时间还早,但是Google的发展比Boston Dynamic发展较好,但是毫无疑问Boston Dynamic的技术是非常先进的,但是为什么有这么大的发展差异呢?而且大家都看好机器人技术的未来?我的看法是Boston Dynmaic的技术可能太超前了,没有合适的应用场景,难以形成良性的迭代。就像苹果公司一开始也不是就做手机的,它先做的是MP3、itune,然后是ipad,ipod,现在是iphone,applestore, 每一阶段的成果都转化为产品,为下一步的发展垫底基础,如果苹果公司一开始就做iphone,我想苹果公司可能会遇到极大的困难。同样的是大疆公司,他也是找到了一个比较合适的应用场景:民用摄影,这才开拓了一个比较广阔的市场,有这个基础后现在还扩展了快递物流、巡检、农业播撒,当然还有现在的公安巡防以及大型庆典的无人机表演等。

大家的印象中或感觉中机器人就该是人形的,而人形机器人本身就比较难以控制,而人们又希望机器人是比较智能的,两大技术难点:运动控制和人工智能,所以目前机器人真正落地的只有机械手,而除此之外就没有哪项机器人技术等到大规模的应用(不考虑电脑游戏和电影工业中的动画)。下一个场合是什么?这里要考虑一个单词“大规模”,只有足够的市场规模才能让企业有足够的成长空间,太小众的话顶多是养活公司了。 

很多人预测是自动驾驶,其理由1是市场规模足够大,2是运动控制不像多关节机器人那样复杂(机械开环的动态稳定性太复杂了),3是人工智能技术正在迅速发展。

目前人工智能技术的主要领域一个是图像,一个是声音,无人驾驶主要是图像(尤其是图像理解),更进一步的是视频,至于语音什么的,对无人驾驶来说是锦上添花的事

还有哪一个场合呢???

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值