上次说到了有关机械臂的软件结构重构,这就可以说到——机械臂的软件架构。
软件架构在不同领域有着显著的差异,可靠性、安全性、高并发、可扩展、易维护,听起来很美好,实际上就我个人经历来看,软件架构是有生命周期的,在到达生命周期前是需要重构的。一个项目最开始的软件结构往往取决于当时市场情况,短时间快速推出产品,后续随着功能一直添加,软件积重难返,半截身子埋入黄土。
对于机械手的控制而言,一般是①直接示教器控制②sdk api控制③总线从站控制。以UR机械手为研究示例:

UR划定的接口类型:

Primary/Secondary Interfaces
UR 控制器提供服务器来发送机器人状态数据并接收 URScript 命令。主接口传输机器人状态数据和其他消息。辅助接口仅传输机器人状态数据。这些数据主要用于 GUI 和控制器之间的通信。两者都接受 10 Hz 更新率的 URScript 命令。这使得无需机器人程序即可远程控制机器人。有关端口和更新的信息,请参阅此文章:通过 TCP/IP 进行远程控制。
Real-time Interfaces
实时接口的功能与主/次接口类似。控制器传输机器人状态数据并接收 URScript 命令。主要区别在于更新速率。有关端口和更新的信息,请参阅以下文章:通过 TCP/IP 进行远程控制。
Dashboard Server
您可以通过 TCP/IP 套接字向 GUI 发送简单命令来远程控制 Universal Robot。该接口称为“仪表板服务器”。该服务器的主要功能是加载、播放、暂停和停止机器人程序,设置用户访问级别,以及接收有关机器人状态的反馈。
Socket Communication
UR 机器人可以通过 TCP/IP 协议与外部设备通信。机器人与其他设备之间可以通过套接字通信传输数据。在套接字通信中,机器人充当客户端,其他设备充当服务器。URScript 提供用于打开和关闭套接字以及发送和接收不同数据格式的命令。
XML-RPC
XML-RPC 是一种远程过程调用 (RPC) 方法,使用 XML 通过套接字在程序之间传输数据。借助该方法,UR 控制器可以调用远程程序/服务器上的方法/函数(带参数),并返回结构化数据。借助该方法,可以执行 URScript 无法执行的复杂计算。此外,其他软件包也可以与 URScript 结合使用。
RTDE (Real-Time Data Exchange)
RTDE 旨在作为实时接口的强大替代方案。这使得 UR 控制器能够传输自定义状态数据,并接受自定义设定点和寄存器数据。有关端口和更新的信息,请参阅此文章:通过 TCP/IP 进行远程控制 – 16496
ROS/ROS2 Driver
ROS 驱动程序基于 Universal_Robots_Client_Library 开发,支持以下关键协作机器人功能:紧急停止时暂停、安全停止、自动调速以避免违反安全设置,以及通过示教器手动调速。此外,外部控制 URCap 允许将 ROS2 行为集成到机器人程序中。
该驱动程序兼容 UR 机器人全线产品,有效载荷范围从 3 公斤到 30 公斤,并涵盖 CB3 系列及更新型号的所有机器人。如需更详细的文档,请参阅 GitHub 代码库。
已经被使用的端口:

上面哗哗的说了一堆,除了ros作为一个新的类型,剩余的还是可以归结为提到的三种类型。
引入今天的主题——AimRT:

AimRT 是一个面向现代机器人领域的运行时开发框架。 它基于 Modern C++ 开发,轻量且易于部署,在资源管控、异步编程、部署配置等方面具有更现代的设计。
AimRT 致力于整合机器人端侧、边缘端、云端等各种部署场景的研发。 它服务于现代基于人工智能和云的机器人应用,提供完善的调试和性能分析工具链,以及良好的可观测性支持。
AimRT 还提供了全面的插件开发接口,具有高度可扩展性。 它与 ROS2、HTTP、Grpc 等传统机器人生态系统或云服务生态系统兼容,并支持对现有系统的逐步升级。
后续逐渐把这些坑填完。
欢迎关注:
制造业大头兵~
925

被折叠的 条评论
为什么被折叠?



