本帖子记录自己的开发历程,不涉及任何技术指导,只是希望如果有人遇到我们这个超级大坑,能看看我们的经验,能帮助到一些同样问题的人我就很高兴了。因此大家不要轻易进行下文中对机器人系统的一些奇葩操作。
1. 问题背景:
我们这里之前使用过多台UR10e,其上位机控制主要通过官方给的 Universal_Robots_ROS_Driver和 Universal_Robots_ExternalControl_URCap。
网址:https://github.com/UniversalRobots
现在使用了国产的UR12e,我们依旧希望使用原先的进行迁移并上位机控制。但是不太行!
报的错误大概是启动了驱动后,一直停在这里:
[ INFO] [1742293811.712089904]: waitForService: Service [/robot_A/ur_hardware_interface/dashboard/play] is now available.
[INFO] [1742293811.978501]: Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [1742293811.978629]: Controller Spawner: Waiting for service controller_manager/load_controller
这个其实是上位机代码一直在waiting,那就是说从上位机开始往下的不通(可能是网线不通或者示教器再往下不通)
1. 网线通不通我们ping一下就知道了,而且查一下UR上边的两个位置的上位机网段等就知道了,ping的通就是下边的问题。
2. ExternalControl.URCap没办法把上位机的一些命令传递给机器人系统。
2. 分析及解决方案:
本质原因是当前UR12e太新了,技术支持跟不上,生态还没建起来。这导致在固件层面,硬件层面,没有成熟的ROS包以及上位机控制urcap。经过多次与UR官方和经销商的沟通(他们真的态度很好,感谢他们的帮助),有以下几个观察:
1. 官网尚未显示任何国产版本及相关资料。
2. 中国官网没有技术支持的资料,没有代码仓。
3. 12e我们的是4开头的序列号,而且软件版本是5.20,新的操作版本可能会导致问题。
4. 官方的Universal_Robots_ExternalControl_URCap和Universal_Robots_ROS_Driver的readme中都没说支持UR12e(其实按道理来说,应该是通用的啊。。。。。)
我们尝试了多种方法,例如:系统降级或者把一台UR10e的内存卡拿出来放进12e,或者让一个10e的系统和上位机控制架构控制12e,再或者把12e的系统卡拿出来控制一条老的机械臂。
各种能想到的操作都试过了,都不太行。(注意,以上操作尝试有潜在风险,请不要轻易模仿,我们是在经销商工程师老师帮助下进行的!)最后发现了一个很神奇的方法,现在成功实现了上位机控制。
因为解决方法非官方推荐,这里不写了,有需要可沟通。
最后祝愿中国的技术社区能够更加完善,机器人开发的生态更好!