CN112398897B - 一种基于Socket通信的无线遥控机器人系统 - Google Patents
一种基于Socket通信的无线遥控机器人系统 Download PDFInfo
- Publication number
- CN112398897B CN112398897B CN202010332663.9A CN202010332663A CN112398897B CN 112398897 B CN112398897 B CN 112398897B CN 202010332663 A CN202010332663 A CN 202010332663A CN 112398897 B CN112398897 B CN 112398897B
- Authority
- CN
- China
- Prior art keywords
- robot
- client
- cloud server
- message
- communication
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1658—Programme controls characterised by programming, planning systems for manipulators characterised by programming language
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1689—Teleoperation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/10—Detection; Monitoring
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/30—Control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Robotics (AREA)
- General Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种基于Socket通信的无线遥控机器人系统设计方案,包括有机器人、云端服务器和客户端,本发明以Linux系统为开发平台,采用Python‑Socket脚本进行通信,基于Python语言编写控制程序,机器人、云端服务器和客户端通过云端服务器进行通信桥接后实现互联互通,实现机器人能够通过客户端进行控制,也可以通过调用云端服务器API来进行云端远程控制,达到一对多,多对多控制的效果。
Description
技术领域
本发明涉及智能机器人和物联网领域,特别涉及一种基于Socket通信的无线遥控机器人系统。
背景技术
目前机器人的应用日益广泛,许多高校和研究机构都加入了对机器人的相关研究。而将物联网技术与机器人控制相融合则是业界的一个研究重点。目前业界较为出名的机器人控制系统ROS,虽然使用广泛,但其API编写非常复杂,主要用于复杂的多自由度机器人控制,对高校学生的学习研究并不友好。
发明内容
发明目的:本实用发明目的是提供一种可读性高,扩展性好的基于Socket通信的无线遥控机器人系统设计方案,能够将机器人融入到物联网系统中,简化工程师的开发流程,提高控制的快速性和稳定性,同时便于实现机器人的有限和无线调试。
技术方案:本发明所述的一种基于Socket通信的无线遥控机器人系统,包括有机器人、云端服务器和客户端,所述机器人硬件结构包括有外壳、Linux主控制器、微控制器、电源/通信变换板、空心杯直流电机、电机驱动器、机械臂、传感器和电源;所述机器人软件模块包括有底盘运动模块、传感器控制模块、机械臂控制模块、Socket网络通信模块;
所述云端服务器包括一个ServerSocket包,所述云端服务器中ServerSocket包中包括有基础服务器Socket收发API、机器人报文合成API、客户端报文合成API、机器人报文解析API和客户端报文解析API,所述ServerSocket包可独立运行,也可作为被调用的API;
所述云端服务器启动后将启动三个子线程:主线程、机器人端处理线程和客户端处理线程,所述云端服务器启动的三个子线程中,主线程用于输出机器人、客户端的连接状态和收发包的内容;机器人端处理线程用于实时检查机器人通信,并用于发送机器人报文,同时定义机器人端监听端口为9998,用户可查看空闲端口并修改监听端口;客户端处理线程用于实时检查客户端通信,并用于发送客户端报文,同时定义客户端监听端口为9999,用户可查看空闲端口并修改监听端口;
所述云端服务器上设置有机器人监听端口和客户端监听端口;
所述客户端软件包含客户端通信协议包(ClientSocket)和远程键盘控制脚本(ClientRemoteControl);所述客户端通信协议包(ClientSocket)中包含基础Socket通信方法、客户端报文合成和解析方法,可以独立运行,也可以作为API被调用;所述远程键盘控制脚本(ClientRemoteControl)中包含有基础键盘监听器API,可用于云端控制调试,也可用于用户开发;
所述机器人、云端服务器和客户端之间的工作流程包括以下步骤:
S1:机器人、云端服务器和客户端通过云端服务器进行通信桥接,桥接后云端服务器与机器人之间、机器人与云端服务器之间、云端服务器与客户端之间以及客户端与云端服务器之间通过互相之间的通信报头来判断通信是否正常,通信不正常则尝试重新连接;
S2:机器人、云端服务器和客户端两两之间通信正常后云端服务器运行云端服务器脚本,对机器人和客户端进行双端监听状态,并判断机器人和客户端的连接状态,机器人或客户端任何一方未连接都无法进入控制流程,服务器会持续呼叫对应目标,直到与目标连接;
S3:在云端服务器与机器人、客户端均建立有效连接后,云端服务器接收客户端报文,报文解析有效后云端服务器会向客户端发送报头以告知报文解析成功;
S4:云端服务器读取解析有效的信息,重新合成对应报文发送给机器人,机器人解析报文成功后执行报文中指令并向服务器发送报文告知报文解析成功和机器人连接正常,完成一次云端控制,进入下一次通信流程。
作为优选,所述机器人中Linux主控制器和电源/通信变换板之间采用RS232接口通信,Linux主控制器和其他硬件结构之间统一采用UART-TTL通信。
作为优选,所述机器人中软件模块调用有电机驱动包(MotorDriver)、机器人姿态变换包(RobotSport)、通信协议包(RobotSocket)、有线控制调试脚本(KeyboardDirectControl)、无线控制调试脚本(RobotRemoteControl)。
作为优选,所述S1中云端服务器与机器人之间的标准通信报头为Robot_Msg;机器人与云端服务器之间的标准通信报头为ServerMsg;云端服务器与客户端之间的标准通信报头为ClientMsg;客户端与云端服务器之间的标准报头为ServerMsg。
作为优选,所述机器人、云端服务器和客户端报文解析的流程一致,包括有以下步骤:
S3.1:本系统中Socket接收报文,接收报文后判断报头是否正确,正确则反馈本机-目标报头,目标则在识别该报头后判断连接正常;
S3.2:本系统中接收报文结束后,本机将二进制报文进行utf-8解码转换成字符串式的报文;
S3.3:本系统中对字符串式报文进行解析,从变量中读取报文,首先判断报头,报头正确后判断模式,模式正确则将模式解析并存储,再判断动作是否正确,正确则将动作后对应参数解析并存储,最后判断报尾,若报尾正确则将解析状态标志位设为成功。
S3.4:本系统中解析过程中有一个环节出错则将解析状态标志位设为失败,防止主程序读取错误的指令和参数。
作为优选,所述S3.1中Socket接收均采用守护线程。
作为优选,所述机器人端软件部分、云服务器软件部分和客户端软件部分的控制程序选用Python语言编写。
有益效果:本发明通用过基于Python语言编写的控制程序,提供了一种可读性高,扩展性好的方案,便于机器人的有线和无线调试,同时通过机器人、云端服务器和客户端的互联互通,实现了机器人能够通过客户端进行控制,也可以通过调用云端服务器API来进行云端远程控制,达到一对多,多对多控制的效果。
附图说明
图1是本发明的总体系统结构;
图2是机器人端的硬件结构;
图3是本发明的软件结构;
图4是本发明的系统运行流程;
图5是本发明中报文解析流程;
图6是本发明通过SSH终端软件测试后的输出截图。
具体实施方式
下面将结合本发明实例中的附图,对本发明实例中的技术方案进行清楚完整地描述,本实例描述的仅是本发明的一部分实例不是全部的实例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
如图1所示,为本发明的总体系统结构,包括有机器人、云端服务器和客户端,云端服务器执行云端控制脚本,循环监听9999和9998端口,其中9999端口用于与客户端通信,9998端口用于与机器人通信。在机器人、云端服务器和客户端连接后,可以通过云端服务器进行通信桥接,互相通信,机器人可以通过客户端进行控制,也可以通过调用云端服务器API,通过云顿服务器进行云端控制。
如图2所示,为机器人端的硬件结构,本实施例中机器人包括有外壳、Linux主控制器、微控制器、电源/通信变换板、空心杯直流电机、电机驱动器、机械臂、传感器和电源,其中电源采用24V10A锂电池,通过电源/通信变换板将24V10A变换为可供Linux主控制器Jetson Nano使用的5V5A电源,同时将24V10A电源桥接到两个电机驱动器上用以为驱动器和空心杯直流电机供电。主控器通过RS232接口与电机驱动器通信,电源/通信变换板装有CP2102和MAX3232两种芯片,可以将主控器的USB串口信号转化为RS232信号用于控制直流电机。机械臂和传感器由微控制器直接控制,主控制器通过控制微控制器从而间接控制机械臂和光电传感器,控制机械臂的微控制器采用ATmega2560,传感器的微控制器则采用STM32F103RCT6。两种微控制器均采用串口通信的方式与主控制器建立联系。
如图3所示,为本发明的软件结构,包含有机器人、云端服务器、客户端三个部分,全部选用Python语言编写,其中机器人软件部分主要分为四个部分:底盘运动模块、传感器控制模块、机械臂控制模块、Socket网络通信模块。其中其中底盘运动模块继承了电机驱动模块,包含有各种机器人底盘的基础运动类和方法,在实例化相应模式类后调用对象的相应运动方法即可控制机器人进行相应的运动;传感器控制模块是为了与微控制器STM32建立通信,STM32可连接一些适合采用GPIO控制的传感器或其他模块,通过STM32读取传感器状态,再由主控器发送读数据指令,STM32即可将传感器状态发送至主控制器;机械臂模块是为了与微控制器ATmega2560建立通信,ATmega2560外加扩展板通过GPIO对机械臂进行直接控制并实时读取机械臂旋转角度,主控器通过USB串口向ATmega2560发送机械臂各关节角度数据来控制机械臂姿态,主控器也可通过发送读数据指令从ATmega2560获取机械臂各关节的实时角度;Socket网络通信模块,是机器人建立远程连接的核心模块,包含了本设计定义的网络通信报文协议和报文合成解析、报文发送接收、连接状态判断等方法,该模块将机器人与云端服务器相连接,建立机器人与云端服务器的通信通道,并可实时判断通信状态,若因网络问题失去与云端服务器的连接,该模块将尝试与云端服务器重新建立通信。机器人主程序通过调用以上四模块的API,将底盘运动、传感器、机械臂、网络控制结合起来。
云端服务器端软件包含一个ServerSocket包,其包含了基础服务器Socket收发、机器人报文合成、客户端报文合成、机器人报文解析和客户端报文解析的功能,能够独立运行,也能够作为被调用的API;云端服务器启动后将启动三个子线程:主线程、机器人端处理线程和客户端处理线程,其中主线程用于输出机器人、客户端的连接状态和收发包的内容;机器人端处理线程用于实时检查机器人通信,并用于发送机器人报文,同时定义机器人端监听端口为9998,用户可查看空闲端口并修改监听端口;客户端处理线程用于实时检查客户端通信,并用于发送客户端报文,同时定义客户端监听端口为9999,用户可查看空闲端口并修改监听端口。
客户端软件包括有客户端通信协议包(ClientSocket)和远程键盘控制脚本(ClientRemoteControl),其中客户端通信协议包(ClientSocket)中包含基础Socket通信方法、客户端报文合成和解析方法,可以独立运行,也可以作为API被调用,客户端通信协议包(ClientSocket)将将客户端与云端服务器相连接,建立客户端与云端服务器的通信通道,并可实时判断通信状态,若因网络问题失去与服务器的连接,模块将尝试与服务器重新建立通信;远程键盘控制脚本(ClientRemoteControl)中包含有基础键盘监听器API,可用于云端控制调试,也可用于用户开发,用户可以通过远程键盘控制脚本(ClientRemoteControl)调用客户端客户端通信协议包(ClientSocket)来实现对机器人的相应控制操作。
如图4所示为机器人、云端服务器和客户端之间的工作流程,包括以下步骤:
S1:机器人、云端服务器和客户端通过云端服务器进行通信桥接,桥接后云端服务器与机器人之间、机器人与云端服务器之间、云端服务器与客户端之间以及客户端与云端服务器之间通过互相之间的通信报头来判断通信是否正常,通信不正常则尝试重新连接;
S2:机器人、云端服务器和客户端两两之间通信正常后云端服务器运行云端服务器脚本,对机器人和客户端进行双端监听状态,并判断机器人和客户端的连接状态,机器人或客户端任何一方未连接都无法进入控制流程,服务器会持续呼叫对应目标,直到与目标连接;
S3:在云端服务器与机器人、客户端均建立有效连接后,云端服务器接收客户端报文,报文解析有效后云端服务器会向客户端发送报头以告知报文解析成功;
S4:云端服务器读取解析有效的信息,重新合成对应报文发送给机器人,机器人解析报文成功后执行报文中指令并向服务器发送报文告知报文解析成功和机器人连接正常,完成一次云端控制,进入下一次通信流程。
其中S1中云端服务器与机器人之间的标准通信报头为Robot_Msg;机器人与云端服务器之间的标准通信报头为ServerMsg;云端服务器与客户端之间的标准通信报头为ClientMsg;客户端与云端服务器之间的标准报头为ServerMsg。
如图5所示为机器人、云端服务器和客户端的报文解析流程,三端的解析流程一致,包括有以下步骤:
S3.1:本机Socket采用守护线程,接收报文,接收报文后判断报头是否正确,正确则反馈本机-目标报头,目标则在识别该报头后判断连接正常;
S3.2:本机接收报文结束后,本机将二进制报文进行utf-8解码转换成字符串式的报文;
S3.3:本机对字符串式报文进行解析,从变量中读取报文,首先判断报头,报头正确后判断模式,模式正确则将模式解析并存储,再判断动作是否正确,正确则将动作后对应参数解析并存储,最后判断报尾,若报尾正确则将解析状态标志位设为成功。
S3.4:本机解析过程中有一个环节出错则将解析状态标志位设为失败,防止主程序读取错误的指令和参数。
本实施例中通信报文的格式如下表所示:
报头:用于检测与云服务器的连接状态和报文解析操作的触发。
模式:由服务器发送用于指示机器人电机的运行模式,例如:
“_Open_____”:开环模式;
“_Current__”:电流反馈模式;
“_Speed____”:速度反馈模式;
“_Position_”:位置反馈模式;
“_CS_______”:电流速度反馈模式;
“_SP_______”:速度位置反馈模式;
“_CP_______”:电流位置反馈模式;
“_CSP______”:电流速度位置反馈模式。
指令名:在给定模式下指示机器人的操作,例如:
“_Forward__”:前进;
“_Back_____”:后退;
“_Left_____”:左转;
“_Right____”:右转;
“_Stop_____”:停止;
“_MvLine___”:按给定距离直线行驶;
“_AngLeft__”:按给定角度左转;
“_AngRight_”:按给定角度右转。
参数值:按照既定参数顺序发送相应的设置参数值,长度不定,但参数与参数之间要用下划线“_”隔开以便解析。
报尾:报文解析器将以报尾作为报文正确接收的标准,当解析器从识别报头开始到识别报尾结束,即视为一次解析成功,解析结果保留在成员变量中,报尾统一为“:MsgEnd”。
用户可以自定义报文,只需满足上述格式即可,自定义报文需满足本机-目标双方可相互识别,否则无效。
如图6所示为本方案在命令行下进行调试,通过SSH终端软件Mobaxterm远程控制服务器、机器人的操作系统后输出的界面截图。
服务器确保ip正确且9999和9998端口未被占用,执行服务端脚本,成功后在机器人、客户端未连接的情况下终端显示如图6中B-1部分,等待客户端、机器人连接。
机器人端启动远程控制主程序脚本,脚本内需正确设置目标服务器的ip和端口,执行成功后终端显示如图6中A-1部分报告连接成功和目标ip。
客户端启动远程控制脚本,脚本内需正确设置目标服务器的ip和端口,执行成功后显示终端如图6中C-1部分显示成功和目标ip。
机器人、客户端与服务器连接成功后,服务器终端显示如图6中B-2部分显示机器人ip和客户端ip。同时客户端开始持续向服务端发送报文,这里循环发送Stop指令是为了保证机器人运行安全。服务器终端在报文解析成功后会显示报文原码和报文解析结果,如图6中B-3部分,此时的指令为速度模式(Speed),停止动作(Stop),速度参数(0),同时对指令重新合成向机器人发送。机器人在解析指令报文成功后按照指令执行相应动作,终端会显示报文解析结果、对应指令和参数,如图6中A-2部分。
在客户端,执行向前指令(默认按住w键),开始发送Forward指令,如图6中C-2部分。服务器解析成功后显示报文和解析结果并在重新合成后发送至机器人,如图6中B-4部分。机器人在接收报文并解析后显示报文解析结果、对应指令和参数,并执行速度模式转速参数1000的操作。此时可以看到机器人向前运动。同理执行其他指令,可以得到类似效果。
当客户端或机器人掉线时,服务器会停止当前操作转为监听失去连接的目标,如图6中B-5部分。其中Client_Recv Disconnect是指客户端失去连接时服务器在执行接收报文操作。在客户端和机器人重新上线后,系统恢复正常。
Claims (7)
1.一种基于Socket通信的无线遥控机器人系统,其特征在于:包括有机器人、云端服务器和客户端;
所述机器人硬件结构包括有外壳、Linux主控制器、微控制器、电源/通信变换板、空心杯直流电机、电机驱动器、机械臂、传感器和电源;所述机器人软件模块包括有底盘运动模块、传感器控制模块、机械臂控制模块、Socket网络通信模块;
所述云端服务器包括一个ServerSocket包,所述云端服务器中ServerSocket包中包括有基础服务器Socket收发API、机器人报文合成API、客户端报文合成API、机器人报文解析API和客户端报文解析API,所述ServerSocket包可独立运行,也可作为被调用的API;
所述云端服务器启动后将启动三个子线程:主线程、机器人端处理线程和客户端处理线程,所述云端服务器启动的三个子线程中,主线程用于输出机器人、客户端的连接状态和收发包的内容;机器人端处理线程用于实时检查机器人通信,并用于发送机器人报文,同时定义机器人端监听端口为9998,用户可查看空闲端口并修改监听端口;客户端处理线程用于实时检查客户端通信,并用于发送客户端报文,同时定义客户端监听端口为9999,用户可查看空闲端口并修改监听端口;
所述云端服务器上设置有机器人监听端口和客户端监听端口;
所述客户端软件包含客户端通信协议包(ClientSocket)和远程键盘控制脚本(ClientRemoteControl);所述客户端通信协议包(ClientSocket)中包含基础Socket通信方法、客户端报文合成和解析方法,可以独立运行,也可以作为API被调用;所述远程键盘控制脚本(ClientRemoteControl)中包含有基础键盘监听器API,可用于云端控制调试,也可用于用户开发;
所述机器人、云端服务器和客户端之间的工作流程包括以下步骤:
S1:机器人、云端服务器和客户端通过云端服务器进行通信桥接,桥接后云端服务器与机器人之间、机器人与云端服务器之间、云端服务器与客户端之间以及客户端与云端服务器之间通过互相之间的通信报头来判断通信是否正常,通信不正常则尝试重新连接;
S2:机器人、云端服务器和客户端两两之间通信正常后云端服务器运行云端服务器脚本,对机器人和客户端进行双端监听状态,并判断机器人和客户端的连接状态,机器人或客户端任何一方未连接都无法进入控制流程,服务器会持续呼叫对应目标,直到与目标连接;
S3:在云端服务器与机器人、客户端均建立有效连接后,云端服务器接收客户端报文,报文解析有效后云端服务器会向客户端发送报头以告知报文解析成功;
S4:云端服务器读取解析有效的信息,重新合成对应报文发送给机器人,机器人解析报文成功后执行报文中指令并向服务器发送报文告知报文解析成功和机器人连接正常,完成一次云端控制,进入下一次通信流程。
2.根据权利要求1所述的一种基于Socket通信的无线遥控机器人系统,其特征在于:所述机器人中Linux主控制器和电源/通信变换板之间采用RS232接口通信,Linux主控制器和其他硬件结构之间统一采用UART-TTL通信。
3.根据权利要求1所述的一种基于Socket通信的无线遥控机器人系统,其特征在于:所述机器人中软件模块调用有电机驱动包(MotorDriver)、机器人姿态变换包(RobotSport)、通信协议包(RobotSocket)、有线控制调试脚本(KeyboardDirectControl)、无线控制调试脚本(RobotRemoteControl)。
4.根据权利要求1所述的一种基于Socket通信的无线遥控机器人系统,其特征在于:所述S1中云端服务器与机器人之间的标准通信报头为Robot_Msg;机器人与云端服务器之间的标准通信报头为ServerMsg;云端服务器与客户端之间的标准通信报头为ClientMsg;客户端与云端服务器之间的标准报头为ServerMsg。
5.根据权利要求1所述的一种基于Socket通信的无线遥控机器人系统,其特征在于:所述机器人、云端服务器和客户端报文解析的流程一致,包括有以下步骤:
S3.1:本系统Socket接收报文,接收报文后判断报头是否正确,正确则反馈本机-目标报头,目标则在识别该报头后判断连接正常;
S3.2:本系统接收报文结束后,本机将二进制报文进行utf-8解码转换成字符串式的报文;
S3.3:本系统对字符串式报文进行解析,从变量中读取报文,首先判断报头,报头正确后判断模式,模式正确则将模式解析并存储,再判断动作是否正确,正确则将动作后对应参数解析并存储,最后判断报尾,若报尾正确则将解析状态标志位设为成功;
S3.4:本系统解析过程中有一个环节出错则将解析状态标志位设为失败,防止主程序读取错误的指令和参数。
6.根据权利要求5所述的一种基于Socket通信的无线遥控机器人系统,其特征在于:所述S3.1中Socket接收均采用守护线程。
7.根据权利要求1所述的一种基于Socket通信的无线遥控机器人系统,其特征在于:所述机器人端软件部分、云服务器软件部分和客户端软件部分的控制程序选用Python语言编写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010332663.9A CN112398897B (zh) | 2020-04-24 | 2020-04-24 | 一种基于Socket通信的无线遥控机器人系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010332663.9A CN112398897B (zh) | 2020-04-24 | 2020-04-24 | 一种基于Socket通信的无线遥控机器人系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112398897A CN112398897A (zh) | 2021-02-23 |
CN112398897B true CN112398897B (zh) | 2022-03-11 |
Family
ID=74602805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010332663.9A Active CN112398897B (zh) | 2020-04-24 | 2020-04-24 | 一种基于Socket通信的无线遥控机器人系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112398897B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338840B (zh) * | 2021-11-08 | 2024-03-22 | 深圳英博达智能科技有限公司 | 基于socket的远程调试方法 |
CN114301891B (zh) * | 2021-12-27 | 2023-10-13 | 北京睿芯高通量科技有限公司 | 一种基于Python的Web服务和Socket客户端交互方法及系统 |
CN115570558B (zh) * | 2022-10-28 | 2023-07-11 | 武汉恒新动力科技有限公司 | 面向被操控对象集群的体感协同遥操作系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795757A (zh) * | 2012-10-30 | 2014-05-14 | 三星电子(中国)研发中心 | 远程控制局域网设备的方法及客户端、服务端 |
CN106850784A (zh) * | 2017-01-17 | 2017-06-13 | 华东交通大学 | 智能主机与云服务之间的通信方法 |
CN107181818A (zh) * | 2017-06-27 | 2017-09-19 | 华南师范大学 | 基于云平台的机器人远端控制和管理系统及方法 |
CN109159125A (zh) * | 2018-09-28 | 2019-01-08 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于ros系统机器人的云服务系统 |
CN110505309A (zh) * | 2019-08-30 | 2019-11-26 | 苏州博众机器人有限公司 | 网络通信方法、装置、设备及存储介质 |
CN110733038A (zh) * | 2019-09-30 | 2020-01-31 | 浙江工业大学 | 工业机器人远程监控及数据处理系统 |
CN111025925A (zh) * | 2019-12-05 | 2020-04-17 | 重庆特斯联智慧科技股份有限公司 | 一种基于云计算的智能家居配备系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104227716B (zh) * | 2014-07-25 | 2016-02-24 | 太仓中科信息技术研究院 | 一种基于遥操作的摄像机器人实时控制方法 |
-
2020
- 2020-04-24 CN CN202010332663.9A patent/CN112398897B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795757A (zh) * | 2012-10-30 | 2014-05-14 | 三星电子(中国)研发中心 | 远程控制局域网设备的方法及客户端、服务端 |
CN106850784A (zh) * | 2017-01-17 | 2017-06-13 | 华东交通大学 | 智能主机与云服务之间的通信方法 |
CN107181818A (zh) * | 2017-06-27 | 2017-09-19 | 华南师范大学 | 基于云平台的机器人远端控制和管理系统及方法 |
CN109159125A (zh) * | 2018-09-28 | 2019-01-08 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于ros系统机器人的云服务系统 |
CN110505309A (zh) * | 2019-08-30 | 2019-11-26 | 苏州博众机器人有限公司 | 网络通信方法、装置、设备及存储介质 |
CN110733038A (zh) * | 2019-09-30 | 2020-01-31 | 浙江工业大学 | 工业机器人远程监控及数据处理系统 |
CN111025925A (zh) * | 2019-12-05 | 2020-04-17 | 重庆特斯联智慧科技股份有限公司 | 一种基于云计算的智能家居配备系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112398897A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112398897B (zh) | 一种基于Socket通信的无线遥控机器人系统 | |
US20230226692A1 (en) | General-purpose computer-based robot control system | |
CN108647028A (zh) | 应用程序信息处理方法和装置 | |
CN110519727A (zh) | 基于中央网关cgw的数据处理方法及cgw | |
CN101291343B (zh) | 一种基于透明代理设备的远程控制方法及其系统 | |
CN109884978A (zh) | 一种用于plc设备调试的远程系统及其方法 | |
CN107526681B (zh) | 一种机器人的测试系统及测试方法 | |
CN114691509B (zh) | 基于鸿蒙系统利用蓝牙通讯进行hdc调试的方法 | |
WO2020088278A1 (zh) | 一种通信方法、装置及相关设备 | |
CN204989857U (zh) | 一种基于先锋机器人的远程控制装置 | |
CN108075947B (zh) | 存储设备、pc端、通信连接连通性的维护方法及系统 | |
CN111866020B (zh) | 一种通讯卡以及一种通讯方法 | |
WO2012010002A1 (zh) | 一种物联网终端java应用的业务调试装置和方法 | |
CN109634203B (zh) | 基于数控控制器对io端进行控制的控制系统及相应的方法 | |
Nikolov et al. | Research of communication between IoT cloud structure, android application and IoT device using TCP sockets | |
CN113138779B (zh) | 基于多功能接口的fpga在线程序更新装置及方法 | |
CN110971708B (zh) | 安卓与Ubuntu系统信息传输方法及系统、设备、介质 | |
CN110995789B (zh) | 一种三端直流输电的站间通信方法及系统 | |
CN106374621A (zh) | 一种基于北斗rdss的远程控制电源开关 | |
CN112235346A (zh) | 一种基于串口连接的数据通讯方法及系统 | |
CN217389013U (zh) | 一种通用蓝牙数据协议分析装置 | |
CN112039743B (zh) | 一种ASI总线和EtherCAT总线互联互通的装置 | |
CN215848184U (zh) | 一种机械臂的控制系统 | |
CN111832324A (zh) | 用于smt生产线的在线自动扫描条码方法和系统 | |
CN115996091A (zh) | 一种光模块dsp调试的方法及装置 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230602 Address after: No. 999 Gaolang East Road, Wuxi Economic Development Zone, Jiangsu Province, 214000-8-D1-501-510 Patentee after: Wuxi shangheda Intelligent Technology Co.,Ltd. Address before: 214000 1800 Lihu Avenue, Binhu District, Wuxi, Jiangsu Patentee before: Jiangnan University |