Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)

前言:

经过两天的踩坑,终于将ROS与ABB连接成功,可以通过rviz的gui界面拖动机械臂来控制实体ABB机械臂进行运动,因为网络上的教程(几位博主和ROS WIKI等)个别步骤的不完整,所以走了很多弯路,浪费了很多时间,但是经过不断修改成功后,想记录一下完完整整的过程,也帮助大家后续进行连接时节省时间,顺利实验!

环境:

目前有四种不同的连接环境,可以大致分为:

1.电脑一台:此电脑安装了虚拟机,里面安装了Ubuntu系统,Windows环境下安装了robot studio,但需要电脑配置高一些,因为我不是这个方法,所以用此方法的同学可以参考一下这个博主(https://blog.csdn.net/u014697321/article/details/106434289)的虚拟机配置过程,其他过程与我的几乎一样。

2.电脑两台:Ubuntu18.04+ROS-melodic(ROSPC)和Windows10+RobotStudio6.07(ROBOTPC)。即:使用ROSPC控制ROBOTPC的仿真环境下的机器人进行控制,还没涉及到实体机器人。如这个博主教程(ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-_zhangrelay的博客-CSDN博客_ros 连abb)。

3.电脑两台,实体机械臂一台:Ubuntu18.04+ROS-melodic(ROSPC)和Windows10+RobotStudio6.07(ROBOTPC),ABB实体机械臂。此方法目前没有详细教程,大致思路是先按照第二种环境的连接,成功后再将ROBOTPC与ABB实体机械臂进行连接,将控制器配置好,再将ROSPC连接实体机械臂。

4.电脑一台,实体机械臂一台:Windows10+RobotStudio6.07(ROBOTPC)&Ubuntu18.04+ROS-melodic(ROSPC)和ABB实体机械臂。此方法目前也没有教程,思路和环境3一样,只是电脑只有一台。

小结:我的环境属于后三种我将从第二种环境开始实验即:此教程环境是电脑两台:Ubuntu18.04+ROS-melodic(ROSPC)和Windows10+RobotStudio6.07(ROBOTPC)。后续会继续出后两种环境的教程,当然都是基于此教程,比较简单了。

正文:

一、Windows10+RobotStudio6.07(ROBOTPC)

1.打开robot studio,并建立新的空工作站。

!!记住空工作站的路径,后续要用到!!

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第1张图片

2.从ABB模型库导入机械臂模型

(因为目前ROS支持的ABB机械臂种类不全,所以先看一下自己的机械臂型号支不支持,不支持的话啥教程也不行了~)

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第2张图片

 Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第3张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第4张图片

3.建立机器人系统

(这块的重点就是加入:616-1 PC接口和623-1多任务

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第5张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第6张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第7张图片

 Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第8张图片

 Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第9张图片

 Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第10张图片

4. 将ROS驱动程序的RAPID文件放在创建的手臂的控制器上。

(1)转到 文档 \ RobotStudio \ Systems并选择与工作站名称相对应的文件夹。

(2)打开HOME目录。

(3)创建一个名为ROS的新目录。

(4)复制abb_common / rapid(https://github.com/ros-industrial/abb/tree/hydro-devel/abb_common/rapid)(Hydro和更早版本)或abb_driver / rapid(https://github.com/ros-industrial/abb/tree/indigo-devel/abb_driver/rapid)(Indigo和更高版本)目录中的所有文件,并将它们放在新创建的ROS目录中。

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第11张图片

5.修改刚才放在~ \ Home \ ROS 目录下的 ROS_socket.sys

(就是将自己的IPv4地址换上)

5.1查找自己的IP地址:

(1)在Windows下搜索“运行”

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第12张图片

(2)在运行里输入“cmd”打开终端

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第13张图片

(3)在命令行输入“ipconfig”,然后点击键盘回车

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第14张图片

!!!注意:千万记得在防火墙中开启abb仿真控制器权限,否则是无法通讯的,即使ping通了也不行

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第15张图片

5.2打开刚才放在~ \ Home \ ROS 目录下的 ROS_socket.sys

将IF(SocketGetStatus(server_socket)= SOCKET_CREATED)SocketBind server_socket,GetSysInfo(\ LanIp),端口;

改为IF(SocketGetStatus(server_socket)= SOCKET_CREATED)SocketBind server_socket,“ 192.168.1.174”,端口;

!!这里的地址是我的示例,大家要改成自己的地址!!

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第16张图片

6.打开示教器,调整为手动模式

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第17张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第18张图片

7.创建任务(ROS WIKI的教程http://wiki.ros.org/action/show/abb_driver/Tutorials?action=show&redirect=abb%2FTutorials)

按照截图步骤依次创建三个任务

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第19张图片

 Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第20张图片

 Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第21张图片

8.创建信号

按照截图步骤依次创建七个信号

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第22张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第23张图片

 9.将信号连接到系统输出

按照截图步骤依次连接七个信号到系统输出

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第24张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第25张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第26张图片

10. 将模块加载到任务

按照截图步骤依次将模块加载到任务

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第27张图片

 

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第28张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第29张图片

11. 建立Robotstudio和ROS的通信(以下均是细节,我曾因为这些细节,失败了很多次,几乎大部分的细节网上的博主都没有提,所以我这里为大家避坑

11.1设置运行模式为 “连续”

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第30张图片

11.2重启控制器

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第31张图片

11.3重启后首先将六个文件同步到工作站!!!(我之前的无数次就是因为没有这一步出现了好多红叉错误,一定不要忘了这一步!!!)

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第32张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第33张图片

然后打开示教器,然后调节为手动模式,并且使能,再点击PP 移至Main,再点击运行按钮。

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第34张图片

此时:会自动弹出程序消息,waiting for connection

与此同时,程序指针应该指向

“WaitTime 0.05; ! Throttle loop while waiting for new command”

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第35张图片

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第36张图片

到此ROBOTPC配置完成

二、Ubuntu18.04+ROS-melodic(ROSPC)

1.安装Ubuntu系统和ROS以及moveit(大家网上找一下教程,顺利的话两个小时可以成功)

2.查看ROSPC的IP地址

在命令端输入:ifconfig

(图片是示例,两台电脑必须在同一网段(可以都在同一WiFi下),也就是192.168.1.xxx中的192.168.1必须一样才可以通信)

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)_第37张图片

3.创建一个ROS 的工作空间,将ABB的机器人功能包放在工作空间下的SRC下

# 切换到工作空间下的路径

cd $HOME/catkin_ws

# 如果需要最新版本的程序,可以用kinetic替换kinetic-devel

git clone -b kinetic-devel https://github.com/ros-industrial/industrial_core.git

git clone -b kinetic-devel https://github.com/ros-industrial/abb.git src/abb

git clone -b kinetic-devel https://github.com/ros-industrial/abb_experimental.git src/abb_experimental

#如果ROS系统不是melodic,需要按情况替换

rosdep install --from-paths src/ --ignore-src --rosdistro melodic

#这一步一定要安装,否则会出现红色的错误,我当时找遍整个百度和谷歌都没找到正确的解决办法,还是一个知乎博主的博文写到了(https://zhuanlan.zhihu.com/p/309598227)

sudo apt-get install ros-melodic-industrial-robot-simulator

# 用catkin_tools编译程序包

Catkin_make

#激活abb支持包

#如遇找不到package而roslaunch报错,也请尝试运行下面这个命令

source $HOME/catkin_ws/devel/setup.bash

三、连接两台电脑并运行!!!

1.将一根网线插入两台电脑的网口

2.在Ubuntu端,在ABB机器人的工作空间下打开终端输入:

roslaunch abb_irb120_moveit_config moveit_planning_execution.launch sim:=false robot_ip:= 192.168.x.xxx

其中IP那块就写ROBOTPC的IP地址!!

然后就大功告成了,大家请看我的视频:

(【Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)】 https://www.bilibili.com/video/BV1AW4y1n7UL?share_source=copy_web&vd_source=66955823a6c8b76ecbf18611feb3d4c8)

你可能感兴趣的:(ROS,机器人,ubuntu)