一、框架介绍
这里分为三个部分:控制设备端、服务端、执行部分(机械臂)。
1. 控制设备端:RTOS、Android、Linux、iOS、Windows 等主流系统和平台均已支持。这些设备既可以作为控制端的入口,也可作为被控制的 IoT 设备,这里采用音箱作为语音采集控制设备。
2. 服务端:技能的开发和部署属于这一部分,开发者创建意图、技能、IoT设备来完成控制链路的打通,其中意图就是说控制信息的关键信息;技能为自己开发的传达指令程序,可作为私有技能仅供自己设计的产品使用,也可开放成公有技能供其他使用者配置调用; IoT 设备主要指接入到网络的物联网设备,这里就是机械臂在云端的虚拟。
3. 设备端,也就是机械臂。
在本次的项目中通过这三个部分的打通成功实现语音控制机械臂进行动作。
实现步骤:
为机械臂与上位机相连并且上位机联网后,通过控制设备输入语音信号-> Azero服务端分析语音信号并判断出对应的意图 -> 传指令到上位机 -> 由上位机实现对机械臂的写字控制。
二、机械臂部分
1、连接方式
机械臂部分包括三个部分,机械臂与控制机相连、控制机与上位机相连都需要有线连接。
控制机与上位机的连接通过网线进行连接,连接方式如上图所示通过有线网络进行数据传输
2、实现方式
主要是通过这几个部分功能实现,将文字的笔画进行分解,分解成一步一步的动作用gcode形式存储,将这些指令解析,解析为控制机械臂运动的moveit指令,控制机械臂执行指令就可以实现文字的书写。将实现这些功能的语句事先写好放在run.py文件中,在接收到服务端传入的命令后,执行这些动作,完成
3、可实现的功能
目前可通过语音控制进行文字书写,而通过使用不同文字对应的gcode就可以书写任意文字和任意想要的字体,都可以使用语音进行控制。目前还在进一步的开发中,将常用的文字编辑进入字库中后将能实现语音控制书写任意文字。
三、云端部分
为了达到远程控制的效果,整个的控制链路为“通过控制设备输入音频-> 服务端分析音频并判断技能和意图 -> 传指令到机械臂-> 机械臂执行动作”,这样除了机械臂执行的部分,在相应的服务端也要生成相应的指令,例如写字。
技能配置
IOT设备
这部分可以在Azero开发网站完成,具体实现可参考:
https://document-azero.soundai.com.cn/iot/docs/
https://github.com/sai-azero/Azero_control_robot_demo
四、最终效果
五、讨论
有任何的点子或者疑问,欢迎来论坛进行讨论
http://bbs.soundai.com.cn/forum.php?mod=forumdisplay&fid=39
六、其它参考
https://cloud.tencent.com/developer/article/1709348
http://moveit2_tutorials.picknik.ai/doc/getting_started/getting_started.html