博舍

对话机器人:ChatBot概况详解 可以对话的软件机器人叫什么软件啊

对话机器人:ChatBot概况详解

编辑导读:ChatBot这个概念已经提出很久了,意指可帮助人进行对话交互的对话机器人,也简称为Bot.。本文主要阐述ChatBot的概况,方便你了解NLP领域目前主流的应用对话机器人的基础详情,一起来看一下吧。

一、ChatBot类型

按照访客预期的机器人应答方式的不同,ChatBot分为3个类型:咨询型、闲聊型、任务型。

咨询型:通常为访客期望就自己提出的问题,机器人能给出相应的专业解答。表现为一问一答的形式。机器人相当于一个“知识顾问”,做“答疑解惑”的事情;闲聊型:访客的预期是可陪伴自己聊天的机器人。无论访客说什么问题,机器人都可以接得上,聊得上。访客期待的不是某个具体目标的完成,而是情感上的陪伴;任务型:通常为访客期望就自己提出的问题,机器人不仅能给出专业解答,还能主动反问获取相关信息,根据不同信息给出不同的解答。同时还可完成一些任务指令。广义上将,无论是“专业解答”,还是“完成任务指令”,都是完成任务,故为“任务型”。Why:为什么这么分?

这样的划分方式,相信大家已经见得很多了。但是为什么这么划分呢?主要有两个原因。

1)对话的本质

对话的本质是:对话双方的信息同步。(此刻停留10秒钟可回想下你接触过的各种对话)

对话只是工具,在对话中的信息传递,即对话双方想通过对话传递的信息,才是对话的意义。

举个例子:你跟你的朋友说:“我们去玩吧!”你的朋友接收到这个信息的时候,他心里会有几个问题想问你:“为啥突然要去玩”、“啥时候去玩”、“去哪里玩”。因为这些信息,你没告诉他,他需要获得这些信息,以达到与你同步的阶段,才能进行下一步:去完成“去玩”这件事。而对话,就是达成信息同步的工具。(难道他跟你眼对眼对视下就可以知道嘛?)

2)AI现有的技术发展限制

虽然AI迎来了新的一春(相对于以前的发展),但是基于机器学习/深度学习的NLP技术,目前只能解决一部分问题,或者说,一小部分问题。一个对话系统中,真正用到AI技术的,目前是基于【意图】【实体】框架的识别体系,而这部分,也仅仅占对话系统10%-20%(具体我们可以专门开一篇文章详细分析,这里暂不赘述)。

而基于【意图】【实体】识别框架,目前最容易达成的,就是“指令式”的对话(没错,这里是我给它取的名字)。比如,你对机器人说:“帮我订张火车票”(抱歉我还是用这个快被说烂的例子)。“订张火车票”这是一个非常明确的指令。机器人通过识别意图“订张火车票”,马上可进行相应信息的填充(词槽填充追问),帮访客完成“订火车票”的任务目标。

相反的,一些“非指令式”的对话,对话系统很难通过现有的AI技术处理。比如,在医疗营销机器人中,访客问“我最近肚子有点痛”。这是一个很模糊的指令,机器人并不知道访客的意图是什么,甚至人也很难知道。“肚子痛”很可能是肠胃的问题,可能是女性疾病问题,等等。现有的NLP技术无法识别,因为无法做 逻辑推理。

所以,现有的ChatBot能处理的,且擅长处理的问题,是那些指令式的问题,这就对应了我们刚才说的3种分类中的两种:咨询型、任务型,这也是目前应用于商业中最广泛的两种类型的ChatBot。而另外一种闲聊型,是基于 记忆神经网络模型的对话方式,是现有神经网络可支持的实现方式

What:他们的联系与区别是什么?

从访客的预期来看,可以分为2大类:任务达成(Getthingsdone)与情感陪伴(Getcompany)

1)任务达成(Getthingsdone)

咨询型ChatBot与任务型ChatBot

识别角度上,二者机理一致。均是通过分类(相似度匹配)的方式。

咨询型(FAQ相似度计算):通过访客问句与每条FAQ的问题,计算相似度匹配,从而回复问题相应的回答。任务型(意图识别):通过访客问句与每个意图配置的对应query,计算相似度匹配。通过多轮的询问交互,最终解决访客的问题。

应答功能上:任务型是升级版的咨询型

咨询型是针对访客query,直接给予答案回应任务型是针对访客query,收集query相关的信息(意图-词槽机制),根据收集的情况给予答案回应(答案回应包括:富文本、链接跳转、外部资源调用),是以任务达成为目的的对话。

2)情感陪伴

闲聊型ChatBot的对话宗旨在于,基于话题让对话延续。在对话理念上与前者有较大区别。其目的是让访客,通过对话得到情感上的支持与陪伴。比如你跟iPhoneSiri说“我想你”,她会回复你“我也想你”等之类的话,让你得到情感上的陪伴体验。

但是从NLP现有的发展情况来看,闲聊型ChatBot的效果并不是太理想。因为对话没有一个主题,机器人是因访客问题回答而回答,是一种“被动式”的应答,并无主导对话的能力。所以通俗讲,目前的应用基本就是让访客“图个乐”的阶段。

二、ChatBot平台WhatandWhatFor?为了解决什么问题?

由ChatBot应运而生的就是ChatBot对话平台。什么是对话平台呢?对话平台即为了让机器人使用者可以配置自己想要的机器人而与之对应的机器人配置工具。在这个工具上,用户可以根据自己不同的业务需求,搭建与之对应的机器人,以实现自己的业务目标。

举个栗子:比如A用户要搭建一个用于接待访客问题的客服机器人A,与B用户要搭建一个个人助理类的机器人B。

二者的业务目标不同:A主要用于答疑解惑,比如解答“你们银行借记卡怎么办理”的问题;B主要用于任务执行,比如发出一个指令“帮我看看附近有什么适合约会的餐厅”,机器人会根据用户的需求做相应的任务动作。

但是二者可以使用同一套ChatBot平台,来搭建其相应的业务。因为二者基于的AI基础、对话基础是一致的(或者说是类似的)。

So,ChatBot有几个特性:

可实现不同类型的机器人搭建为用户不同业务诉求提供服务

顺便说一句,现有的对话平台厂商,同质化相当严重。各家基于的对话框架可以说基本相同。不同点,也是商业落地突围点,在于如何落地,如何基于垂类行业的精细化设计与运营。

What’sgood?什么样的对话平台才是好的对话平台?

基于上述的几点,我们可以反推过来,什么样的ChatBot平台,才是好的对话平台呢?

高度抽象:高度抽象ChatBot的基本元素,使之成为所有对话构建的基石。

高度抽象意味着将ChatBot组块化,类似于“搭积木”进行搭建。每个积木,都需要做得具有高度通用性高度抽象其实是个“反推”的过程。即从业务侧反推,抽象各种业务的共性,得到适用于诸多场景的对话元素。如现有ChatBot平台框架,“意图”、“词槽”、“上下文”等对话元素。当然,最通用的部分,已经由国内外大厂ChatBot平台定义好了,并形成了行业内的规范,这部分对于从业者来说,更多的是沿用,而不是重复造一个轮子。

拼装规律明确:明确与Highlight组装拼接元素的规律,帮助ChatBot使用者快速理清思路,高效配置出符合自己业务需求的ChatBot

搭建机器人是有一套规律的,通俗讲叫做“套路”。比如从分析与划分机器人场景,到确定每个意图,再到意图内多轮对话、意图间多轮对话,都是可以有一套可复用的规范和配置规律的。在ChatBot中,这套规律应该是足够明确,有效帮助用户理清思路的

简单易用:简单、高效、易用,降低新手成本,尽可能预置通用的的对话原材料,开箱即用。

简单,对于ChatBot平台来说,是个不简单的词。如果是一个新手小白,未受过AI训练师的培训,来配置一个机器人的话,学习成本是很高的。因为ChatBot本身就不是一个C端易用的产品。我们以行业标杆GoogleDialogFlow为例,即使Google已经做得足够易用了(交互体验较于其他B端产品),但是对于小白用户,还是需要参照操作手册学习上手。所以,尽量做得简单,对ChatBot来说是较难的事情。基于1,在“预置通用的对话原材料”的维度上,可作为的地方大得多。有资源的厂,可以利用自己的行业积累,为用户提供预置语料的服务。可别小看,在搭建机器人中,语料数据的重要性,可以说是重中之重。不仅影响的是冷启动的效率与质量,更影响机器人运营的效果好坏,直接或间接觉得机器人产品的生命周期。基于2,目前行业的一个论调是,在【算法】【算力】【数据】这AI三驾马车中,【算法】已通过开源代码受到广为人知,且现有的深度学习的能力阈限大家也都了解一二,用深度学习可以实现的对话领域的巨大突破可能性极小;【算力】通过GPU等技术硬件的购买,花钱都能达到差不多的算力水平。现在的【数据】是各厂间做出产品差异化的重要点。因为【数据】以为着技术落地业务的关键桥梁,一个能解决业务问题的机器人,好过一百个用牛逼的技术堆出来但不解决业务问题的机器人。【数据】作为ChatBot的养料,至关重要。四、ChatBotSkill5要素

ChatBotSkill5要素(当然,也是我这么划分的)分别是:意图、实体、词槽、回复、上下文。为什么是这5个要素?这5个要素具体是什么作用?他们背后有什么具体逻辑呢?

我们可以这么理解,ChatBot是要帮访客做事的(此处我们只讨论应用最广也最容易落地的任务型ChatBot)。这个“事”,有可能是回答问题(答疑解惑),也有可能是帮助访客完成一个任务(任务执行)。回答问题通常我们通过FAQ的问句相似度匹配即能完成。

回到我们上文说的,对话的本质是信息的交换与同步。机器人要帮访客做一件事,首先得知道访客要做什么事(意图),所以,现有ChatBot系统的首要任务,就是确定访客想要干嘛,也就是意图识别。只要当ChatBot信息与访客对等了(至少在访客想做的事情的维度),ChatBot才能帮访客做相应的任务。

1.意图

意图描述的是某个访客query领域内的封闭问题。一次意图框架的完成(意图识别-词槽填充-回复),会完成一次对话闭环。相比于意图,上下文描述的是对话上下文不同意图之间的问题。

词槽、回复与意图挂钩。即:一个意图,对应特定的词槽、回复

1)如何进行意图识别?

意图识别本质上是分类问题。目前行业主流的做法就是,将同类的句子做句子集合,相应的边成为一个意图。即:将所有相同含义的话,抽象为一个意图。比如【订火车票】这个意图,同类的句子是:“我要订火车票”、“给我订张火车票”、“火车票能订不”,等等。所以本质上讲,ChatBot是通过判断访客问句与意图中配置的问句是否相似,来判定是否属于该意图的,即进行归类。

2)意图的配置

意图配置的原理:通过预测访客会问的问题,与意图建立关系。在机器学习以前,这些类似的表述,是需要人工一句一句地去配置的,只有配置了某问法,机器才会做相应的匹配命中,触发相应的回答,即通过规则来判断。配置这么多问句,是不是现在想想都头皮发麻?

而NLP的意图识别能力,就是可以通过配置少量的语料,进行自主地泛化。把那些未配置的,但是表述又相近的问句,也可识别到该意图中(当然,识别也是有准确率的,跟算法模型、训练数据相关)

举个例子:刚才【订火车票】这个意图,假如配置的几个问句:“我要订火车票”、“给我订张火车票”、“火车票能订不”。ChatBot不仅可以识别到这几个问句,也能识别到如“你能给我订个火车票么”、“给我来张火车票”,等等的表述,归为该意图。

2.实体

1)什么是实体?

实体是对话(表现为访客query)中,有实际意义和指代的词。

2)为什么需要实体?

通过定义实体,让系统去采集访客query中有用的、人想要采集的信息实体识别(NER):相当于是使用AI技术的采集器枚举实体/规则实体:相当于是使用人为规则的采集器

3)如何进行实体识别?

NER过程:从访客query–>分词–>实体识别的过程

3.词槽

1)词槽是什么?

词槽是与意图绑定的变量

2)为什么需要词槽?

因为词槽是对话中信息传递的载体,对于对话的信息来说至关重要。

3)如何进行词槽的填充?

通过实体识别,将实体识别的值,赋值给词槽

回到刚才的例子,当识别到意图后,如:访客说“帮我订张火车票”(原谅我还是举这个被说烂的例子,谁让它通俗易懂呢),识别到意图为【订车票】,那么ChatBot需要知道你要定啥时候的票,从哪儿到哪儿,乘车人是谁,要几等票。对应的参数为:出发时间,出发地点,到达地点,乘车人,票类型。所以ChatBot接下来需要做什么?当然需要问访客这么些个信息呀。所以,这几个参数信息,就是【订车票】这个意图下,关联的几个词槽。

这几个词槽该如何收集呢?没关系,交给NLP算法。现有NLP一个很重要的成就是就NER,即实体识别。通俗地说,就是可以把访客问句中的重要信息给抠出来,作为对话的关键信息(相当于机器人理解了访客的意思,虽然在人看来还是挺智障的程度,但是谁让它可以在某些领域应用的好呢)。所以回到刚才的问题,NLP算法可以把ChatBot想要的几个参数信息,通过发问的形式,从访客问句中提取出来:出发时间,出发地点,到达地点,乘车人,票类型。

4.回复

一旦获取了这些信息,ChatBot就该干正事儿了所以ChatBot就应该基于收集到的信息,给出相应的回复。回复分为纯文本回复、调用接口回复、执行动作回复。“订火车票”的最终结果是帮助访客“订成功火车票”,所以需要执行“订票”的动作,并把订票信息返回给访客。

5.上下文

最后,上下文的意思是指不同意图间,可能存在继承信息与意图切换的情况。

举个例子:访客问“今天北京的天气怎么样?”,ChatBot回复:“今天北京晴转多云,有阵风,25摄氏度”。访客接着又问“那上海呢”,那么ChatBot应该需要知道,“那上海呢”这句话,还是意指“查天气”这个意图,而不是在问“上海的空气质量”、“上海的限号是多少”其他意图的问题。所以需要用到【上下文】的概念来配置ChatBot。

一个对话的进行,是跟对话进行中的信息继承与更新相关的。所以不同的意图之间,不止存在同等并列的关系,还存在嵌套关系(父意图、子意图、子子意图)、上下继承关系,等等。这些均需使用上下文这个对话元素来实现。

五、总结

ChatBot在目前的各行业、各领域,有广泛的应用,也不乏各大厂、中小厂进入ChatBot平台开发的赛道。万变不离其宗,无论ChatBot在领域中多垂直、应用多丰富,其始终离不开上文阐述的基础要点内容。原因其实也很简单,因为目前的AI技术、NLP技术发展到这个层面,其对应的底层原理是相对固定的。国内外对于ChatBot的设计理念,大致是趋同的。同时也期待AI的发展,可以突破目前的一些壁垒和限制,基于AI的设计就可更加智能、更加灵活。希望对你有帮助。

 

作者:咖喱鱼丸,5年PM经验,2年AIPM经验

本文由@咖喱鱼蛋egg原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

各类免费的的机器人仿真软件优缺点汇总

1、Gazebo

Gazebo模拟器是一个免费的开源平台,可用于设计,开发,测试和可视化几乎任何类型的机器人。Gazebo可在Linux,Windows和Mac上运行,并且内置了对ROS(机器人操作系统)的支持。Gazebo支持多种高性能物理引擎,例如ODE,Bullet,Simbody和DART。它还使用ORGE3D图形引擎来渲染具有准确照明,阴影和纹理的高质量环境。Gazebo模拟器还附带了一些机器人模型,例如PR2,DX,IrobotCreate和TurtleBot,因此即使没有自己的机器人模型,也可以快速上手。它还支持广泛的传感器,并且可以模拟噪声和传感器故障,以准确模拟实际问题。甚至可以在云中运行Gazebo,并使用简单的Web浏览器与模拟器进行交互。如果想在笔记本电脑上工作,这是完美的选择,因为可以租用AWS实例来快速测试和设计机器人

Gazebo物理引擎:支持ODE、Bullet、Simbody和DART,其默认引擎为ODE

Gazebo支持的平台:完美支持Linux、MacOS,Windows需使用源码自行构建

Gazebo编程接口:最最常用的是通过gazebo_ros_control与ROS建立通信,通信过程已经被封装好了,我们只需要配置文件就可以实现,而当单独使用时可使用==C++==编写控制器插件来完成机器人的动作控制;Gazebo的数据输出是通过topic来实现的,与MATLAB联合仿真时可利用ROSToolbox来实现,其本质还是通过ROS框架作为中介来完成的;与ROS联合仿真时,Gazebo当然是最佳选择,与ROS嵌合如此之深,大概就是新手的误区来源吧~

blog.csdn.net/ZhangRelay/article/details/1005470112、Webots

Webots是瑞士公司Cyberbotics发布的一种用户友好型机器人模拟仿真器。它可以在Windows,Linux或macOS上运行,并且支持大多数编程语言,例如C/C++,Java,URBI,MATLAB和Python。还可以使用API或任何标准TCP/IP网络从外部控制Webots模拟器。Webots模拟器使用ODE(开放动力引擎)在逼真的3D环境中模拟物理。它还支持对碰撞和接触点进行精确建模,这可以使用虚拟机器人测试各种场景。Webots甚至附带一个机器人模型库,可使用PR2,Atlas,Aibo甚至是某些NASA机器人。Webots还支持VRML97,因此可以使用大多数建模软件(Solidworks,AutoCAD,Blender和Inventor)导入机器人设计。还可以导入地图和地形数据以在测试环境中创建准确的世界表示。

Webots物理引擎:基于改进的ODE

Webots支持的平台:Windows、MacOS、Linux全平台支持

Webots编程接口:支持C/C++、Java、Python、MATLAB、ROS以及TCP/IP完成控制器编程,不同的编程语言需要查阅不同的API,函数命名接近但风格不同,ROS通信是通过调用ROSAPI,然后将所使用的语言对应的控制器代码封装成ROStopic的形式来完成,自定义ROS控制器时建议使用Python,使用C/C++需要自行构建MakeFile文件,这对于新手而言绝对是个糟糕的选择;R2020版本已经大大简化了ROS的使用过程,当然也可借MATLAB为中介,通过ROSToolbox来实现,这就显得过于繁琐了。如果与Simulink联合仿真,以笔者个人的使用经验来看,建议通过ToWorkspace和FromWorkspace模块来实现,既简单又实用

(Webots由于刚开源不久,本身处于版本快速迭代期,时常有些小BUG,所以目前来看稳定性是三者中最差的一款仿真器,移动机器人的地表最强仿真软件)

blog.csdn.net/ZhangRelay/article/details/1005191833、V-REP(CoppeliaSim)

V-REP(现在更新命名为CoppeliaSim)是免费的,用于教育目的,如果计划将其用于商业项目,则可以升级到专业版。可以在Windows,Linux或macOS上运行V-REP,并且可以使用六种不同的编程语言对其进行编程。它还具有ROS&BlueZero支持,因此可以只使用3D模拟器并使代码在另一个平台上运行。V-REP支持四种不同的物理引擎(Bullet,ODE,Newton,andVortexDynamics)。它可以准确地处理对象的交互,例如碰撞,接触点和抓取。V-REP还支持粒子物理学来模拟空气和水,因此可以准确地对喷气发动机和螺旋桨建模。V-REP还可以模拟各种传感器,甚至可以通过插件将新传感器添加到模拟器。V-REP甚至支持路径和运动规划,甚至可以计算正向和逆向运动学。它还支持网格编辑,因此可以在模拟器中对设计进行小的调整,或者可以轻松导入任何五种不同3D模型格式(Obj,STL,URDF等)的模型

V-REP物理引擎:支持Bullet2.78、Bullet2.83、ODE、Vortex和Newton,默认引擎为Bullet2.78

V-REP支持的平台:Windows、MacOS、Linux全平台支持

V-REP编程接口:支持C/C++、Python、Java、Matlab、Octave及ROS,默认使用Lua脚本语言,最大的特点在于,不管使用哪种编程语言,其函数名称几乎一模一样,这大大降低了用户的上手难度,也便于控制器的各种编程语言的转换。它的实现思路是通过Socket来完成的,其中V-REP作为服务器,控制器程序相当于客户端,且访问模式有阻塞式、非阻塞式等四种操作模式,使用时还需仔细弄明白。当然,也可以通过共享内存的方法实现与Simulink的联合仿真

blog.csdn.net/ZhangRelay/article/details/1033535284、NVIDIAISAACPlatformforRobotics

在NVIDIAISAAC平台是由领先的显卡厂商这也是迅速成为AI行业的大玩家之一的NVIDIA开发。它可以在启用GPU的桌面上运行,也可以在AWS,GoogleCloud或Azure上的云中运行。它还支持NVIDIAJetsonAGXXavier,JetsonTX2和JetsonNano。由于ISAAC机器人技术平台是由NVIDIA制造的,因此它提供了所有机器人模拟仿真器中最好的图形。它还对更复杂的任务(例如机器学习和数据处理)具有更好的GPU支持。NVIDIAISAAC机器人平台也支持称为GEM的软件模块。这些模块可使开发者快速向机器人添加功能,例如关键字检测,LIDAR,立体视觉和预先训练的神经网络视觉识别系统。ISAAC模拟器还运行在虚幻引擎4的增强版上,虚幻引擎4是一个开放源代码游戏引擎,可为PC和控制台上的某些顶级视频游戏提供支持。NVIDIAISAAC机器人技术平台和虚幻引擎都是开源平台,因此,如果是经验丰富的C++程序员,则可以使用自己的自定义代码来增强其功能。

5、RobotVirtualWorlds

RobotVirtualWorlds是功能齐全的模拟器,可让用户对虚拟LEGOMindstorms机器人进行编程。它具有免费试用版,或者,如果想使用所有高级选项,则可以升级并支付完整的许可证费用。该模拟器的主要目的是用作教育平台,向年轻人介绍机器人技术的基础知识。它具有内置的3D仿真器,可以在其中构建和测试LEGO机器人,然后在类似游戏的环境中竞争挑战。RobotVirtualWorlds还支持使用NXT-G或LabVIEW对LEGOMindstorms机器人进行编程。还可以使用内置扩展系统在模拟器中创建自定义机器人模型或级别。该模拟器对于教师也非常有用,因为“机器人虚拟世界”提供了适合所有年龄和技能水平的学生的课程。教师还可以设置各种机器人竞赛,以在完全虚拟的环境中挑战和评估学生。

6、SimscapeMultibody

Simscape是Simulink的一个模块,而SimscapeMultibody又是Simscape的一个模块

SimscapeMultibody:(前身为SimMechanics)提供了适用于3D机械系统(例如机器人、汽车悬架、建筑设备和飞机起落架)的多体仿真环境。您可以使用表示刚体、关节、约束、力元件和传感器的模块对多体系统进行建模。SimscapeMultibody会建立整个机械系统的运动方程并进行求解。您可将完整的CAD装配件(包括质量、惯性、关节、约束和3D几何结构)导入到模型。您可在自动生成的3D动画中查看系统动态。SimscapeMultibody可帮助您开发控制系统并测试系统级性能

付费仿真软件:FANUCROBOGUIDEABBRobotStudioRoboDK物理引擎:

物理引擎大致可分为两种:一种是以游戏为中心的物理引擎,侧重于实时近似,占用计算资源少,;另一种是用于科学仿真的物理引擎,侧重于精确计算,仿真结果精度高,当然也需要更多的计算资源,比如ADAMS、ANSYS等。

ODE:开源物理引擎,全称OpenDynamicsEngine,它是一款模拟刚体动力学的基于C/C++高性能库,功能稳定,常被用于计算机游戏和虚拟现实等技术上;

Bullet:开源物理引擎,世界三大物理模拟引擎之一,由C++编写,与ODE相同,被广泛应用与游戏开发、电影制作中;

Simbody:开源物理引擎,由C++编写,为多体动力学模拟的高性能库;

DART:开源物理引擎,全称DynamicAnimationandRoboticsToolkit,以准确性和稳定性著称;

Newton:开源物理引擎,精确的3D物理库,用于物理环境的实时仿真;

Vortex:商业物理引擎,由CM-Labs开发,计算精度上可以说是上面介绍这几个物理引擎中的佼佼者,由于这是一款商业物理引擎,因此教育版的V-REP只能用来仿真20秒的过程,对于一些力控算法的验证倒也够用。

关于不同类型机器人的仿真

**移动机器人仿真:**Webots是最强移动机器人仿真软件;

**机械臂仿真:**Gazebo是神器,上手难度大;Webots可实现一些简单的抓取,如果需要精度高点的动力学仿真,笔者建议食用V-REP;此外还有一些其他的仿真软件,诸如SimscapeMultibody、Adams等软件,前者可以快速搭建Simulink仿真模型,后者一般机械臂的设计厂商使用较多;

**结合机器学习的仿真:**理论上来讲,任何一款仿真软件都能实现,只不过需要自己整合控制器和机器学习相关API罢了;目前最常用的有PyBullet、MuJoCo等,前者开源,后者商用;

**水下机器人:**Webots只需要添加一个Fluid节点即可实现流体环境的添加;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇