当前位置: 首页 > news >正文

机器人内部传感器阅读笔记及心得-位置传感器-光电编码器

目前,机器人系统中应用的位置传感器一般为光电编码器。光电编码器是一种应用广泛的位置传感器,其分辨率完全能满足机器人的技术要求,这种非接触型位置传感器可分为绝对型光电编码器相对型光电编码器。前者只要将电源加到用这种传感器的机电系统中,光电编码器就能给出实际的线性或旋转位置。因此,用绝对型光电编码器装备的机器人的关节不要求校准只要一通电控制器就知道实际的关节位置。相对型光电编码器只能提供某基准点对应的位置信息,因此用相对型光电编码器的机器人在获得真实位置信息之前必须先完成校准程序

绝对型光电编码器

绝对型编码器有绝对位置的记忆装置能测量旋转轴或移动轴的绝对位置,因此在机器人系统中得到大量应用。绝对型光电编码器通常由三个主要元件构成:多路(或通道)光源(如LED光敏元件光电码盘

n个LED组成的线性阵列发射的光与码盘成直角,并由码盘反面对应的2个光敏晶体管构成的线性阵列接收。绝对型光电编码器码盘分为周界通道径向扇形面,利用几种可能的编码形式之一获得绝对角度信息。在这种码盘上,按一定的编码方式刻有透明区域和不透明区域,光线透过码盘的透明区域使光敏元件导通,产生低电平信号,代表二进制数的“0”;不透明区域代表二进制数的“1”。因此,当某一个径向扇形面处于光源和光传感器之间的位置时,光敏元件即可接收到相应的光信号,相应地得出码盘所处的角度位置。

4通道16个扇形面的二进制码码盘如图1所示。

图1 4通道16个扇形面的二进制码码盘

采用二进制码码盘,如图2(a),在两个码段交替过程中,有可能由于电刷位置安装不准,一些电刷越过分界线,而另一些尚未越过,会产生非单值性误差。为减小这种误差,改进的方法是采用格雷码码盘,如图2(b),其特点是相邻两数的代码中只有一位数发生变化能够将误差控制在一个数码之内,其误差最多不超过1。

图2 二进制码码盘与格雷码码盘

格雷码与二进制码的转换可参见引用[1]。下面给出一个以3位为例的二进制码与格雷码对应表。

表1 3位二进制码与格雷码对应表

编码器的分辨率通常由圆弧道数(位数)n来确定,分辨率为360°/2^n。例如,12位编码器的分辨率为360°/2^12,格雷码码盘的圆弧道数一般为812高精度的达到14

备注:2^n表示2的n次方。

相对型光电编码器

与绝对型光电编码器一样,相对型光电编码器也是由前述三个主要元件构成的,不同的是后者的光源只有一路或两路光电码盘一般只刻有一圈或两圈透明区域和不透明区域当光透过码盘时,光敏元件导通,产生低电平信号,代表二进制数的“0”;不透明区域代表二进制数的“1”。因此,这种编码器只能通过计算脉冲个数得到输入轴转过的相对角度。由于相对型光电编码器的码盘加工相对容易,因此其成本比绝对型光电编码器低,而分辨率比绝对型光电编码器高。然而,只有使机器人首先完成校准操作后才能获得绝对位置信息。通常,这不是很大的缺点,因为这样的操作一般只有在加上电源后才能完成。若在操作过程中电源意外消失,则由于相对性编码器没有“记忆”功能,必须再次进行校准。

与之相对的,绝对型光电编码器产生供每种轴用的独立的和单值的码字。与相对型光电编码器不同,它的每个读数都与前面的读数无关,当系统电源中断时,绝对型光电编码器记录发生中断的地点,当电源恢复时,把记录情况通知系统。采用绝对型光电编码器的机器人电源中断导致旋转部件的位置移动校准仍保持

引用:

[1] 格雷码 - 知乎 (zhihu.com)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024.2.19 模拟实现 RabbitMQ —— 虚拟主机设计
  • 小清新卡通人物404错误页面源码
  • msvcp140.dll丢失的解决方法,msvcp140.dll丢失的原因和
  • 【Pytorch 基础教程2】10分钟掌握Tensor基础 VSCode +Pytorch配置
  • 【Python】OpenCV-图片添加水印处理
  • 计网day5
  • 已解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法
  • JAVA工程师面试专题-JVM篇
  • notepad++的下载与使用
  • Maven setting.xml 配置
  • Job 和 DaemonSet
  • MySQL安装教程(详细版)
  • JavaScript:防抖与节流
  • C# 中的回调函数
  • 【笔记】【算法设计与分析 - 北航童咏昕教授】绪论
  • dva中组件的懒加载
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript 基础知识 - 入门篇(一)
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python语法速览与机器学习开发环境搭建
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Vue 2.3、2.4 知识点小结
  • webpack项目中使用grunt监听文件变动自动打包编译
  • web标准化(下)
  • windows下mongoDB的环境配置
  • 深度解析利用ES6进行Promise封装总结
  • 时间复杂度与空间复杂度分析
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • puppet连载22:define用法
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​第20课 在Android Native开发中加入新的C++类
  • #1014 : Trie树
  • #Linux(Source Insight安装及工程建立)
  • #pragma multi_compile #pragma shader_feature
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)Jupyter Notebook 下载及安装
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (三) diretfbrc详解
  • (原)本想说脏话,奈何已放下
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转载)虚函数剖析
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net core 外观者设计模式 实现,多种支付选择
  • .net Signalr 使用笔记
  • .NET 设计一套高性能的弱事件机制
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET程序集编辑器/调试器 dnSpy 使用介绍