您好!欢迎光临工博士商城

ABB机器人配件服务运营商

产品:205    

咨询热线:18616599333

QQ QQ
您当前的位置:首页 » 新闻中心 » 基于EGM的ROS控制ABB机器人
产品分类
新闻中心
基于EGM的ROS控制ABB机器人
发布时间:2022-05-18        浏览次数:447        返回列表
ROS平台致力于使用一个统一的Robot OS来使得机器人的使用更简单。

ROS针对的机器人包括AGV小车,无人机,机械臂等等。

相关ROS内容,可以见ROS官网。

在早期的ROS版本(Kinect/Ubuntu 16和Melodic/Ubuntu 18)中提供的abb_driver,实现方式为ROS将规划好的路径队列通过socket一次性发送给机器人,机器人再执行moveabsj指令(后面点位是路径队列中的点)。

该方法需要在机器人侧提前编写RAPID代码并启动程序运行以接受ROS数据和执行轨迹。相关内容参见以下链接:
https://github.com/ros-industrial/abb_driver/tree/kinetic-devel

以上方法对实时控制并不是太好(机器人收完队列再执行,无法进行闭环控制)。目前测试以上方法只能在Ubuntu16和ubuntu18上,在ubuntu20.04未测试。

EGM(external guide motion)为ABB机器人向高级用户提供的低层接口,使得机器人***快能以250Hz接受外部数据(joint和笛卡尔位姿或者纯速度控制)并运动,并以250Hz发送机器人当前位置(joint和笛卡尔位姿)。这样用户就能进行实时闭环控制。

***新的ROS中的ABB Driver,已经将ROS与ABB机器人的控制方式修改为EGM。以下链接详细介绍了部署和使用方法。
https://github.com/ros-industrial/abb_robot_driver

***新的ROS的ABB Driver主要内容如上,包括基于ABB机器人robot web service的机器人控制abb_rws_service_provider(启动停止等)和机器人状态读取abb_rws_state_publisher以及基于EGM控制的abb_egm_hardware_interface。

若机器人没有EGM选项,依旧可以用ROS 的ABB DRIVER来控制机器人启动停止并读取状态(基于web service,机器人无需选项)。要实时控制机器人运动,需要机器人有EGM选项。

以上ABB driver适用于RW6机器人(主要是driver中使用了rws1.0),而RW7机器人使用rws2.0,故该ABB driver暂时无法直接适用于rw7机器人。用户也可以根据rws2.0改造ABB driver或者仅使用其中的egm部分。

为了用户更容易使用,ABB提供了StateMachine Addin插件(可以在robotstudio的addin免费下载,并在制作机器人系统时添加该插件)。该插件已经编写好相关EGM代码和机器人状态机,ROS通过ABB driver控制相关变量改变机器人状态并基于EGM实时控制机器人。

1.机器人端的配置

创建带有EGM选项的机器人,并且添加statemachine addin插件后,修改机器人的communication配置的transmission protocol中的ROB_1的对应Remote地址(即上位机IP地址,如与虚拟机中的ROS通讯,可以在ubuntu终端输入ifconfig –a查看虚拟机IP地址)并重启机器人控制器。

2.可以在TRobEGM代码中修改相关变量,如果ROS使用纯速度控制,位置增益设为0(ROS官网的例子使用纯速度控制)

3.稍后机器人的启动,EGM等均通过ROS控制

ROS端配置

1.在ubuntu20.04中,安装ROS noetic版本。

2.ROS官网例子:https://github.com/ros-industrial/abb_robot_driver
ABB机器人

分享到: 


 

联系热线:18616599333   联系人:赵经理 联系地址:上海市黄浦区668号赛格电子5楼

技术和报价服务:星期一至星期六8:00-22:00 ABB机器人配件服务运营商