第 20 章 Unity动画集成:让虚拟角色「活」起来 极低成本 · 实物上手 · 可迁移至高端人形平台
第六部分:AI大脑与语音交互
第 20 章 Unity动画集成:让虚拟角色「活」起来 极低成本 · 实物上手 · 可迁移至高端人形平台
20.1 为什么需要Unity虚拟角色
机器人本身就是实物,为什么还要一个虚拟角色?
炫酷啊~~~哈哈,我一开始设计产品的时候,一方面是既然用了电脑做LLM后端,那么就把电脑用起来,另外一方面既然有了AI作为支持,那么单独的电脑桌面的AI伴侣也就可行了,然后如果虚实结合,产品形态看起来也会丰富一些。
动作编辑器的编写初衷很简单: 我想尽快让机器人做一些有趣的动作,有代码或者自己写参数那是不显示的。作为一个「高级手办」,能快速实现动作的编排和切换,比什么都重要。有一个可视化的界面,直接拖拽时间轴、调整关键帧、一键预览,不需要写任何代码,高效简单。
20.2 通信架构:ROS-TCP-Endpoint
Unity和机器人之间的通信通过ROS-TCP-Endpoint实现。Unity端作为TCP客户端连接机器人端的TCP服务器(端口10000),收发ROS2消息。为什么要用TCP而不是直接用ROS2的DDS?因为Unity运行在Windows上,DDS配置复杂,且Unity和ROS2的版本兼容性是个问题。TCP桥接绕过了这些复杂性——Unity只需要连一个TCP端口,就能收发所有ROS2话题消息。
通信层的关键设计是消息序列化。Unity用C#,ROS2用Python,两者的数据类型不同。ROS-TCP-Endpoint在中间做序列化/反序列化,
