舵机机器人串口协议
- 格式:xls
- 大小:337.50 KB
- 文档页数:14
17自由度仿真人形教育机器人控制系统设计杨剑,黄泽鹏,吴昶华,李昆(华南理工大学广州学院,广州510800)图2上位机整体主要功能图上位机功能编号选择串口控制模块舵机控制模块数据操作模块串口检测后台数据计算界面数据整理数据校验连接通信动作编辑姿态检测延时设置角度控制速度控制基金项目:2019广东省大学生科技创新培育专项资金项目(pdjh2019b0638)摘要:设计了一款17自由度仿真人形教育机器人控制系统,通过UBT12HB 舵机总线半双工串口UART通信协议,采用定时器产生17路PWM驱动信号,控制机器人各种姿态下的舵机角度和速度。
该系统具有运动形态新颖、运动效果优异、操作反应灵敏、体态特征丰富等特点,可应用于机器人知识普及和教学。
关键词:17自由度;人形机器人;控制系统设计中图分类号:TP 242文献标志码:A文章编号:1002-2333(2020)04-0008-04Design of 17-DOF Simulation Humanoid Education Robot Control SystemYANG Jian,HUANG Zepeng,WU Changhua,LI Kun(Guangzhou College of South China University of Technology,Guangzhou 510800,China )Abstract:This paper designs a 17-DOF simulation humanoid educational robot control system.Through the UBT12HB servo bus half-duplex serial UART communication protocol,a timer is used to generate 17PWM drive signals to control the servo angle and speed in various attitudes of the robot.The system has the characteristics of novel motion form,excellent motion effect,sensitive operation response,rich body features,etc.,and can be applied to the popularization and teaching of robot knowledge.Keywords:17-DOF;humanoid robot;control system design0引言目前机器人应用主要面向制造业和娱乐行业,随着全国各地机器人大赛的举办和普及,各大、中、小学校越来越重视机器人教育与培训。
机器人的通讯协议《机器人通讯协议》一、前言为了实现机器人之间的有效通讯,确保机器人协作的高效性和准确性,本文档规定了一种机器人通讯协议。
该协议涵盖了机器人之间基本的消息格式、通讯方式和错误处理等方面,适用于各种类型的机器人。
二、消息格式1. 消息类型:分为请求、响应、通知三种类型。
2. 消息结构:每条消息由消息头和消息体组成。
(1)消息头:包含版本号、消息长度、消息类型、目标机器人ID等基本信息。
(2)消息体:根据消息类型,包含相应的内容。
例如,请求消息体中包含请求命令和参数,响应消息体中包含执行结果和状态码。
三、通讯方式1. 基于TCP/IP协议:采用可靠的传输控制协议(TCP)进行通讯,确保数据的完整性和准确性。
2. 基于主题的消息队列:机器人之间通过消息队列进行通讯,每个主题对应一个消息队列。
机器人订阅感兴趣的主题,发送消息时指定目标主题。
3. 定时心跳:机器人之间通过发送心跳包来维持连接,检测对方是否在线。
四、错误处理1. 校验错误:消息在传输过程中,若发现数据校验失败,则丢弃该消息,并重新发送。
2. 消息格式错误:接收方在解析消息时,若发现消息格式不符合协议要求,则返回错误响应,并终止通讯。
3. 命令错误:执行方在处理请求时,若发现请求命令不符合要求,则返回错误响应,并终止通讯。
4. 权限错误:接收方在处理请求时,若发现请求方无权限执行该操作,则返回错误响应,并终止通讯。
五、协议版本迭代本协议可根据需求进行版本迭代,每次迭代需遵循以下规则:1. 在原有协议基础上,增加新的消息类型、字段或功能。
2. 保持消息格式和通讯方式的兼容性,以便旧版本机器人能与新版本机器人进行通讯。
3. 在新版本协议中,保留旧版本协议的支持,以便实现向下兼容。
六、总结《机器人通讯协议》为机器人之间的通讯提供了统一的标准和规范,有助于提高机器人协作的效率和稳定性。
在使用本协议时,请注意遵循相关规定,确保机器人之间的安全、可靠通讯。
服务机器人通信协议说明文档1、概述服务机器人是定义设计为给餐厅,家庭,巡检,科研等应用场合的类人形服务机器人。
本文主要讲述机器人的控制过程中的协议指定。
本机器人控制部分主要有四个部分组成,一、机器人上的Android界面控制二、机器人远程控制端APP协议三、机器人内部图形化编程动作录制四、机器人外置传感器协议定制(后续)其中软件部分,主要包括机器人上的Android界面以及远程控制APP协议两个部分,本文主要对这两个部分的协议做一个概述。
注:机器人上的Android程序除了要完成与远程APP的通信握手和TCP连接之外,在机器人控制上只需要完成数据的转发即可,即,收到远程控制端APP发过来的命令,会自动通过串口发送出去。
在收到串口发送过来的数据的时候,也会自动的发送到远程控制端的APP上。
2、数据包格式所有的数据包分为数据头数,据内容,数据尾三部分组成,数据头的定义如下:数据尾的定义如下:其中,数据头为:0xff 0xaa 数据尾为0xff 0x55数据校验位尾数据内容的累加和校验。
设备序列号为设备的唯一标识(存储在设备内部):在此机器人的握手包中获取,获取之后所有的通信内容必须包含握手包之后的设备需要,否则无法控制机器人。
设备命令类型分为六大类,分别为应答式主机发送包,应答式数据应答包,发送式发送包,反馈式从机数据传输包,反馈应答式从机反馈包,反馈应答式主机应答包。
(应答式表示该命令为主机发送,从机收到主机发送命令之后必须应答。
发送式数据包表示主机发送数据包,从机收到数据包直接处理。
反馈式数据包表示从机主动反馈数据包,不需要主机回应。
反馈应答式数据包表示从机主动反馈数据,主机收到数据给出应答。
设备表示形式会在具体协议中给出范例。
数据长度为数据传输内容的数据长度值。
具体的数据包的格式件实际数据协议3、机器人端APP说明机器人端的APP最好做成开机自启动,开机之后自动进入软件界面。
软件启动之后自动进入软件界面,软件界面为一个笑脸,在笑脸界面,机器人需要主动开启UDP端口和串口:UDP:3456(用于和手机端控制软件通信)串口:TTY5,波特率:115200。
舵机连接方法舵机连接方法舵机是一种能够实现旋转和定位的电机,通常用于控制机器人、模型和其他自动化系统的运动。
在连接舵机时,需要注意正确的接线,以确保舵机能够正确地运行。
以下是一些常用的舵机连接方法和注意事项。
1.三线连接最常见的舵机连接方式是三线连接,通常称为PWM连接。
这种连接方式需要用到三根线,分别是电源线、地线和信号线。
电源线连接到舵机的正极,地线连接到舵机的负极,信号线则用于控制舵机的转动方向。
在Arduino等控制器上,信号线连接到数字引脚,并使用PWM进行控制。
2.四线连接另一种舵机连接方式是四线连接,包括电源线、地线、信号线和编码器反馈线。
编码器反馈线可以实现对舵机位置的反馈控制,通常用于需要精确定位的系统。
使用这种连接方式时,需要特别注意接线的正确性和编码器反馈线的接口。
3.串口连接一些舵机支持通过串行接口进行连接和控制。
这种连接方式需要使用特定的串口协议,对于初学者来说可能较为复杂。
但这种连接方式可以实现较高的精度和响应速度,适用于需要较为精细的运动控制。
连接注意事项正确的舵机连接不仅可以保证舵机的正常工作,还可以防止电路短路、舵机损坏等问题。
以下是一些连接注意事项:1.接触不良舵机连线必须牢固稳定,以免在运动过程中出现接触不良的问题。
如果接线不牢固,可能会导致舵机无法正常工作或者出现意外的运动。
2.电流过载在连接舵机前,要确保所选用的电源能够满足舵机的工作电流要求。
如果电源电流不够强,可能会导致舵机无法正常运转或者损坏。
此外,如果多个舵机连接在同一个电源上,也要注意总功率是否超过电源的负载能力。
3.接线错误舵机有正负极之分,如果接错极性,可能会导致舵机损坏或者反转运动。
此外,如果使用四线或者串口连接方式,还要注意编码器反馈线和控制信号线的接口。
4. PWM信号频率PWM信号频率也是一个需要注意的问题。
一般来说,大多数舵机的PWM信号频率为50Hz,但有些特殊的舵机可能需要更高的频率才能正常工作。
串口通讯协议书范本甲方(提供方):_________________________乙方(使用方):_________________________鉴于甲方拥有串口通讯技术,乙方有使用该技术的需求,双方本着平等互利的原则,经协商一致,就串口通讯技术的使用达成如下协议:第一条定义1.1 串口通讯:指通过串行接口进行数据传输的一种通讯方式。
1.2 数据格式:指在串口通讯中,数据的组织和编码方式。
1.3 通讯速率:指串口通讯中数据传输的速度。
1.4 通讯协议:指双方约定的串口通讯规则和标准。
第二条协议内容2.1 甲方同意向乙方提供符合本协议规定的串口通讯技术。
2.2 乙方同意按照本协议的规定使用甲方提供的串口通讯技术。
第三条通讯参数3.1 数据格式:采用_________标准。
3.2 通讯速率:_________ Baud。
3.3 校验方式:_________。
3.4 停止位:_________。
3.5 通讯协议:_________。
第四条权利与义务4.1 甲方应保证提供的串口通讯技术符合本协议规定的标准。
4.2 乙方应按照本协议规定的参数进行通讯,并保证通讯的合法性和安全性。
4.3 双方应共同维护通讯的稳定性和安全性,不得擅自更改通讯参数。
第五条保密条款5.1 双方应对在本协议履行过程中获知的对方的商业秘密和技术秘密负有保密义务。
5.2 保密期限为协议终止后_________年。
第六条违约责任6.1 如一方违反本协议规定,应承担违约责任,并赔偿对方因此遭受的损失。
第七条协议的变更和解除7.1 本协议的任何变更和补充均需双方书面同意。
7.2 如一方要求解除本协议,应提前_________天书面通知对方。
第八条争议解决8.1 双方因履行本协议所发生的任何争议,应通过友好协商解决。
8.2 如协商不成,任何一方均可向甲方所在地人民法院提起诉讼。
第九条其他9.1 本协议自双方签字盖章之日起生效。
9.2 本协议一式两份,甲乙双方各执一份,具有同等法律效力。
机器人通讯协议标准介绍机器人通讯协议标准是指用于机器人之间进行通信的一套规范和标准。
这些标准定义了机器人之间通信的方式、协议的格式、消息的传输方式等。
通过统一的通讯协议标准,不同厂商生产的机器人可以实现互联互通,提高机器人的智能化和自动化水平。
重要性机器人通讯协议标准的制定对机器人行业的发展具有重要的意义。
一方面,通讯协议标准可以促进机器人之间的互联互通,实现数据的共享和交换。
另一方面,通讯协议标准使得不同厂商的机器人可以共同使用同一套软件和硬件系统,降低研发和生产成本,提高机器人的整体性能和稳定性。
发展历程第一代机器人通讯协议标准第一代机器人通讯协议标准主要是针对特定的机器人品牌或型号制定的,缺乏通用性。
每个厂商都有自己的通讯协议,导致不同品牌的机器人之间无法进行通信。
这限制了机器人的发展和应用范围。
第二代机器人通讯协议标准为了解决第一代机器人通讯协议标准的问题,国际机器人协会(RIA)和国际机器人标准化组织(ISO)等组织开始着手制定通用的机器人通讯协议标准。
第二代机器人通讯协议标准基于TCP/IP协议进行设计,采用XML或JSON格式进行数据传输。
这些标准的制定使得不同厂商的机器人可以进行互联互通,加快了机器人技术的发展和应用。
常用的机器人通讯协议标准ROS(机器人操作系统)ROS是一个开放源代码的机器人操作系统,为机器人软件开发提供了一套通用的工具和库。
它提供了一种分布式架构,可以在多个计算节点上运行不同的功能模块。
ROS使用TCP/IP协议进行通信,在通信层面上采用了一种称为ROS话题的消息传输机制,实现了多机器人之间的数据共享和交换。
OPC UA(开放平台通讯统一架构)OPC UA是一种工业自动化通讯协议,用于在不同的设备和应用程序之间进行数据传输和共享。
它提供了跨平台、跨操作系统、跨语言的通讯机制。
OPC UA借鉴了Web服务的思想,使用XML或Binary编码进行数据传输。
它支持发布-订阅模型和请求-响应模型,可以满足不同场景下的通讯需求。
干货ABB机器人串口通信设定和程序编写•串口通信基础概念•ABB机器人串口通信设定•程序编写基础知识•ABB机器人程序编写实践目•调试与优化技巧分享•总结与展望录01串口通信基础概念串口通信定义及作用01串口通信是一种异步通信方式,用于实现设备之间的数据传输。
02串口通信在工业自动化、智能家居、汽车电子等领域有广泛应用。
03通过串口通信,可以实现机器人与外部设备的数据交换和控制。
常见串口类型及特点RS-232串口传输距离较远,但传输速率较低,常用于工业控制领域。
RS-422/485串口支持多点通信,传输距离和速率较高,适用于长距离、高速率的数据传输。
USB转串口通过USB接口实现串口通信,方便易用,广泛应用于各种领域。
串口通信协议简介01串口通信协议规定了数据传输的格式和规则。
02常见的串口通信协议有Modbus、Profibus、CAN等。
03在使用ABB机器人进行串口通信时,需要根据具体应用场景选择合适的通信协议。
通过串口通信,机器人可以与外部设备(如传感器、执行器等)进行数据交换和控制。
机器人与外部设备的通信多个机器人之间可以通过串口通信实现协同作业和数据共享。
机器人之间的通信通过串口通信,可以实现对机器人的远程监控和调试,提高维护效率。
远程监控与调试串口通信应用场景02ABB机器人串口通信设定硬件连接与配置选择合适的串口通信设备根据实际需求选择符合要求的串口通信设备,如RS232、RS485等。
连接机器人与串口通信设备使用串口线将机器人控制器与串口通信设备连接起来,并确保连接稳定可靠。
配置机器人串口参数在机器人控制器中设置相应的串口参数,如波特率、数据位、停止位、校验位等,以匹配串口通信设备的参数。
安装串口通信软件在机器人控制器中安装相应的串口通信软件,以便进行串口通信操作。
配置串口通信协议根据实际需求选择合适的串口通信协议,如Modbus、Profibus等,并进行相应的配置。
调整串口通信参数根据实际通信效果,对串口通信参数进行调整,如修改波特率、数据位等,以提高通信质量和稳定性。
常用通讯协议协议编号: _______________签署日期: _______________签署地点: _______________协议方信息1.1 技术提供方(甲方)单位名称: ______________________________法定代表人: ______________________________联系地址: ______________________________联系电话: ______________________________1.2 技术使用方(乙方)单位名称: ______________________________法定代表人: ______________________________联系地址: ______________________________联系电话: ______________________________协议目的2.1 本协议旨在规定甲方提供的通讯协议的使用规范,确保乙方在其系统中能够正确、高效地使用该通讯协议进行数据传输和控制。
2.2 本协议涉及的通讯协议包括但不限于:2.2.1 通讯协议类型: ______________________________(如TCP/IP、RS232、CAN等)2.2.2 数据格式: ______________________________(如JSON、XML、Binary等)2.2.3 通讯速率: ______________________________(如Baud Rate、Bandwidth等)2.2.4 错误处理机制: ______________________________(如CRC 校验、重传机制等)技术要求3.1 协议规范3.1.1 协议版本: ______________________________3.1.2 协议标准: ______________________________(如IEEE、ISO标准等)3.1.3 数据传输速率: ______________________________3.1.4 数据包格式: ______________________________(如帧头、帧尾、数据区等)3.2 技术支持3.2.1 甲方应提供相关的技术文档和协议规范,包括协议说明书、接口描述等。
乐幻索尔总线舵机通信协议1.概要采用异步串行总线通讯方式,理论多至253 个机器人舵机可以通过总线组成链型,通过UART 异步串行接口统一控制。
每个舵机可以设定不同的节点地址,多个舵机可以统一运动也可以单个独立控制。
通过异步串行接口与用户的上位机(控制器或PC 机)通讯,您可对其进行参数设置、功能控制。
通过异步串行接口发送指令,可以设置为电机控制模式或位置控制模式。
在电机控制模式下,可以作为直流减速电机使用,速度可调;在位置控制模式下,拥有0-240°的转动范围,外加±30°的偏差可调范围,在此范围内具备精确位置控制性能,速度可调。
只要符合协议的半双工UART 异步串行接口都可以和舵机进行通讯,对舵机进行各种控制2.UART接口原理图舵机用程序代码对UART 异步串行接口进行时序控制,实现半双工异步串行总线通讯,通讯波特率为115200bps,且接口简单、协议精简。
在您自行设计的控制器中,用于和舵机通讯的UART 接口必须如下图所示进行处理。
图13.指令包指令包格式表1:帧头ID号数据长度指令参数校验和0x55 0x55 ID Length Cmd Prm 1…Prm N Checksum帧头:连续收到两个0x55 ,表示有数据包到达。
ID: 每个舵机都有一个ID 号。
ID 号范围0~253,转换为十六进制0x00~0xFD。
广播ID: ID 号254(0xFE) 为广播ID,若控制器发出的ID 号为254(0xFE),所有的舵机均接收指令,但都不返回应答信息,(读取舵机ID号除外,具体说明参见下面指令介绍)以防总线冲突。
数据长度:等于待发送的数据(包含本身一个字节)长度,即数据长度Length 加3等于这一包指令的长度,从帧头到校验和。
指令:控制舵机的各种指令,如位置、速度控制等。
参数:除指令外需要补充的控制信息。
校验和:校验和Checksum,计算方法如下:Checksum = ~ (ID + Length + Cmd+ Prm1 + ... Prm N)若括号内的计算和超出255,则取最低的一个字节,“~”表示取反。
字头ID 有效数据长度指令参数校验和0XFF 0XFF 0XFE 0X040X030X03
0X010XF6
校验和的计算方法如下:
2.4.2 读指令READ DATA
功能
长度
指令
参数1
参数2
指令帧:0XFF 0XFF 0X01 0X04 0X02
0X38 0X02 0XBE
字头ID 指令参数
OXFF X0FF 0X010X020X38 0X20
字头ID 工作状态参数
0XFF 0XFF 0X010X000X00 0X20
2.4.3 异步写指令REG WRITE
2.4.7 同步写指令SYNC WRITE
功能 用于同时控制多个舵机。
REG WRITE指令相似于 WRITE DATA,只是执行的时间不同。
当收到REG WRITE指令帧时,把收到的数据储存在缓冲匙备用,并把Registered Instruction寄存器(Address 0x2c)置1。
当收到ACTION指令后,储存的指令最终被执行。
因为采用广播ID収送指令,所以不会有数据返回
Check Sum = ~ (ID + Length + Instruction + Parameter1 + ... Parameter N) 若计算的和超出 255,则取最低的一个字节,“~”表示取反
从舵机的控制表里读出数据 0X040X02 数据读出段的首地址 读取数据的长度功能 触収REG WRITE指令
长度 0X02
例 2 读取 ID 为 1 的舵机的当前位置。
在控制表里从地址 0X38 处读取二个字节。
有效数据长度0X04返回的数据帧: 0XFF 0XFF 0X01 0X03 0X00 0X20 0XDB
有效数据长度0X04 读出的数据是 0x0020,说明当前的位置为 32°(0x0020)。
长度 N+3 (N 为要写入数据的个数)
指令 0X04
参数1 数据要写入匙的首地址
参数2 要写入的第一个数据
参数3 要写入的第二个数据
参数N+1 要写入的第N个数据
2.4.4 执行异步写指令ACTION
指令 0X05
参数 无
ACTION 指令在同时控制多个舵机时非常有用。
在控制多个独立的舵机时,使用ACTION指令可以使第一个和最后一个舵机同时执行各自的动作,中间无延时。
对多个舵机发送ACTION指令时,要用到广播ID(0xFE),因此,収送此指令不会有数据帧返回。
ID
0XFE 指令 0X83
参数1 写入数据的首地址
参数2 写入的数据的长度
(L)
参数3 第一个舵机的ID号
参数4 写入第一个舵机的
第一个数据
参数5 写入第一个舵机的
第二个数据
...
参数 L+3 写入第一个舵机的
第L个数据
参数 L+4 第二个舵机的ID号
参数 L+5 写入第二个舵机的
第一个数据
参数 L+6 写入第二个舵机的
第二个数据
…
….
参数 2L+4 写入第二个舵机的第L个数据
不同于REG WRITE+ACTION指令的是实时性比它更高,一条SYNC WRITE指令可一次修改多个舵机的控制表内容,而REG WRITE+ACTION指令是分步做到的。
尽管如此,使用SYNC WRITE指令时,写入的数据长度和保存数据的首地址必须相同即必须执行相同的动作。
长度 (L + 1) * N + 4 (L: 发给每个舵机的数据长度, N: 舵机的个数)
第三章 内存控制表
3.1 内存控制表
地址
0(0x00)1(0x01)
2(0x02)
3(0x03)
4(0x04)
5(0x05)
6(0x06)
7(0x07)
8(0x08)
9(0x09)
10(0x0A)
11(0x0B)
12(0x0C)
13(0x0D)
14(0x0E)
15(0x0F)
16(0x10)
17(0x11)
18(0x12)
19(0x13) 机器人舵机本身的信息和控制参数形成了一张表,保存在其控制芯片的RAM和EEPROM匙域。
我们通表,内容如下:
命令项读写------------读/写软件版本(H)读软件版本(L)读ID 读/写最大角度限制(H)读/写波特率读/写返回延迟时间读/写应答状态级别最小角度限制(H)读/写最小角度限制(L)读/写最大角度限制(L)读/写温度上限读/写电压上限读/写电压下线读/写最大扭矩(H)读/写最大扭矩(L)读/写----卸载条件读/写
20(0x14)21(0x15)22(0x16)23(0x17)24(0x18)25(0x19)26(0x1A)27(0x1B)28(0x1C)29(0x1D)40(0x28)41(0x29)0X0042(0x2A)43(0x2B)44(0x2C)00(0x00)45(0x2D)00(0x00)46(0x2E)47(0x2F)48(0x30)00(0x00)56(0x38)57(0x39)58(0x3A)59(0x3B)60(0x3C)61(0x3D)62(0x3E)63(0x3F)64(0x40)00(0x00)
65(0x41)读/写电流阀值(L)读/写中位调整 (H)中位调整(L)读/写电流阀值(H)读/写最小 PWM(H)读/写最小 PWM(L)读/写顺时针不灵敏区读/写运行时间(H)读/写逆时针不灵敏区读/写LED警报读/写撤销扭矩警报读/写当前位置(L)读扭矩开关读/写LED 读/写目标位置(H)读/写目标位置(L)读/写当前负载(L)读运行时间(L)读/写当前电流(H)读当前电流(L)读锁标志读/写REG WRITE标志读当前位置(H)读运行速度(L)读当前电压读当前温度读运行速度(H)读当前负载 (H)读
我们通过实时修改表里的内容,可以达到实时控制舵机的目的。
这张表称为内存控制
初始值
存储匙域0x01
--
--
--
0x01
--
--
0x10 (4096)
0x00
0x00
0x00 (0)
0x00
0x20
0x00
0x50(80°)
0x08
0x04
0x03(800)
0x00
0x00EEPROM
0x00
0x00
0x01(500ma)
0xf4
0x00
0x00
0x00
0x00
0x04
0x04 RAM。