锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

NAO机器人程序设计复习,助你拿高分

时间:2022-07-13 08:30:00 接触式影像传感器

文章目录

    • 1. NAO机器人概述
      • 1.1 机器人传感器
      • 1.2 机器人关节运动分类
      • 1.3 机器人的自由度
    • 数学基础
      • 方位描述
      • 坐标变换(重点是公式)
        • 平移坐标变换
        • 旋转坐标变换
        • 复合变换
        • 齐次变换(重点)
      • 例题(类似试题)
    • 2. Python基本语法
      • 2.1 条件语句
      • 2.2 while循环语句
      • 2.3 列表
        • 2.3.1 访问列表元素
        • 2.3.2 操作列表常用方法
        • 2.3.3 列表分片
        • 2.3.4 列表加和乘运算
      • 2.4 for循环
      • 2.5 函数
    • 3. NAO机器人编程基础
      • 3.1 阻塞调用和非阻塞调用
      • 3.2 内存
        • 3.2.1 NAO状态数据
        • 3.2.2 订阅事件数据
    • 4. 运动控制
      • 4.1 刚度控制
      • 4.2 关节控制方法
      • 4.3 运动控制方法
        • 4.3.1 moveTo方法
        • 4.3.2 move方法
        • 4.3.3 moveToward方法
      • 4.4 步态控制
      • 4.5 时间轴指令盒
    • 5.音频处理
      • 5.1 音频数值化过程
        • 5.1.1 采样
        • 5.1.2 量化
        • 5.1.3 编码
      • 5.2 音频存储
      • 5.3 ALAudioRecorder录音模块
        • 5.3.1 ALAudioRecorder方法
      • 5.4 ALSoundLocalization声音识别模块
    • 6. 视觉处理
      • 6.1 分辨率和颜色空间
      • 6.2 ALPhotoCapture图像捕获
      • 6.2 订阅图像
        • 6.2.1 订阅图像的相关方法
        • 6.2.2 订阅图像流程
    • 7. 传感器
      • 7.1 什么是DCM
      • 7.2 DCM作用

1. NAO机器人概述

1.1 机器人传感器

1.2 机器人关节运动分类

对于连接机器人两个身体部位的关节,驱动电机实现关节运动时,固定在躯干上的部件固定,远离躯干的 部件将围绕关节轴旋转

  • 横滚(Roll):沿x轴向旋转称为横滚
  • 俯仰(Pitch):沿y轴向旋转称为俯仰
  • 偏转(Yaw):沿z轴方向的旋转称为偏转

在这里插入图片描述

  • 沿关节轴逆时针转动角度为顺时针转动角度为
  • 向左为正,向右为负

1.3 机器人的自由度

自由度机器人能独立运动的关节数,称为机器人的运动自由,称为自由(Degree of Freedom),由DOF简写表示。

头部有两个关节,可以做偏转(Yaw)和俯仰(Pitch),因此,头部的自由度为2。除表列出的24个自由度外,每只手都可以张开和关闭,有一个自由度,因此,NAO全身有26 自由度

在这里插入图片描述

数学基础

方位描述

  • 坐标系绕X轴旋转

在这里插入图片描述

在这里插入图片描述

  • 坐标系绕Y轴旋转
    在这里插入图片描述

  • 坐标系绕Z轴旋转

在这里插入图片描述

坐标变换(重点是公式)

平移坐标变换

在这里插入图片描述

旋转坐标变换

在这里插入图片描述

复合变换

在这里插入图片描述

齐次变换(重点)

齐次变换:将n维矩阵升级到n+1维

在这里插入图片描述

例题(考题类似)

在这里插入图片描述

在这里插入图片描述

Rot是旋转矩阵

在这里插入图片描述

2. Python基本语法

2.1 条件语句

  1. 双分支选择结构
score=75if score>=60:	print ("Pass")else:	print ("Fail")
  1. 多分支选择结构
score=75if score>=90:	print ("Excellent")elif score>=80:	print ("Very Good")elif score>=70:	print ("Good")elif score>=60:	print ("Pass")else:	print ("Fail")

2.2 while循环语句

  • continue语句

在这里插入图片描述

  • break语句

在这里插入图片描述

2.3 列表

  • 列表:列表由一系列按特定顺序排列的元素组成。
  • 元素可以是任何类型的变量
  • 与其他语言中的数组不同,列表元素之间可以没有任何关系,可以是不同数据类型的
  • 列表包含多个元素,通常给列表指定一个表示复数的名称 (如letters 、digits 或names )。
  • 方括号[ ]来表示列表,并用逗号来分隔其中的元素
xs=[1,2,3,4,5]ys=["one","two","three","four","five"]zs=[1,"one",True]print xsprint ysprint zs输出结果为:[1, 2, 3, 4, 5]['one', 'two', 'three', 'four', 'five'][1, 'one', True]

2.3.1 访问列表元素

  • 通过下标(索引)访问列表元素
  • len()函数求出列表长度:len (grades)表示列表grades的长度
  • 索引0表示第一个元素,索引-1表示列表最后一个元素

2.3.2 操作列表常用方法

在这里插入图片描述
在这里插入图片描述

2.3.3 列表分片

列表分片:取出列表的一部分元素,称为分片

Python对列表提供了强大的分片操作,运算符仍然为下标运算符。创建列表分片,需要指定所取元素的起始索引和终止索引,中间用**冒号分隔。分片将包含从起始索引到终止索引 (不含终止索引)**所对应的所有元素。

在这里插入图片描述

  • 不指定起始索引,Python将自动从列表头开始
  • 不指定终止索引,Python将提取到列表末尾
  • 终止索引小于等于起始索引时,分片结果为空
  • 两个索引都不指定时,将复制整个列表。

2.3.4 列表加和乘运算

在这里插入图片描述

2.4 for循环

  • range函数

在这里插入图片描述

  • for循环例子
s=[]for i in range(1,11):s.append(i**2)print s输出结果为: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]。在Python 中,i的n立方用i**n 表示。

2.5 函数

函数代码块以def 关键词开头,后接函数标识符名称圆括号 (),括号里面是函数的参数冒号后面对应缩进的代码块是函 数体。 函数如果需要有返回的结果,利用return关键字作返回

def add(list):    sum = 0    for i in list:        sum+=i    return sumarray = [1,2,3,4,5]count = add(array)print (count)

3. NAO机器人编程基础

3.1 阻塞调用和非阻塞调用

  • 阻塞调用:阻塞调用是指调用结果返回之前,调用者会进入阻塞状态等待。只有在得到结果之后才会返回。也就是说,在顺序结构的程序中,只有在前一个调用结束后才能执行下一条语句

  • 对于NAOqi任何阻塞调用的方法,如果使用Proxy的post对象进行调用,将在并行线程中创建任务,这样可以同时执行后面的语句

  • 非阻塞调用:指在不能立刻得到结果之前,该方法不会阻塞当前线程,而会立刻返回这样就可以继续执行下面的语句

eg:让NAO机器人行走与说话

from naoqi import ALProxyimport timemotion = ALProxy("ALMotion", "192.168.1.170", 

相关文章