[go: up one dir, main page]

CN116112310B - 一种基于串口通信和总线通信的机器人通信架构及通信方法 - Google Patents

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

Info

Publication number
CN116112310B
CN116112310B CN202310042145.7A CN202310042145A CN116112310B CN 116112310 B CN116112310 B CN 116112310B CN 202310042145 A CN202310042145 A CN 202310042145A CN 116112310 B CN116112310 B CN 116112310B
Authority
CN
China
Prior art keywords
communication
serial port
module
data
ros
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310042145.7A
Other languages
English (en)
Other versions
CN116112310A (zh
Inventor
吕茂斌
解博炜
董娟
刘格远
杨先芝
邓方
陈杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202310042145.7A priority Critical patent/CN116112310B/zh
Publication of CN116112310A publication Critical patent/CN116112310A/zh
Application granted granted Critical
Publication of CN116112310B publication Critical patent/CN116112310B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Manipulator (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

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

Description

一种基于串口通信和总线通信的机器人通信架构及通信方法
技术领域
本发明涉及一种基于串口通信和总线通信的机器人通信架构及通信方法,属于机器人控制协议体系技术领域,具体为一种基于Json数据格式的串口通信和CAN总线通信的串联式机械臂通信架构。
背景技术
在这个日新月异的时代,智能机器人已经在生产生活中占据了重要地位。生产生活中的大多数工业机械臂都为6自由度机械臂,能实现机械臂末端在三维空间中无约束运动。桌面级机械臂所面对的任务类型复杂多样,因此为完成各种任务需要机械臂有足够多的自由度。无论是工业上的机械臂还是小型的桌面级机器人,都需要对机器人的各个关节进行分别控制。
总线技术在这种对多个节点同时进行控制的情况中应用广泛,而CAN总线得益于其抗干扰能力强、接线方式简单、传输速度快等优点无疑是进行机械臂电机连接的好选择。但是将上位机接入CAN总线并不是一个很好的选择。首先,上位机的开发硬件多为个人电脑或服务器,而目前主流的绝大多数电脑、服务器并不支持CAN总线直接连接,需要外部转接设备才能够实现CAN总线通信。其次,CAN总线数据结构复杂,底层开发难度大,用户调用底层接口风险较高,不利于初学者进行学习。最后,将上位机直接接入CAN总线会导致上位机与关节执行机构高度耦合,不利于在此基础上进行二次开发。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提出一种基于串口通信和总线通信的机器人通信架构及通信方法,旨在实现由基于Json的ROS与ESP32单片机的通信和ESP32单片机的CAN通信组合,建立机器人通信体系,利用串口实现ROS与ESP32的物理连接,通过Json数据格式进行通信,在ROS端编写Service,对串口输出和输入数据分别进行Josn解码和编码,在ESP32端利用FreeRTOS多线程,编写独立线程对串口输出输入进行Json解码和编写,以此实现ROS节点与ESP32单片机的通信功能,同时,ESP32作为CAN总线中的一个节点,对机械臂关节的电机进行任务分发与反馈数据收集,实现ROS到机械臂电机的控制数据流,以及机械臂电机到ROS的反馈数据流。
本发明的技术解决方案是:
一种基于串口通信和CAN总线通信的机器人通信架构,该通信架构包括Master通信控制器、ROS系统、若干个电机驱动器、CAN总线和串口数据线;
所述的Master通信控制器包括CAN通信模块A和串口通信模块A;
所述的ROS系统包括主任务模块B和串口通信模块B
所述的电机驱动器包括CAN通信模块C和任务模块C;
所述的Master通信控制器由ESP32单片机实现,Master通信控制器的CAN通信模块A通过CAN总线与电机驱动器的CAN通信模块C连接,并利用CAN通信技术进行信息交互;
所述的Maser通信控制器的串口通信模块A通过串口数据线与ROS系统的串口通信模块B相连接,利用Json数据结构进行串联通信;
所述的ROS系统的主任务模块B用于处理主要任务,ROS系统的串口通信模块B与Master的串口通信模块A进行通信;
所述的电机驱动器的CAN通信模块C与Master通信控制器的CAN通信模块A进行通信交互,电机驱动器的任务模块C处理主要任务;
所述的CAN总线是一种标准化的通信协议,由CAN各通信端的通信芯片和两个导线组成,用于Master通信控制器和电机驱动器的通信;
所述的串口数据线是一种适用了串行接口的数据线,两端均为USB接口,连接Master通信控制器和ROS系统,进行串口通信;
在ROS系统中,由于ROS是一种分布式处理框架,有多个节点(Nodes)分别为一系列运行程序,每个独立处理子任务,个节点之间通过Topic话题订阅和Service请求实现数据传输,为实现ROS和ESP32的通信,编写独立Node不断编码和解码Serial输出和输入数据,并且采用Service的请求应答机制,与ROS其余节点进行通信,在不影响其余节点正常工作的情况下实现通信,在ROS端使用Cjson库对数据进行编译和解码,cJSON是一个使用C语言编写的JSON数据解析器,具有超轻便,可移植,单文件的特点,配置好库和头文件后,在C语言环境下即可运行使用;
Master通信控制器的ESP32单片机可以进行双核处理,所以利用FreeRTOS多线程系统,在0核中分出独立线程,有串口通信线程和CAN通信线程,在串串口线程中不断循环对从ROS系统串口输入的数据进行Json解码,再将其余线程的全局数据进行Json编码通过串口输出至ROS系统,在CAN通信线程,利用CAN通信接收和发送电机驱动器的数据和指令,在ESP32端,可在Arduino框架下进行编程,利用ArduinoJson库对数据进行编译和解码。
一种基于串口通信和CAN总线通信的机器人通信方法,该方法的步骤包括:
第一步,ROS系统作为机器人上位机,根据用户的交互指令生成机械臂各关节的运动指令,ROS系统的串口通信模块B将关节运动指令经过JSON编码后通过串口数据线传输,Master通信控制器的串口通信模块A接收到串口数据并对数据进行JSON解码获取机械臂各关节的运动指令;
第二步,Master通信控制器的CAN通信模块A,将机械臂各关节的运动指令发布至CAN总线,电机驱动中的CAN通信模块C依据IP,获取对应的运动指令,电机驱动的任务模块C,根据运动指令运动至指定位置;
第三步,电机驱动模块中的任务模块C对电机位置进行检测,并将检测数据通过CAN通信模块A发布至CAN总线中,Master通信控制器的CAN通信模块A接收各关节对应的位置信息;
第四步,Master通信控制器中的串口通信模块A将CAN通信模块A接收到的位置信息进行JSON编码,并通过串口数据线进行传输,ROS的串口通信模块B接收串口数据,并进行JSON解码得到各关节的位置信息,ROS系统的任务模块A得到关节的位置反馈信息,更新机械臂状态信息。
有益效果
(1)本通信架构使上位机控制与机器人底层硬件控制完全解耦,通信接口基于串口与JSON数据格式,无需设计整个通信链路,只根据需求灵活调整JSON数据内容,让用户专注于上层开发,提高了开发效率,减少了使用风险。
(2)本通信架构利用ROS系统下的node独立节点和ESP32中并行线程实现,在实现通信的同时不影响上位机ROS系统和驱动器主要功能的运行。在ROS架构下编写node作为客户端绑定通信服务函数,受到服务函数激发则自动执行,ROS的并行架构使得通信节点与主任务节点并行运行,不受影响。在电机驱动器中,ESP32设定并行线程,电机的主任务线程和CAN通信线程并行运行。
(3)本通信架构,实现高速通信。ROS端编写客户端,有数据发送任务则会激发运行并利用Cjson库进行编码输出,且将作为独立线程循环发送。Mater通信控制器将缓存区间的所有数据全部接受,将缓存区内数据全部读入并逐个检测“{”和“}”符号,将“{}”之间的内容作为完整json结构体中并利用ArduinoJosn库进行解码,并利用CAN通信线程进行发送。同时,Master通信控制器不断将CAN通信得到的电机驱动器反馈数据,进行JSON编码不断循环发送给ROS上位机。ROS上位机中的Serial接收节点,将串口中缓存区数据全部读出进行JSON数据结构解析并解码获得所需反馈数据。在整个通信架构中,采用串口通信和CAN通信相结合,在串口通信中发送方不断循环更新发送,接收方将缓存器中所有数据读取并解析,在CAN通信中也是应答式交互不断循环进行,所以能实现高速通信。
附图说明
图1为本发明的通信架构组成示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步说明。
实施例
一种基于串口通信和CAN总线通信的机器人通信架构,该通信架构包括Master通信控制器、ROS系统、6个电机驱动器、CAN总线和串口数据线;
所述的Master通信控制器包括CAN通信模块A和串口通信模块A;
所述的ROS系统包括主任务模块B和串口通信模块B
所述的电机驱动器包括CAN通信模块C和任务模块C;
所述的Master通信控制器由ESP32单片机实现,Master通信控制器的CAN通信模块A通过CAN总线与电机驱动器的CAN通信模块C连接,并利用CAN通信技术进行信息交互;
所述的Maser通信控制器的串口通信模块A通过串口数据线与ROS系统的串口通信模块B相连接,利用Json数据结构进行串联通信;
所述的ROS系统的主任务模块B用于处理主要任务,ROS系统的串口通信模块B与Master的串口通信模块A进行通信;
所述的电机驱动器的CAN通信模块C与Master通信控制器的CAN通信模块A进行通信交互,电机驱动器的任务模块C处理主要任务;
所述的CAN总线是一种标准化的通信协议,由CAN各通信端的通信芯片和两个导线组成,用于Master通信控制器和电机驱动器的通信;
所述的串口数据线是一种适用了串行接口的数据线,两端均为USB接口,连接Master通信控制器和ROS系统,进行串口通信;
在ROS系统中,由于ROS是一种分布式处理框架,有多个节点(Nodes)分别为一系列运行程序,每个独立处理子任务,个节点之间通过Topic话题订阅和Service请求实现数据传输,为实现ROS和ESP32的通信,编写独立Node不断编码和解码Serial输出和输入数据,并且采用Service的请求应答机制,与ROS其余节点进行通信,在不影响其余节点正常工作的情况下实现通信,在ROS端使用Cjson库对数据进行编译和解码,cJSON是一个使用C语言编写的JSON数据解析器,具有超轻便,可移植,单文件的特点,配置好库和头文件后,在C语言环境下即可运行使用;
Master通信控制器的ESP32单片机可以进行双核处理,所以利用FreeRTOS多线程系统,在0核中分出独立线程,有串口通信线程和CAN通信线程,在串串口线程中不断循环对从ROS系统串口输入的数据进行Json解码,再将其余线程的全局数据进行Json编码通过串口输出至ROS系统,在CAN通信线程,利用CAN通信接收和发送电机驱动器的数据和指令,在ESP32端,可在Arduino框架下进行编程,利用ArduinoJson库对数据进行编译和解码。
使用ROS系统中Moveit作为机械臂上位机,在上位机中输入圆形轨迹。Moveit将圆形轨迹进行运动学逆解算,得到机械臂关节空间下的轨迹。ROS系统中的串口通信模块B作为独立节点与其他任务节点并行运行,将关节控制指令通过串口数据线,传输至Master通信控制器中串口通信模块A。Master通信控制器中串口通信模块A和CAN通信模块A是双线程并行处理,CAN通信模块A通过全局变量得到关节控制指令包括电机的运动速度和位置。Master通信控制器的CAN通信模块A将各个电机的运动速度和位置赋值于相应IP,并发布至CAN总线中。电机驱动器中CAN通信模块C经过蒙板滤波后获取所需IP的数据信息,得到电机的运动速度和位置。电机驱动器的任务模块C按照运动指令以目标速度运动至目标位置。电机驱动器的任务模块C利用磁编码器检测电机位置并解算获得电机速度,CAN通信模块C将电机的实时位置和速度信息赋值于相应IP发布至CAN总线中。Master通信控制器的CAN通信模块A接收数据获得各电机的速度和位置信息,得到电机的反馈数据,串口通信模块A将反馈数据利用串口数据传输至ROS系统的串口通信模块B。利用ROS系统中的话题发布与订阅,主任务模块B获得电机的反馈数据,实现闭环控制。

Claims (5)

1.一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于该通信架构包括Master通信控制器、ROS系统、若干个电机驱动器、CAN总线和串口数据线;
所述的Master通信控制器包括CAN通信模块A和串口通信模块A;
所述的ROS系统包括主任务模块B和串口通信模块B
所述的电机驱动器包括CAN通信模块C和任务模块C;
所述的Master通信控制器的CAN通信模块A通过CAN总线与电机驱动器的CAN通信模块C连接,并进行信息交互;
所述的Master通信控制器的串口通信模块A通过串口数据线与ROS系统的串口通信模块B相连接,利用Json数据结构进行串联通信;
所述的ROS系统的串口通信模块B与Master的串口通信模块A进行通信;
所述的电机驱动器的CAN通信模块C与Master通信控制器的CAN通信模块A进行通信交互;
所述的Master通信控制器由ESP32单片机实现,Master通信控制器的CAN通信模块A与电机驱动器的CAN通信模块C利用CAN通信技术进行信息交互;
在ROS系统中,有多个节点分别为一系列运行程序,每个独立处理子任务,两个节点之间通过Topic话题订阅和Service请求实现数据传输,为实现ROS和ESP32的通信,编写独立Node不断编码和解码Serial输出和输入数据,并且采用Service的请求应答机制,与ROS其余节点进行通信,在ROS端使用Cjson库对数据进行编译和解码;
对Master通信控制器的ESP32单片机进行双核处理,在0核中分出独立线程,有串口通信线程和CAN通信线程,在串口线程中不断循环对从ROS系统串口输入的数据进行Json解码,再将其余线程的全局数据进行Json编码通过串口输出至ROS系统,在CAN通信线程,利用CAN通信接收和发送电机驱动器的数据和指令,在ESP32端,在Arduino框架下进行编程,利用ArduinoJson库对数据进行编译和解码。
2.根据权利要求1所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:
所述的ROS系统的主任务模块B用于处理主要任务;
所述的电机驱动器的任务模块C处理主要任务。
3.根据权利要求1所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:
所述的CAN总线是一种标准化的通信协议,由CAN各通信端的通信芯片和两个导线组成,用于Master通信控制器和电机驱动器的通信。
4.根据权利要求1所述的一种基于串口通信和CAN总线通信的机器人通信架构,其特征在于:
所述的串口数据线是一种适用了串行接口的数据线,两端均为USB接口,连接Master通信控制器和ROS系统,进行串口通信。
5.一种基于串口通信和CAN总线通信的机器人通信方法,其特征在于该方法的步骤包括:
第一步,ROS系统作为机器人上位机,根据用户的交互指令生成机械臂各关节的运动指令,ROS系统的串口通信模块B将关节运动指令经过JSON编码后通过串口数据线传输,Master通信控制器的串口通信模块A接收到串口数据并对数据进行JSON解码获取机械臂各关节的运动指令;
第二步,Master通信控制器的CAN通信模块A,将机械臂各关节的运动指令发布至CAN总线,电机驱动中的CAN通信模块C依据IP,获取对应的运动指令,电机驱动的任务模块C,根据运动指令运动至指定位置;
第三步,电机驱动模块中的任务模块C对电机位置进行检测,并将检测数据通过CAN通信模块A发布至CAN总线中,Master通信控制器的CAN通信模块A接收各关节对应的位置信息;
第四步,Master通信控制器中的串口通信模块A将CAN通信模块A接收到的位置信息进行JSON编码,并通过串口数据线进行传输,ROS的串口通信模块B接收串口数据,并进行JSON解码得到各关节的位置信息,ROS系统的任务模块A得到关节的位置反馈信息,更新机械臂状态信息。
CN202310042145.7A 2023-01-12 2023-01-12 一种基于串口通信和总线通信的机器人通信架构及通信方法 Active CN116112310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310042145.7A CN116112310B (zh) 2023-01-12 2023-01-12 一种基于串口通信和总线通信的机器人通信架构及通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310042145.7A CN116112310B (zh) 2023-01-12 2023-01-12 一种基于串口通信和总线通信的机器人通信架构及通信方法

Publications (2)

Publication Number Publication Date
CN116112310A CN116112310A (zh) 2023-05-12
CN116112310B true CN116112310B (zh) 2024-07-05

Family

ID=86261050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310042145.7A Active CN116112310B (zh) 2023-01-12 2023-01-12 一种基于串口通信和总线通信的机器人通信架构及通信方法

Country Status (1)

Country Link
CN (1) CN116112310B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119188786B (zh) * 2024-11-27 2025-03-21 上海傅利叶智能科技有限公司 执行器通信系统、方法及机器人

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103273489A (zh) * 2013-05-10 2013-09-04 上海大学 基于主从遥操作机械臂的机器人控制系统及方法
CN107943458A (zh) * 2017-11-20 2018-04-20 上海木爷机器人技术有限公司 一种机器人开发系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10265848B2 (en) * 2014-07-08 2019-04-23 Beihang University Robotic hybrid system application framework based on multi-core processor architecture
CN112091978A (zh) * 2020-09-24 2020-12-18 哈尔滨工业大学 机械臂实时控制系统
CN112936276B (zh) * 2021-02-05 2023-07-18 华南理工大学 基于ros系统的类人机器人关节多级控制装置及方法
CN114237221A (zh) * 2021-11-16 2022-03-25 山东大学 基于中心映射的低延迟组合体机器人运动控制系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103273489A (zh) * 2013-05-10 2013-09-04 上海大学 基于主从遥操作机械臂的机器人控制系统及方法
CN107943458A (zh) * 2017-11-20 2018-04-20 上海木爷机器人技术有限公司 一种机器人开发系统

Also Published As

Publication number Publication date
CN116112310A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN109831354B (zh) 基于opc ua工业通讯协议的虚拟调试系统
CN105278940B (zh) 一种基于多核处理器架构的机器人混合系统应用框架
WO2020103706A1 (zh) 一种数据处理系统及数据处理方法
CN101592951B (zh) 分布式仿人机器人通用控制系统
CN100514234C (zh) 基于pc机的开放式数控系统
CN103324173B (zh) 基于中间件的多异构机器人协作方法
CN116112310B (zh) 一种基于串口通信和总线通信的机器人通信架构及通信方法
CN111360813B (zh) 一种基于边缘云服务的多机器人控制器
CN102736553A (zh) 一种基于虚拟机床模型的云端数控系统实现方法及系统
CN108406764A (zh) 智能开放型服务机器人操作系统及方法
CN103538069B (zh) 一种机器人的控制方法以及装置与系统
CN112091978A (zh) 机械臂实时控制系统
WO2018192178A1 (zh) 机器人点到点运动控制方法和系统
CN101739220A (zh) 一种多控制器存储阵列的设计方法
CN111427310A (zh) 一种工业机器人控制器运行系统
CN110861085A (zh) 一种基于VxWorks的机械臂指令解释器系统
CN109947539A (zh) 一种机器人控制器
CN116713992B (zh) 一种用于人形机器人的电气控制系统、方法及装置
CN117872942A (zh) 一种用于加速器的功能可配置的数字化控制系统
CN203600249U (zh) 一种工业机器人运动控制装置
CN115582841A (zh) 一种娱乐机械臂的模块化控制系统及方法
CN114399033B (zh) 基于神经元指令编码的类脑计算系统和计算方法
CN114952820B (zh) 一种多机器人协同控制实现方法及系统
CN114442506A (zh) 一种基于虚拟机器人控制器仿真调试平台及其调试方法
JP7632034B2 (ja) 情報処理装置、方法およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant