UnderAutomation.Robotics
开发中一个 API, 适用所有机器人品牌
UnderAutomation.Robotics 是 UnderAutomation 的下一个库,支持 C# 和 Python。机器人代码只写一次,即可在 Fanuc、Yaskawa、Universal Robots、ABB 和 Stäubli 上运行。
发布时只发一封邮件,没有其他。

1using UnderAutomation.Robotics.Controllers;23var robot = new RobotController();4robot.Connect(new UnderAutomation.Fanuc.ConnectionParameters("192.168.0.10"));56robot.Program.Start("MAIN");78foreach (var alarm in robot.Alarm.GetActive())9 Console.WriteLine(alarm.Code + " " + alarm.Message);1011robot.Disconnect();
更换机器人,保留代码
现在:每个品牌一个 SDK
每个品牌都有自己的协议和 API。一个工作单元有两个品牌,就意味着两套代码。
使用 Robotics:按任务的统一 API
您只需说明要做什么。库会为每个品牌选择合适的协议。





机器人的一切操作,归纳为 10 个服务
您搜索的是“启动程序”,而不是协议名称。API 遵循同样的思路。
.Info
型号、序列号、软件版本、选项.State
模式、伺服电源、运行或暂停、速度.Program
列出、选择、启动、暂停、停止、当前行.Debug
断点、单步、继续.Variable
变量和寄存器,使用原生名称.Io
输入输出信号,使用原生名称.Alarm
当前报警、历史、复位.Motion
位置、关节和直线运动、运动学、坐标系.File
列出、下载、上传、重命名、删除.Backup
创建并下载控制器备份C# 和 Python,同一 API
Python 包与 C# API 一致,使用 Python 命名风格,和各品牌 SDK 一样。
1using UnderAutomation.Robotics.Controllers;23var robot = new RobotController();4robot.Connect(new UnderAutomation.Fanuc.ConnectionParameters("192.168.0.10"));56robot.Program.Start("MAIN");7foreach (var alarm in robot.Alarm.GetActive())8 Console.WriteLine(alarm.Code + " " + alarm.Message);
API 预览:发布前名称仍可能变化。
入门简单,专家够用
只需地址
提供 IP 地址即可。库会找到可响应的协议,并为每个方法选择路径。
了解机器人能做什么
调用前询问某个方法在当前控制器上是否可用,以及不可用的原因。
一切都可访问
品牌 SDK 的对象可在同一连接上访问。每个结果都保留其原生数据。
代码照常编译
已在使用品牌 SDK?把引用换成 UnderAutomation.Robotics:命名空间相同,类型相同。
从 .NET Framework 3.5 到 .NET 8+
与各品牌 SDK 相同的目标框架,支持 Windows、Linux 和 macOS。
支持仿真器
ROBOGUIDE、MotoSim、URSim、RobotStudio 和 SRS,与各品牌 SDK 相同。
构建在已投入生产的 SDK 之上
Robotics 包含五个品牌 SDK,并在其上增加统一 API。我们的机器人 IDE TouchUp 是它的第一个用户。
TouchUp
面向车间现场的机器人 IDE您的软件
C# · Python · LabVIEW · MatlabUnderAutomation.Robotics
适用于所有品牌的统一 API




当前进展
五个品牌 SDK 已投入生产
Universal Robots、Fanuc、Yaskawa、ABB 和 Stäubli,在 24 个国家使用。
统一 API 已设计完成
服务、协议路由、数据模型和错误均已规范。
五个品牌的适配器
开发中,与 TouchUp 同步进行。
早期用户预览版
如果想在您的机器人上测试,请联系我们。
正式发布
先发布 .NET 的 NuGet 包,然后是 Python 包。