人形机器人的AI技术 —— 将一个大问题拆解为若干个小问题
前文:
人形机器人 —— Figure 01机器人亮相 | OpenAI多模态能力加持 | 与人类流畅对话交互 | 具身智能的GPT-4时刻
所需的AI技术:
人形机器人的软件层面其实有:
- 视觉模块/导航模块;
- 语言模块;
- 决策模块;
视觉模块,可以有3D点云(计算机视觉)、NeRF(Neural Radiance Fields)、全景分割技术,等等;导航模块,如:SLAM等等,但是由于导航模块可以和视觉模块耦合在一起,,并且导航模块往往可以和决策模块或规划模块耦合在一起,所以导航模块可以不单独列成一个模块。
语言模块,这里是指大模型,但是往往语言模块和视觉模块也有很强的耦合,比如都交给多模态大模型模块处理。人形机器人的直接输入输出并不是语言而是语音,因此我们还需要语音与语言转换模块。
决策模块,根据视觉模块和语言模块提供的信息,也包括从导航系统提供的模块,也包括从多模态模糊提供的信息,得到下一步动作,该动作往往不是对电机的扭矩的直接控制,而是电压等信息,这个动作还需要交给电子控制器转为扭矩控制信息,最终的扭矩信息交给电机进行具体执行。
人形机器人所需实现的功能:
- 识别周围环境,并进行准确描述;
- 推理决策下一步的行动;
- 将模棱两可的请求翻译为符合上下文的请求;
- 用语言解释推理的过程;
人形机器人的输入数据在chatGPT3.5出现之前是只有图像数据的,但是在ChatGPT3.5出现后就实现了自然语言的高度拟人化,这样有就有了人形机器人的多模态数据输入了,也就是将图像数据和语音数据一并作为输入了。其实准确的来说语音数据并不是人形机器人直接使用的数据,我们需要将语音数据转换为文字数据,也就是将图像和语音转换为文本输入到OpenAi预训练的多模态大模型中,而多模态大模型输出的数据再和图像数据一并输入到强化学习模型中,获得决策动作。
人形机器人的动作控制和常见的强化学习控制场景中的一样存在action repeation的现象,比如一般的人形机器人的视觉图像的输入(相机拍照)的频率为10hz,强化学习模型的动作输入为200hz,实际的电机控制器的制动频率为1000hz,也就是说机器人接受到一个图像后会输出20个重复的动作,而这20个重复的动作发送给电机控制器后会具体形成1000个重复的制动控制(可以理解为保持某个电压值的频率为1000hz),也可以理解为机器人接收到一个图像数据后会使电机保持1000个时长的相同的制动控制。
大致形式:
10hz采集图像 -> OpenAI大模型 -> 强化学习模型 -> 产生200hz的控制动作(24自由度的动作的电压值) -> 动作执行控制器(动作执行的电机) -> 产生1000hz的执行控制器的动作(电机的扭矩等等)
可以看到,机器人接采集一帧图像后给电机的具体执行东西要保持100倍的图像采集时间,也就是说明电机具体执行时的动作要重复100次。
正如OpenAI的模型其实并不是一个模型一样(OpenAI的大模型由多个大模型组成,具体执行时会根据任务的具体情况选择具体的大模型进行执行),人形机器人的模型也不是只有一个的,而是多个模型联合工作的。
比如,机器人的视觉模块,一般需要使用SLAM算法、3D点云算法、NeRF算法、物体识别算法、人体动作捕捉和识别算法,等等,多个算法组成。照比视觉模块相比语言模块会相对显得少些,一般只用一个或两个大模型就可以解决,但是由于大模型难以在终端上直接运行,因此语言模块往往采用远端调用云资源的方式来进行解决,这也导致了未来的一个研究,那就是边缘计算和云计算的均衡负载问题。
虽然当所有的模型训练好后联合在一起使用时是一个end-to-end的结构,但是这些模型往往在训练时是存在先后顺序和分开训练的问题的,因此一个人形机器人的AI模型往往是多个研究方向的组合,单一方向的研究是难以使其真正工作的,可以说人形机器人的研发工作更偏向于一种系统工程,即使在不考虑硬件(电机、电池、机械控制、传感器,等等)的前提下只考虑软件层面的AI算法就已经包含了多个方向的研究。虽然最终做决策的算法是强化学习算法,但是其上游的视觉算法和语言算法也是十分关键和重要的,可以说如果没有很好的视觉算法和语言算法,单独的强化学习算法只能运行在仿真环境下而无法运行在真实的实体(实体机器人)上的。
而且,在完成了视觉模型和语言模型后这时的强化学习模型也并不能保证仿真环境下的决策算法可以很好的运行在实体机器人上的,这时候还存在一个sim2real的问题,而这个问题是仿真环境下无法解决的,也就是说仿真环境和实体的实际运行情况之间的这个gap是需要单独算法来进行处理的,而这又属于一个独立的研究方向。
可以说人形机器人是多个领域的联合的一个场景,并不是单一领域、单一研究方向就可以解决的,如何完成单个方向的研发很重要,但是最后决定这个机器人最终的performance的还在于将这些单独模块/算法组合在一起的算法,而这个最终的组合也是一个难点,如何可以使多个部件/模型更好的联合在一起工作也是需要不断调整和优化的。
相关资料:
https://www.youtube.com/watch?v=vO1wnHA0tZg
https://www.youtube.com/watch?v=_HjGppyK0Po
posted on 2024-03-16 13:04 Angry_Panda 阅读(173) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2022-03-16 【转载】 机器人真·涨姿势了:比肩人类抓取能力,上海交大、非夕科技联合提出全新方法AnyGrasp
2022-03-16 康师傅方便面还能吃吗?—— 如何解决“土坑酸菜”现象,如何看待康师傅对食品安全的轻视问题
2018-03-16 最新解决 Ubuntu16.04 和 win10 双系统时间同步问题 (设置为 UTC 时间)