Universal Robots Forum

servoj控制UR3(8MS周期),报C204A3错误

PC通过30003实时控制UR3 ,你好,报C204A3后,保护停止了,可能是某个电机的实际位置和下一时刻要求的位置距离比较大,即对电机的加速度要求太高了。但我通过限制加速度后还是报错。

目前UR3没有固定,只是通过一个大圆盘放在地上,能移动。轨迹规划过程中,运动速度按照0.15M/S进行规划。

用的servoj指令,gain和lookaheadtime都在不断调整,还是不能长时间稳定运行。

关节空间最好状态是运行了3小时没错,笛卡尔空间直线运动一个多小时没有报错

C204A3报警是加速度太快了,若要中止运动,请在使用"wait" 之前用 "stopj"或 "stopl"脚本
命令形成平稳减速。避免在交融的路点之间中止运动
命令具体用法请参考以下示例:
servoj(q, a, v, t=0.008, lookahead_time=0.1, gain=300)
Example Commands
servoj([0.0,1.57,-1.57,0,0,3.14], t=0.1, lookahead_time=0.1, gain=300)
or
servoj([0.0,1.57,-1.57,0,0,3.14], 0, 0, 0.1, 0.1, 300)
q = [0.0,1.57,-1.57,0,0,3.14] – joint angles in radians representing rotations of base=0°,
shoulder=90°, elbow=-90°, wrist1=0°, wrist2=0°, wrist3= 180°
a = 0 not used in current version
v = 0 not used in current version
t=.1 time where the command is controlling the robot. The function
is blocking for time t [S]
lookahead time=.1 time [S], range [0.03,0.2] smoothens the trajectory with this
lookahead time
gain=300 proportional gain for following target position, range [100,2000]

谢谢回答,我是在PC端做轨迹规划,规划(生成轨迹点后)完成后,每8ms下发一次位置点给UR3,

根据读到的关节实际位置和下发关节位置的差,如果差值大于0.8rad,在下一个8ms到的时候就按关节实际

位置+朝着运动方向+0.8rad,如何差值比0.8rad小,则按我规划的位置发送。这里的0.8是根据观察得到的,

作用相当于限制电机的加速度,从0.35~0.8基本都设置过。路径规划的时候按照0.15米/秒的速度做的,所以速度和加速度其实都比较好,

不知道啥原因。不知道机器人示教器上有没有参数要设置,我有点担心机器人没有固定,有没有影响,目前就像水杯放在桌子上一样的放着的

Hi @18719665

请问你是PC发位置信息给UR控制器, 在UR控制器上执行servoj

还是PC直接发servoj给UR控制器?

我是PC发servoj和servoj要用到的位置信息,以及lookahead,gain等,机器人端没有写程序

现在发现实际机器人和URSIM在同一关节角下面,两者的位置相差达16mm,

机器人目前处于没有固定状态,运行速度计划是0.15米每秒状态,谢谢

HI @18719665 ,

建议透过PC藉由modbus或socket发送位置到Robot controller, 然后把servoj code写在Robot controller裡,
若透过Client interface发送单行运动指令会有以下问题:
每一次新发的servoj指令会中断前一次servoj的运动, 因此造成运动卡顿

Thanks