一种基于串口通信和总线通信的机器人通信架构及通信方法技术

技术编号:37576928 阅读:15 留言:0更新日期:2023-05-15 07:53
本发明专利技术涉及一种基于串口通信和总线通信的机器人通信架构及通信方法,属于机器人控制协议体系技术领域,具体为一种基于Json数据格式的串口通信和CAN总线通信的串联式机械臂通信架构。本通信架构利用ROS系统下的node独立节点和ESP32中并行线程实现,在实现通信的同时不影响上位机ROS系统和驱动器主要功能的运行。在ROS架构下编写node作为客户端绑定通信服务函数,受到服务函数激发则自动执行,ROS的并行架构使得通信节点与主任务节点并行运行,不受影响。在电机驱动器中,ESP32设定并行线程,电机的主任务线程和CAN通信线程并行运行。电机的主任务线程和CAN通信线程并行运行。电机的主任务线程和CAN通信线程并行运行。

【技术实现步骤摘要】
一种基于串口通信和总线通信的机器人通信架构及通信方法


[0001]本专利技术涉及一种基于串口通信和总线通信的机器人通信架构及通信方法,属于机器人控制协议体系
,具体为一种基于Json数据格式的串口通信和CAN总线通信的串联式机械臂通信架构。

技术介绍

[0002]在这个日新月异的时代,智能机器人已经在生产生活中占据了重要地位。生产生活中的大多数工业机械臂都为6自由度机械臂,能实现机械臂末端在三维空间中无约束运动。桌面级机械臂所面对的任务类型复杂多样,因此为完成各种任务需要机械臂有足够多的自由度。无论是工业上的机械臂还是小型的桌面级机器人,都需要对机器人的各个关节进行分别控制。
[0003]总线技术在这种对多个节点同时进行控制的情况中应用广泛,而CAN总线得益于其抗干扰能力强、接线方式简单、传输速度快等优点无疑是进行机械臂电机连接的好选择。但是将上位机接入CAN总线并不是一个很好的选择。首先,上位机的开发硬件多为个人电脑或服务器,而目前主流的绝大多数电脑、服务器并不支持CAN总线直接连接,需要外部转接设备才能够实现CAN总线通信。其次,CAN总线数据结构复杂,底层开发难度大,用户调用底层接口风险较高,不利于初学者进行学习。最后,将上位机直接接入CAN总线会导致上位机与关节执行机构高度耦合,不利于在此基础上进行二次开发。

技术实现思路

[0004]本专利技术的技术解决问题是:克服现有技术的不足,提出一种基于串口通信和总线通信的机器人通信架构及通信方法,旨在实现由基于Json的ROS与ESP32单片机的通信和ESP32单片机的CAN通信组合,建立机器人通信体系,利用串口实现ROS与ESP32的物理连接,通过Json数据格式进行通信,在ROS端编写Service,对串口输出和输入数据分别进行Josn解码和编码,在ESP32端利用FreeRTOS多线程,编写独立线程对串口输出输入进行Json解码和编写,以此实现ROS节点与ESP32单片机的通信功能,同时,ESP32作为CAN总线中的一个节点,对机械臂关节的电机进行任务分发与反馈数据收集,实现ROS到机械臂电机的控制数据流,以及机械臂电机到ROS的反馈数据流。
[0005]本专利技术的技术解决方案是:
[0006]一种基于串口通信和CAN总线通信的机器人通信架构,该通信架构包括Master通信控制器、ROS系统、若干个电机驱动器、CAN总线和串口数据线;
[0007]所述的Master通信控制器包括CAN通信模块A和串口通信模块A;
[0008]所述的ROS系统包括主任务模块B和串口通信模块B
[0009]所述的电机驱动器包括CAN通信模块C和任务模块C;
[0010]所述的Master通信控制器由ESP32单片机实现,Master通信控制器的CAN通信模块A通过CAN总线与电机驱动器的CAN通信模块C连接,并利用CAN通信技术进行信息交互;
[0011]所述的Maser通信控制器的串口通信模块A通过串口数据线与ROS系统的串口通信模块B相连接,利用Json数据结构进行串联通信;
[0012]所述的ROS系统的主任务模块B用于处理主要任务,ROS系统的串口通信模块B与Master的串口通信模块A进行通信;
[0013]所述的电机驱动器的CAN通信模块C与Master通信控制器的CAN通信模块A进行通信交互,电机驱动器的任务模块C处理主要任务;
[0014]所述的CAN总线是一种标准化的通信协议,由CAN各通信端的通信芯片和两个导线组成,用于Master通信控制器和电机驱动器的通信;
[0015]所述的串口数据线是一种适用了串行接口的数据线,两端均为USB接口,连接Master通信控制器和ROS系统,进行串口通信;
[0016]在ROS系统中,由于ROS是一种分布式处理框架,有多个节点(Nodes)分别为一系列运行程序,每个独立处理子任务,个节点之间通过Topic话题订阅和Service请求实现数据传输,为实现ROS和ESP32的通信,编写独立Node不断编码和解码Serial输出和输入数据,并且采用Service的请求应答机制,与ROS其余节点进行通信,在不影响其余节点正常工作的情况下实现通信,在ROS端使用Cjson库对数据进行编译和解码,cJSON是一个使用C语言编写的JSON数据解析器,具有超轻便,可移植,单文件的特点,配置好库和头文件后,在C语言环境下即可运行使用;
[0017]Master通信控制器的ESP32单片机可以进行双核处理,所以利用FreeRTOS多线程系统,在0核中分出独立线程,有串口通信线程和CAN通信线程,在串串口线程中不断循环对从ROS系统串口输入的数据进行Json解码,再将其余线程的全局数据进行Json编码通过串口输出至ROS系统,在CAN通信线程,利用CAN通信接收和发送电机驱动器的数据和指令,在ESP32端,可在Arduino框架下进行编程,利用ArduinoJson库对数据进行编译和解码。
[0018]一种基于串口通信和CAN总线通信的机器人通信方法,该方法的步骤包括:
[0019]第一步,ROS系统作为机器人上位机,根据用户的交互指令生成机械臂各关节的运动指令,ROS系统的串口通信模块B将关节运动指令经过JSON编码后通过串口数据线传输,Master通信控制器的串口通信模块A接收到串口数据并对数据进行JSON解码获取机械臂各关节的运动指令;
[0020]第二步,Master通信控制器的CAN通信模块A,将机械臂各关节的运动指令发布至CAN总线,电机驱动中的CAN通信模块C依据IP,获取对应的运动指令,电机驱动的任务模块C,根据运动指令运动至指定位置;
[0021]第三步,电机驱动模块中的任务模块C对电机位置进行检测,并将检测数据通过CAN通信模块A发布至CAN总线中,Master通信控制器的CAN通信模块A接收各关节对应的位置信息;
[0022]第四步,Master通信控制器中的串口通信模块A将CAN通信模块A接收到的位置信息进行JSON编码,并通过串口数据线进行传输,ROS的串口通信模块B接收串口数据,并进行JSON解码得到各关节的位置信息,ROS系统的任务模块A得到关节的位置反馈信息,更新机械臂状态信息。
[0023]有益效果
[0024](1)本通信架构使上位机控制与机器人底层硬件控制完全解耦,通信接口基于串
口与JSON数据格式,无需设计整个通信链路,只根据需求灵活调整JSON数据内容,让用户专注于上层开发,提高了开发效率,减少了使用风险。
[0025](2)本通信架构利用ROS系统下的node独立节点和ESP32中并行线程实现,在实现通信的同时不影响上位机ROS系统和驱动器主要功能的运行。在ROS架构下编写node作为客户端绑定通信服务函数,受到服务函数激发则自动执行,ROS的并行架构使得通信节点与主任务节点并行运行,不受影响。在电机驱动器中,ESP32设定并行线程,电机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于该通信架构包括Master通信控制器、ROS系统、若干个电机驱动器、CAN总线和串口数据线;所述的Master通信控制器包括CAN通信模块A和串口通信模块A;所述的ROS系统包括主任务模块B和串口通信模块B所述的电机驱动器包括CAN通信模块C和任务模块C;所述的Master通信控制器的CAN通信模块A通过CAN总线与电机驱动器的CAN通信模块C连接,并进行信息交互;所述的Maser通信控制器的串口通信模块A通过串口数据线与ROS系统的串口通信模块B相连接,利用Json数据结构进行串联通信;所述的ROS系统的串口通信模块B与Master的串口通信模块A进行通信;所述的电机驱动器的CAN通信模块C与Master通信控制器的CAN通信模块A进行通信交互。2.根据权利要求1所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:所述的Master通信控制器由ESP32单片机实现,Master通信控制器的CAN通信模块A与电机驱动器的CAN通信模块C利用CAN通信技术进行信息交互。3.根据权利要求1或2所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:所述的ROS系统的主任务模块B用于处理主要任务;所述的电机驱动器的任务模块C处理主要任务。4.根据权利要求1所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:所述的CAN总线是一种标准化的通信协议,由CAN各通信端的通信芯片和两个导线组成,用于Master通信控制器和电机驱动器的通信。5.根据权利要求1所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:所述的串口数据线是一种适用了串行接口的数据线,两端均为USB接口,连接Master通信控制器和ROS系统,进行串口通信。6.根据权利要求1所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:在ROS系统中,有多个节点分别为一系列运行程序,每个独立处理子任务,两个节点之间通过Topic话题...

【专利技术属性】
技术研发人员:吕茂斌解博炜董娟刘格远杨先芝邓方陈杰
申请(专利权)人:北京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1