nao机器人
位置:首页 >> 新闻中心 >> 机器人新闻

机器人新闻

  • 关于法国Nao机器人如何实现舞蹈同步

  • 关于法国Nao机器人如何实现舞蹈同步,小编通过采访了负责Nao机器人的同事,然后把这篇文章整理出来供大家参考。

    原理:
    1. 同步各个机器人的时间,可以以网络时间为基准,也可以在其中一台机器人的时间为基准
    2.机器人预加载舞蹈程序,等待接收指令
    3.接收到指令,通过延时相对基准时间的偏移实现同步舞蹈

    实现:

    1.  同步网络的时间,并记录偏移时间delayTime,以下使用循环同步时间只是为了减少偏移时间

    注:/usr/sbin/ntpdate需要root权限,如果需要开机启动或者不想手动切换,可以修改一个叫做su的配置文件使得切换root时无需输入密码,或者修改一个叫做sudoers的配置文件,使得普通用户可以运行/usr/sbin/ntpdate,推荐修改后者,修改前者有一定风险。

    2. 机器人预加载舞蹈程序,通过ALBehaviorManager,这个小编觉得很重要,之前看过一份关于舞蹈同步的文档,里面介绍了好几种方法,但是效果都不太理想,没有介绍过这一部分,原因在于不同机器人如果不预加载程序而直接运行,是无法保证同步的,毕竟就算完全相同的电脑的启动程序的时间都是有偏差的。

    3.等待接收指令,这里可以使用事件来激活,也可以通过通知ALNotification或者其他类型的来发送指令,这里就不伸展开来了,考虑到网络原因,小编采用的是传感器事件,在触发事件之后等待时间的秒数刚好为0时开始执行事件执行函数,事件执行函数里面要对之前同步时间得到的偏移进行延时。