工业机器人控制技能 - 协作机器人统一 API
通过统一API支持OMRON TM和JAKA协作机器人,实现连接、状态监控、关节及路径运动、安全控制和IO操作。
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 0 · 0 current installs · 0 all-time installs
byRobot_Qu@qujingyang28
MIT-0
Security Scan
OpenClaw
Benign
medium confidencePurpose & Capability
技能名与描述对应于包含的文件和接口:tm-robot 与 jaka-robotics-control 子包包含连接、状态监控、运动、IO 和安全命令。所需资源(无外部凭据、无特殊二进制)与本地/现场机器人控制目的相符。
Instruction Scope
SKILL.md 明确指示通过局域网 IP(示例 192.168.1.13/1.10)连接到机器人并配置 TMflow(Ethernet Slave、Listen Node 等)。运行示例和测试脚本会直接打开 TCP 连接到机器人端口(5890/5891)并发送控制/解析数据——这是预期行为,但属于直接物理控制范畴,需要严格的人类监督。技能包中也含若干开发/修复脚本(fix_*.py)会读写本地路径(示例用绝对 Windows 路径),这些脚本未在 SKILL.md 中被要求运行,但如果执行会修改代码文件,建议手动审查后再执行。
Install Mechanism
没有外部 install spec / 下载步骤;代码以文件形式随技能一起发布,没有从不可信 URL 拉取或解压外部二进制的迹象,降低了供应链安装风险。
Credentials
manifest 与 SKILL.md 未声明也未读取任何云凭据、API_KEY、SSH 密钥或系统配置路径。示例和脚本只使用局域网机器人 IP 和端口,所需环境变量/密钥数量与技能目的相称。
Persistence & Privilege
技能不是 always:true,且允许模型调用(平台默认)。因为技能可以让 agent 发起网络连接并下发运动命令,若授予自动调用权限会扩大对实体机器人的控制面,存在物理安全风险——建议禁用自动/无人监管的执行机器人运动命令。
Assessment
简明建议:
- 阅读并审查核心实现(tm_robot.py、jaka_skill.py)以确认没有向未知外部端点发送遥测或凭据。示例中使用的 IP(例如 192.168.1.13)应替换为你自己网络中受控的机器人地址。
- 在将该技能用于真实机器人前,在隔离的测试网络和/或仿真环境(或关闭电源的机器人平台)上先运行示例与测试脚本,验证行为和安全检查(急停、复位等)正常。
- 注意包内的 fix_*.py 脚本包含绝对路径并会修改本地代码文件:不要在不理解其修改内容的情况下运行这些脚本;它们看起来是开发者的本地修补工具而非必需运行步骤。
- 不要授予技能无人监管的自动执行权限来发送运动或 IO 命令;保持人类在环(确认/批准)以降低人员/设备损伤风险。
- 若需要更高信心,可要求作者/发布者提供 upstream 仓库链接、发布签名或第三方审计记录;如果你无法确认来源可信,应在受控环境中限制其网络访问并进行额外代码审计。Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.3
Download zipabbautomationcobotcollaborativefanucjakakukalatestmulti-brandomronrobottmunified-api
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
OpenClaw Robot Skills - 技能文档
版本: 1.0.0
作者: RobotQu
许可: MIT
📋 技能描述
用统一的 API 控制所有品牌的协作机器人。
当前支持:
- OMRON TM v1.1.0 - 完整支持
- JAKA v1.1.0 - 标准支持
🎯 核心功能
统一 API
所有品牌使用相同的接口:
# 连接
await robot.connect()
await robot.disconnect()
# 状态
joints = await robot.get_joints()
pose = await robot.get_pose()
# 运动
await robot.move_joint(joints, speed)
await robot.move_relative_line(delta, speed)
await robot.move_circle(p1, p2, speed)
# 安全
await robot.stop()
await robot.reset_alarm()
已实现功能
| 功能 | TM | JAKA |
|---|---|---|
| 连接/断开 | ✅ | ✅ |
| 关节角度读取 | ✅ | ✅ |
| 笛卡尔位姿 | ✅ | ✅ |
| 关节运动 (PTP) | ✅ | ✅ |
| 直线运动 (LIN) | ✅ | ✅ |
| 圆弧运动 (ARC) | ✅ | ⏳ |
| 急停 | ✅ | ✅ |
| 报警复位 | ✅ | ⏳ |
| 相机支持 | ✅ | ⏳ |
| IO 控制 | ✅ | ✅ |
📦 包含的子技能
1. TM Robot (tm-robot/)
OMRON TM 协作机器人控制
- 状态监控(关节、位姿、力矩、错误码)
- 运动控制(PTP、LIN、ARC)
- 安全功能(急停、报警复位)
- 相机支持(手眼相机位姿)
- IO 控制(DI 读取)
测试: 17/17 现场测试通过
2. JAKA Robotics Control (jaka-robotics-control/)
JAKA 协作机器人控制
- 关节运动
- 直线运动
- 状态读取
- IO 控制
🔧 依赖
- Python >= 3.8
- techmanpy >= 1.0.0 (TM Robot 需要)
- JAKA SDK (JAKA 需要,已包含)
🚀 使用示例
TM Robot 完整示例
from tm_robot import TMRobot
async def main():
robot = TMRobot(robot_ip="192.168.1.13")
# 连接
await robot.connect()
print(f"已连接:{robot.robot_model}")
# 获取状态
joints = await robot.get_joints()
print(f"关节角度:{joints}")
# 运动到 home 位置
await robot.move_joint([0, 0, 90, 0, 90, 0], speed=0.3)
# 直线移动
await robot.move_relative_line([100, 0, 0, 0, 0, 0], speed=0.2)
# 断开
await robot.disconnect()
await main()
JAKA 完整示例
from jaka_skill import JakaRobot
async def main():
robot = JakaRobot(robot_ip="192.168.1.10")
# 连接
await robot.connect()
# 获取关节角度
joints = await robot.get_joints()
print(f"当前关节:{joints}")
# 直线运动
await robot.move_linear([300, 0, 400, 180, 0, 90], speed=0.2)
# 断开
await robot.disconnect()
await main()
📚 文档
- TM Robot 详细文档:
tm-robot/SKILL.md - JAKA 详细文档:
jaka-robotics-control/SKILL.md - 统一 API 规范:
skills/API_SPEC.md
🧪 测试
TM Robot
cd tm-robot
python -m pytest tests/test_svr_parser.py -v
结果: 9/9 通过
JAKA
cd jaka-robotics-control
python test_connect.py
🗺️ 路线图
| 阶段 | 目标 | 时间 |
|---|---|---|
| Phase 1 | TM + JAKA + Yamaha | 2026-04 |
| Phase 2 | ABB + FANUC | 2026-05 |
| Phase 3 | KUKA + Yaskawa | 2026-06 |
| Phase 4 | 10+ 品牌 | 2026-07 |
| Phase 5 | 20+ 品牌生态 | 2026-12 |
📞 支持
- 网站: https://robotqu.com
- B 站: Robot_Qu 机器人社区
- GitHub: https://github.com/qujingyang28/openclaw-robot-skills
📄 许可证
MIT License
One API to Rule Them All! 🤖
Files
99 totalSelect a file
Select a file to preview.
Comments
Loading comments…
