nao机器人使用

nao编程控制方式:

使用Choregraphe编程 在电脑上运行python(C++)文件远程控制 在nao上运行python(C++)文件本地控制


一.使用Choregraphe

此方法是建立指令盒(参考手册),举例说明建立一个设置关节角度(控制关节移动)的指令盒,新建脚本指令盒,编辑名字,提示,输入输出点,还有参数

输入点:可添加多个输入点,每个输入点都会在脚本文件中创建相应的方法,脚本文件中方法的名字和设置输入点时的Name相对应,如默认输入点名字onStart,在脚本文件中对应的会产生 如下方法:当此输入点被激活是,会执行此方法中的语句

def onInput_onStart(self):

当此输入点被激活是,会执行此方法中的语句


输出点:输出点我理解的输出点就是设置一个输出点的名字,然后在脚本中可编程实现输出,如设置输出点的名字Output,在脚本中可使用

self.Output(datetime.datetime.now())

来输出,此输出内容可直观的看到,也可传送到下一级的输入端,到此,两个指令盒就可以连在一起了


参数:此参数可在作为一种输入方式,操作指令盒是会在指令盒左下角显示一个‘扳手’小图标,点开之后可以选择要输入的参数,此参数有整数和浮点数型(可调整最大值与最小值),还有一种参数类型——附加文件,此类型可传入一个文件类型的数据,比如保存有角度数据的txt文件,音乐文件等,参数使用方式:

整型、浮点型:

self.getParameter("设置的参数名字")
得到的就是想要的整数或者浮点数
附件文件:
ALFrameManager.getBehaviorPath(self.behaviorId) + self.getParameter("设置的参数名字")
这一行语句可得到文件的路径,然后使用python中的open函数打开即可操作

输入输出点都有多种形式:数字、字符串、激活、动态,其中动态我理解的是无论输入的是什么信号,都能接收到,可动态匹配,至于激活就好像是脉冲一样,来一个输入就能用,但是具体能不能接收数子和字符串我也没做实验,数字和字符串就很好理解了,做指令盒连接时,输入输出最好相对应

具体操作过程如下:

1.在Flow diagram Panel中右键,添加一个新指令盒

2.输入名称、提示、选择输入点,输出点,以及参数

3.双击指令盒打开脚本编辑器,程序编写:

加载naoqi模块:

    def onLoad(self):
        self.dcm = ALProxy("DCM")
        self.tts=ALProxy('ALTextToSpeech')
        self.motionProxy=ALProxy("ALMotion")
        #~ puts code for box initialization here
        pass
在onLoad方法中加载模块

加载python模块:

import time
import almath
import datetime
class MyClass(GeneratedClass):
在脚本编辑最开始的地方,类之外导入python带的模块


功能实现:

    def onInput_onStart(self):
        self.tts.say('Hello')
        self.motionProxy.setStiffnesses('RShoulderPitch',1)
        self.motionProxy.setAngles('RShoulderPitch',-100*almath.TO_RAD,10*almath.TO_RAD/8.267973899841309)
在onInput_onStart方法中添加实现功能的代码

读取参数的方法如上设置

输出参数的方法如上设置

4.保存指令盒,可直接拖动指令盒到指令盒库进行保存,此处可新建一个自己的指令盒库,新建方法:点击工具栏中的‘指令盒库’选项进行新建保存即可

5.连接指令盒,从系统onStart点(Flow diagram Panel左上角,黑色的小三角)连线到指令盒的输入点,指令盒的输出点连或者不连下一级设备都可执行

6.点击播放即可执行相应的动作

7.可将此行为装载机器人中,具体操作可参考使用手册中行为管理的使用方法


二、远程控制

在本地编辑python程序,使用远程控制方式,具体的编程方法手册中说的很详细

三、本地模式

编程方式和远程控制相同,只是要把文件放到nao中,并把IP地址改成‘127.0.0.1’

将文件拷入nao中,终端使用命令:

scp '本地电脑文件路径' nao@IP:/home      前面是本地文件的路径,后面是要放入nao中的路径
拷出时将路径交换位置即可,若执行不了可使用scp -r  命令执行

登录naoqi:

ssh nao@IP

以上基本都是在初学是使用过的,还有许多功能尚未使用,也可能有不对的


你可能感兴趣的:(Cordova,nao,编程)