01 编码器


双旋转轴机械臂 的肩部和肘部安装有 角度编码器 ST-3806-15-RS ,通过角度编码器 STM32F103控制器 来对肩部和肘部的运动进行控制运动补偿。

三管脚机械臂控制命令 中总结了第一版测试软件( 机械臂底层通信协议说明 )所呈现的一些基本问题。其中关于运动不连续问题与编码器的读取与调试出现的鼓掌有关系。

本文对于角度编码器的安装、设置、与检测给出总结。

  • 将肩部与肘部的角度传感器连接框 调试机械臂一体化控制电路:STM32F103控制器初步调试 对应的端口;
  • 根据 角度编码器 ST-3806-15-RS 的方式对角度传感器进行通讯速率设置;
  • 调整角度传感器的机械方位,使得 角度传感器极限位置与程序设置一致。

02 连接角度传感器


1.电路板连接传感器

电路板上存在两个5PIN的接口,他们位于电路板的下方。如下图所示:

▲ 两个传感器连接到电路板

2.角度传感器接口1

根据 ST-3806系列单圈编码器 说明书 定义了角度传感器引线的功能与对应的颜色:

绿
DC5V DXC9-30V GND 485A+ 485B- RESET

因此,根据控制板的电路板对于接口端口定义,将ST-3806传感器5pin接口颜色序列如下图所示:

▲ 角度传感器SCH设计

两个角度传感器分别对应的通道:

  • 通道1:肩部角度传感器;
  • 通道2:肘部角度传感器;

03 设置波特率


在使用两个角度传感器之前需要设置两个角度传感器 ST-3806-15 的波特率。出厂时的串口默认配置,波特率默认为9600bps,数据位8,无校验,停止位1;波特率可配置范围9600~115200bps,数据位为8 位,校验方式可配置为奇校验、偶校验或无校验,当为奇、偶校验时停止位为1 位,无校验时停止位为2。

为了提高角度传感器读取速度,需要将ST-3806的通讯波特率修改为115200。

下面给出分别设置两个角度传感器的过程,设置的方式、条件基本相同。

1.设置条件

根据ST-3806-15说明,传感器设置需要将其对应的RTC管脚(PIN5)拉高。下面通过一个短路线的电阻连接在对应的端口的PIN5与PIN1(+5V),将RTC的电压拉高。持续时间超过10秒钟,然后将短路线拿开。经过复位之后,ST-3806的通讯波特率恢复到9600,这样便可以通过软件将ST-3806传感器重新设置到115200。

下图显示了对于通道1(肩部角度传感器)进行复位的过程。对于通道2(肘部角度传感器)复位使用相同的方法,都是将短路线短接接口的PIN1(最左),PIN5(最右)两个端口超过10秒钟,然后将短路线拿开。

▲ 对通道1(肩部角度传感器)进行复位

进行复位之后,便可以使用下面的设置方法来改变传感器的波特率了。

■ 说明:在返回的第一版本的电路板,两个读取角度的端口始终出现问题。最后经过检修,更换了MCU(STM32F103),两个MAX485电路才恢复工作。为什么原来的接口电路损坏了呢?

猜测:有可能原来在使用过程出现了高压将原来的接口电路损坏了.

▲ 更换了MCU,两个MAX485接口电路之后重新设置

2.设置方法

(1)使用STM32Bootloader软件

STM32Bootloader软件是单片机软件开发软件。通过它的对话交互式命令设置比较方便,但它需要有对应的STM32Bootloader专用硬件的连接。 如果没有 ,可以参照下面的“使用简易命令”来进行设置。

▲ STM32Bootloader对话框软件界面

在对话框中分别输入:

  • sb 1 : 设置第一通道(肩部角度传感器)的波特率
  • sb 2 : 设置第二通道(肘部角度传感器)的波特率

(2)使用简易命令2

双轴机械臂串口控制命令开发与测试:STM32F103控制板,简易调试命令集合 是用于开发调试机械臂的命令界面。在其中增加了设置角度传感器的控制命令。详细可以参见 简易调试命令集合 中的定义。

命令定义:
命令HEX吗:0x07
命令参数:0x00,0x00:对应通道1,肩部角度传感器;0x00,0x01:通道2,肘部角度传感器;
返回数值:0x5a

3.检查角度传感器

在设置角度传感器波特率为115200之后,可以通过以下两个方面来读取相应的角度数值,看是否数值能够随着机械臂的不同位置而改变。如果能够读取改变的数值,说明两个传感器的通讯端口以及波特率设置完成。

(1)使用STM32Bootloader软件

在STM32对话框中输入“angle”命令,回车之后,可以获得当前肩部和肘部的角度传感器数值。

▲ 输入ANGLE命令查询当前的命令

(2)使用简易调试命令

使用双轴机械臂串口控制命令开发与测试:STM32F103控制板,简易调试命令集合中的读取角度命令:

命令定义:
命令HEX码:0x08
命令参数:0x00,0x00
返回值:四个字节,分别是ah1,al1,ah2,al2
  • 第一通道(肩部)角度数值:ah1×0x100+al1
  • 第二通道(肘部)角度数值:ah2×0x100+al2

04 调整角度传感器机械方位


1.角度传感器的安装位置

由于角度传感器输出的数值是相对于它本身的零点,这与它安装的方位有关系。如果两台机械臂的在固定角度传感器是他们的机械零点不同,则在同样的机械臂的位置,所读出的角度值也不相同。

对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取 中给出了对于角度值读数进行修正的方法,通过增加修正量来保证机械臂在移动范围之内,读出的值始终保持单调,而不会过零点出现溢出现象。

▲ 两个关节的角度传感器安装的位置

2.检查角度数值

现在程序中已经就肩部和肘部的角度传感器进行修正。要求机械臂的两个关节都处于旋转中心位置的时候读出的数值都是:0x4000=16384。

通过 3.3 读取角度的方法,获得两个管脚的角度值,确认是否关节在运动范围中心位置所读取的数值为16384。

▲ 两个关节都处于运动中心位置

3.角度位置进行复位

如果在机械臂的管染血在运动中心位置,读取的角度不是0x4000(16384),则需要对角度传感器进行置零。根据ST-3806系列单圈编码器 说明书中说明,将ST-3806置零是将接口管脚RTS拉高超过1秒,小于5秒钟即可。

下图显示了对于通道1(肩部角度传感器)角度置零过程:使用短接线将通道1端口的PIN1,PIN5短接两秒钟。

对于通道2(肘部角度传感器)进行置零,通道2接口做同样的操作即可。

▲ 将通道1(角度传感器)角度置零

由于软件内部自动将角度传感器进行补偿 0x4000,所以通过软件反馈的角度传感器的读数为0x4000。

与前面对ST-3806复位过程类似,使用一个短接线将接口的PIN1,与PIN5短接。时间大约1~2秒钟。ST-3806的数值就被置零了。此时重新读取数值,得到的读数就应该是0x4000。此过程需要注意:

  • 在将传感器置零时,对应的关节需要处于运动范围中心位置;
  • 短接的时间不要超过10秒钟,否则传感器的波特率就会恢复到9600。此时需要按照前面的方式重新设置ST-3806de的波特率。

▌结论


对于机械臂的两个角度传感器(肩关节、肘关节)的电气安装、波特率设置、角度检查进行了总结。

需要按照前面三个步骤逐步完成角度传感器的设置。这样才能够保证机械运动的精度。

■ 相关文献链接:

  • 双轴机械臂调试:步进电机42HS348E,BH32角度传感器,MCU:STC8H1K28
  • 角度编码器 ST-3806-15-RS
  • 调试机械臂一体化控制电路:STM32F103控制器初步调试
  • 三关节机械臂控制命令修改
  • 机械臂底层通信协议说明
  • ST-3806系列单圈编码器 说明书
  • 双轴机械臂串口控制命令开发与测试:STM32F103控制板,简易调试命令集合
  • 对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取

  1. 控制板AD工程文件:AD\XQWF\2020\机械臂\F103C82AXES.SchDoc ↩︎

  2. 下位机软件所在的目录:STM32\Application\XQWF\2020\CNTSTM103\ ↩︎

对机械臂的肩关节与肘关节编码器连接与设置相关推荐

  1. 三关节机械臂上的传感器 、执行器与控制板STM32F103连接

    ▌01 三关节机械臂 三关节控制臂 通过 调试机械臂一体化控制电路:STM32F103控制器初步调试 完成控制.本文描述了机械臂上的各个传感器.执行器与控制板之间的连接方法以及测试方法. 关于机械臂的 ...

  2. 三关节机械臂控制命令修改

    ▌01 机械控制臂 1.简介 在 调试机械臂一体化控制电路:STM32F103控制器初步调试 对于 三轴机械臂的 的控制,最初版本采用了 简易调试命令组合. 这个命令是为了付方便最初的调试与测试机械臂 ...

  3. 【机器人】从机械臂示教器导出编码器数据到U盘中的操作步骤

    工业机器人 注:这里针对我使用的工业机械臂CRP1410,不同机器人操作方式不完全相同 Question:当机械臂按照运动指令运动后,如何将运动过程中的编码器数据导出到U盘进而在计算机中进行处理呢? ...

  4. 双轴机械臂串口控制命令开发与测试:STM32F103控制板,简易调试命令集合

    ▌01 底层串口控制命令 1.调试说明 本文是继 调试机械臂一体化控制电路 博文中对于 两轴机械臂+机械爪整体控制板设计与机械爪控制调试 在 基于STM32F103双轴机械臂完整电路板 控制下进行串口 ...

  5. 机械臂角度测量方法及其精度分析

    机械臂角度测量方法及其精度分析 机械臂是一种重要的工业自动化设备,广泛应用于装配.搬运.焊接等领域.机械臂转动角度的测量是机械臂控制与定位的重要基础,其测量精度直接影响机械臂的运动精度和工作效率.本文 ...

  6. ubuntu16.04安装UR3/UR5/UR10机械臂的ROS驱动并实现gazebo下Moveit运动规划仿真以及真实UR3机械臂的运动控制(3)

    在上一节已经进行了UR3机械臂的运动规划仿真,这一节就进行真实的UR3机械臂运动控制. 1. 电脑和UR3机械臂连接配置 在启动UR3机械臂后,笔记本电脑通过网线连接UR3的控制箱,此时需要配置网络连 ...

  7. UR机械臂学习(7-1):MoveIt简单编程实现机械臂运动(正逆运动学)

    主要参考: MoveIt编程实现关节空间机械臂运动(正运动学) https://blog.csdn.net/zzu_seu/article/details/90611186 MoveIt编程实现关节空 ...

  8. Franka Emika Panda连接真实机械臂(二)

    Franka Emika Panda连接真实机械臂(二) 虚拟环境下已经可以进行机械臂的拖动了,下一步就是PC连接机械臂,并通过plan控制机械臂运动. 前文[Franka Emika Panda连接 ...

  9. dobot moveit 包_越疆科技dobot(magician)机械臂在ROS moveit下gazebo仿真控制和真实控制功能包 有兴趣的可以下载来玩...

    功能包下载链接:https://download.csdn.net/download/qq_42145185/11256475 Magician Robotarm ====== 本文件夹中包含了多个为 ...

最新文章

  1. 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
  2. boost::math模块使用拉普拉斯(与正态比较)分布的示例的测试程序
  3. 在Swing和Swt中使用JavaFX
  4. hadoop fs命令无法使用_Hadoop从入门到入土(三)HDFS集群简单维护及JAVA客户端连接HDFS...
  5. SQL避免IN 和 NOT IN
  6. 8.1 Ext JS应用测试概览
  7. 关于text-indent
  8. [转]关于管理的经典故事(员工激励)
  9. PHPWAMP出现无响应的解决方案,PHPWAMP集成环境在某些系统无响应什么办?
  10. openlayers6【十三】地图矢量图层 Vector 详解
  11. 笔记本电脑键盘个别键失灵的修复方法
  12. 红与黑 DFS(JAVA解法)
  13. Gradle下载与安装
  14. 【Unity主程手记(摘录)】第一章(二) - Dictory 底层源码剖析
  15. 【万里征程——Windows App开发】SemanticZoom视图切换
  16. 刷题的目的及注意事项
  17. 世链投研|people的诞生堪比魔幻,背后蕴藏着怎样的经济体制?
  18. 纯CSS实现弹幕效果
  19. 这两个月——我的学习Python学习之路
  20. 强化学习 --- 概述

热门文章

  1. Python中os和shutil模块实用方法集锦
  2. (六)java多线程之ReadWriteLock
  3. 利用单臂路由实现VLAN间路由
  4. Cnyunwei-Cacti+Nagios安装说明
  5. [C++基础]001_iostream和iostream.h的区别
  6. 验证码的三种做法[纯数字][纯汉字][字母\数字\汉字混合]C#
  7. sourcetree 回滚
  8. Egret之eui.Scroller
  9. git更改已提交作者用户名
  10. angular-oauth2 —— NG 的 OAuth2 认证模块