讨论

ABB RobotStudio里那几个视觉指令MoveTo、CamLoc、CamLocJ到底啥区别?

13787439110
13787439110
2026/03/29 12:24

我刚转行做机器人应用工程,之前主要搞PLC,视觉这边刚接触。公司项目是视觉引导抓取,相机是Keyence的,通过socket把坐标发给机械手,机械手是ABB的IRB1200,配OmniCore C30控制器。我现在纠结的是:视觉拿到一个目标点位后,我用MoveJ、MoveL过去好像也能干活啊,干嘛非得用CamLoc这类视觉指令?看手册说CamLoc能自动补偿偏移,是不是我直接用普通Move指令然后在程序里自己加减偏差也行?

有经验的兄弟给讲讲这俩到底啥场景必须用CamLoc?我看有人的程序里MoveTo和CamLoc都有,到底啥时候该用哪个?还有那个CamLocJ又是干啥的,手册上写得云里雾里的。

11 4

全部回复 (4)

一切随缘
一切随缘#1

兄弟这问题我干三年了还有点发言权。直接说结论:只要视觉给的点不是死的、每次来料位置会飘的,就老老实实用CamLoc,别自己手算偏移。

关键区别在这:普通MoveL是“盲走”,你视觉给什么坐标它就走什么坐标,相机标定有点误差、料放歪了,它照单全收,撞机风险很大。CamLoc会在运动过程中实时读编码器位置+视觉反馈的偏移量,每50ms算一次修正量往目标点靠。

我之前给某汽车零部件厂做上料,料筐里工件放得再整齐也有±5mm的偏差。用普通MoveL测试时候还行,跑了三个小时撞了两次边沿,每次停机损失2000+。换CamLoc之后跑了两个月没出过事。MoveTo是MoveL的视觉版,CamLocJ是MoveJ的视觉版,空跑用CamLocJ,效率高不少。

2026/03/30 04:02
xu_bin
xu_bin#2

你用Keyence走socket传坐标过来,ABB这边用哪个指令还得看通讯咋接的。如果你是走PC SDK或者RAPID里的SocketReceive自己解析字符串,那其实就是个普通位置数据,用MoveL完全够用,没必要硬上CamLoc。

CamLoc是为啥设计的呢,主要是配合ABB自家PickMaster 3那种整套系统,或者你用ABB的Integrated Vision相机走的,相机和机器人之间走的是内部协议,CamLoc能拿到相机实时给的位置变化量。你这第三方相机自己发坐标过来的,用CamLoc反而麻烦,可能根本读不到它要的那个传感器数据。

2026/03/30 15:44
买卖兴隆
买卖兴隆#3

手册上看不懂是正常的,ABB官方文档这块写得一坨。我自己用CamLoc就记住一点:它是带PID控制思想的视觉伺服,不是简单的偏移补偿。如果你的来料节拍很慢(>2s一个),用普通MoveL加个offset变量就够了;节拍快(<1s一个)、料还在传送带上、视觉是持续跟踪的,那必须CamLoc,不然你追不准。

2026/03/31 10:29
dahao
dahao#4

C30控制器用CamLoc有啥坑没?我们用的也是C30,前阵子加视觉功能一直没敢动CamLoc指令,怕搞出啥兼容性问题。

2026/03/31 11:26