提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
关于初学者对于ROS机械臂仿真环境的配置,本文主要针对aubo i5协作机械臂的ROS环境配置及连接真实机械臂,包括虚拟机的安装及ros melodic的安装问题解决。关于实现机械臂视觉抓取仿真实现请参考文章:aubo i5 配置robotiq 电动夹爪和kinect V2深度摄像头仿真环境搭建(find_object_2d视觉抓取实现)-CSDN博客
一、安装Ubuntu18.04(保证连接网络)
1.安装VMware------Resources
参考博客: 安装虚拟机(VMware)保姆级教程(附安装包)_vmware虚拟机-CSDN博客
2.下载ubuntu18.04镜像
Ubuntu18.04的镜像文件下载方式有很多(网上到处都是),这里提供几种常用的,
我这边下载速度对比结果是:Ubuntu官网 > 清华镜像源 > 阿里云
①方法1:百度网盘下载
链接:https://pan.baidu.com/s/1bx3k4T-z_EcglbyAkIiv5A 提取码:kw9d
②方法2:在开源镜像网站上下载,
一个是阿里云开源镜像站,进入后选择18.04的iso文件下载即可,如图:
另一个是清华开源软件镜像站,进入后选右侧的“获取下载连接”,如图:
进去找到Ubuntu后,选择18.04.6桌面版,下载即可
③方法3:直接在Ubuntu官网下载
Ubuntu 18.04.6 LTS (Bionic Beaver),官方提供了PC版和服务器版两种镜像文件,我们是安装在个人电脑上,所以选择64-bit PC(AMD64) desktop image;顺便说明一下,这里标的是AMD64,但是也支持EM64T架构,所以无论你的电脑是AMD处理器还是Intel处理器,都可以使用
3.在VMware中创建虚拟机并安装Ubuntu18.04
参考博客(博主已经很详细的描述步骤、系统设置及安装VMware Tools):VMware虚拟机中安装Ubuntu18.04(linux发行版)【超详细图文教程】_vmware虚拟机ubuntu18.04-CSDN博客
VMware Tools的作用:能简化主机与虚拟机之间的操作
①从虚拟机内移出鼠标不用再按Ctrl + Alt,可直接移出
②有了VMware Tools,主机与虚拟机可直接通过拖拽传文件,实现文件复制
③有自动适应窗口功能,能使虚拟机系统分辨率随软件窗口大小改变而变化
④相当于给虚拟机安装了显卡驱动,提高了虚拟机分辨率
3.unbuntu修改中文版
(1条消息) Ubuntu设置中文界面_故丨是的博客-CSDN博客_ubuntu中文界面
二、ROS melodic环境配置
1.Linux终端快捷键使用
ctrl+alt+t 为打开终端快捷键
ctrl+shift+t 为打开并行终端窗
ctrl+c 为中止终端
ctrl+shift+c 终端复制
ctrl+shift+v 终端粘贴
2.更新软件源
在ubuntu中选择--软件和更新,选择清华源或者阿里源(根据实际选择):选择重新载入即可
完成以后终端输入:
#重新载入结束以后终端输入
sudo apt update
sudo apt upgrade
3.ROS melodic配置
教程ROS官网:Get ROS Melodic on Ubuntu Linux
melodic/Installation/Ubuntu - ROS Wiki
SourceURL:file:///media/ls/DGTG/东华理工大学/AUBO i5/AUBO ROS melodic环境配置.docx
添加ROS源(选择清华源):
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
添加keys(方法1):
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
添加keys(方法2):
sudo apt install curl #添加curl工具
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add –
显示 ok表示添加成功
更新系统
sudo apt update
通用工具安装
sudo apt install build-essential cmake pkg-config unzip yasm git checkinstall curl wget exfat-utils gparted
桌面完整版安装:包含ROS、rpt、rvrz、机器人通用库、2D/3D模拟器、导航以及2D/3D感知:
sudo apt install libvtk6-jni libvtk6-java libvtk6-dev libvtk6-qt-dev libpcl-dev
sudo apt install ros-melodic-pcl-conversions ros-melodic-pcl-ros ros-melodic-perception-pcl ros-melodic-perception ros-melodic-rqt
sudo apt install ros-melodic-desktop-full
sudo apt install python-rosdep
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential ros-melodic-catkin
pip包管理工具安装
sudo apt install python3-dev python3-pip python-pip python-dev
catkin_tools安装
sudo pip3 install -U catkin_tools -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
初始化rosdep
在开始使用ROS之前你还需要初始化rosdep,rosdep可以方便在需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必须用到的工具
通过pip包管理工具安装国内镜像源加速版本rosdepc,执行如下命令:
sudo pip install rosdepc
sudo rosdepc init
rosdepc update
或者
wget http://fishros.com/install -O fishros && . fishros
### 上行代码运行后根据提示输入3
### 输入回车
#根据提示rosdep初始化
rosdepc update
环境配置
echo "source /opt/ros/melodic/setup.bash">> ~/.bashrc
source ~/.bashrc
运行测试
完成安装后跑一个测试程序---小海龟。若没有安装,执行如下命令:
sudo apt-get install ros-melodic-turtlesim
然后在三个不同的终端分别执行以下命令:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
#学习资源:中国大学生mooc ROS ROS机器人操作系统入门
三、遨博机械臂Rviz和Gazebo仿真
(一)aubo 机械臂ROS依赖功能包安装
1.industrial依赖安装,终端输入如下指令。
sudo apt install ros-melodic-industrial-*
2.gazebo ros 库安装
sudo apt install ros-melodic-gazebo-ros ros-melodic-gazebo-plugins ros-melodic-gazebo-ros-control ros-melodic-joint-state-controller ros-melodic-position-controllers ros-melodic-joint-trajectory-controller
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-moveit-simple-controller-manager
sudo apt-get install ros-melodic-rviz-visual-tools
sudo apt-get install ros-melodic-moveit-visual-tools
3.修改系统eigen3软链接,在终端中输入如下指令。
sudo ln -sf /usr/include/eigen3/Eigen/ /usr/include/Eigen
sudo ln -sf /usr/include/eigen3/unsupported//usr/include/unsupported
4.安装libprotobuf9,在终端中输入如下指令。
wget http://archive.ubuntu.com/ubuntu/pool/main/p/protobuf/libprotobuf9v5_2.6.1-1.3_amd64.deb
sudo dpkg -i libprotobuf9v5_2.6.1-1.3_amd64.deb
(二)编译AUBO ROS功能包
1.新建名称为aubo_ws的工作空间,并在src目录下下载官方最新melodic版本源码。执行如下命令:
mkdir -p ~/aubo_ws/src
cd ~/aubo_ws/src/
git clone https://github.com/AuboRobot/aubo_robot.git -b melodic
aubo i5 ROS功能包
git clone https://github.com/liuxinwust/test_robot.git
(如果运行失败尝试下面两种方法,不行换回来再次运行)
sudo git clone https://github.com/ros/robot_state_publisher.git/
git clone git://github.com/ros/robot_state_publisher.git
注意:这里github网站有时候连接不上,可以尝试将这里的github.com替换为hub.nuaa.cf
2.通过rosdep安装源码依赖,在终端输入如下指令。
rosdep install -y --from-paths . --ignore-src --rosdistro melodic -r
删除对应的包文件,也可以不用管,不影响后续使用!
3.使用catkin工具配置工作空间并进行源码编译,在终端输入如下指令。
cd ~/aubo_ws
catkin build aubo_msgs
catkin build
编译过程中缺失什么工具安装什么,使用如下命令安装:
sudo apt-get install ros-melodic-name
#例如:缺失moveit-visual-tools
sudo apt-get install ros-melodic-moveit-visual-tools
#例如:缺失moveit-ros-planning-interface
sudo apt-get install ros-melodic-moveit-ros-planning-interface
再次使用命令catkin build编译
(三)配置aubo_dirver程序lib库环境变量
1.输入如下指令进入aubo sdk库的路径。
cd ~/aubo_ws/
source devel/setup.bash
roscd aubo_driver/lib/lib64/
2.通过输入pwd命令打印当前文件夹绝对路径,本虚拟机环境路径如下(具体以实际打印为准):
/home/aubofy/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64
3.执行如下命令新建ldconfig配置文件:
sudo gedit /etc/ld.so.conf.d/aubo_driver.conf
4.将下列库的路径拷贝到文件中,保存后退出。(home后面的用户名为本机实际的用户名)。
/home/melodic/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64
/home/melodic/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/aubocontroller
/home/melodic/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/config
/home/melodic/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/log4cplus
(5)在终端输入如下指令使能新建的配置文件。
sudo ldconfig
(四)运行演示Rviz和Gazebo机械臂仿真功能
1. rviz+moveit界面
cd ~/aubo_ws/
source devel/setup.bash
roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=127.0.0.1
运行出现错误:
原因:缺少moveit rviz 中运行的功能包
执行如下命令:
sudo apt-get install ros-melodic-moveit-ros-visualization
再次运行
在试用rviz进行运动规划的时候,成功的导入模型后,但是点击plan and execut按键后,机械臂并没有运动,而且gui上提示failed:
原因: 没有安装moveit,因为刚开始接触ros,前期很多问题都和配置有关。
解决方法:
sudo apt-get install ros-melodic-moveit
source /opt/ros/melodic/setup.bash
2.gazebo界面
(1)Gazebo是一个机器人仿真工具和模拟器,也是一个独立的开源机器人仿真平台,他的功能很强大,最大的优点是对ROS支持的很好,首先启动安装好的ROS环境系统,由于已经在上一篇文章中介绍了如何安装Gazebo,这里启动终端,输入下面的指令,运行Gazebo测试。
roslaunch gazebo_ros empty_world.launch
(2)如果发现启动界面加载过程中闪退,可能是由于在虚拟机中使用时开启了图形加速,在终端中输入如下指令关闭硬件加速。
echo " export SVGA_VGPU10=0" >> ~/.bashrc
source ~/.bashrc
(3)然后关闭虚拟机的3D图形加速,需要关闭虚拟机中的Ubuntu系统,编辑虚拟机设置,选择显示器,取消加速3D图形选项,如下图所示,然后重新启动虚拟机一般就可以解决。
(4)如果发现启动Gazebo过程中,在终端出现红色报错信息。
(5)需要修改.ignition/fuel/config.yaml文件,将文件中的url: https://api.ignitionfuel.org改为url: https://api.ignitionrobotics.org,运行如下指令打开文件进行修改,再次运行Gazebo即可正常使用。
sudo gedit ~/.ignition/fuel/config.yaml
[ 1] 常见问题1:[Err] [REST.cc:205] Error in REST request
解决:输入命令
sudo gedit ~/.ignition/fuel/config.yaml
然后将url : https://api.ignitionfuel.org使用 # 注释
再添加url: https://api.ignitionrobotics.org
[2 ] 常见问题2:[ClientConfig.cc:270] Parser error [3]
这个可能是解决问题二的时候把源文件的格式给改错了,一般都是tab键导致的,恢复原格式重新解决问题二
[ 3] 常见问题3:Set document metadata failed: Setting attribute metadata::gedit-encoding not
改动的时候出现的警告,一般忽视就好
[4] 常见问题4::启动时抛出异常:[gazebo-2] process has died [pid xxx, exit code 255, cmd…
解决:killall gzserver和killall gzclient
(6)由于gazebo默认是使用某一个模型时从互联网下载模型,如果要脱机使用模型库,是需要提前下载好的,可以在Gazebo模型库下载,将下载好的压缩包复制到~/.gazebo/models下并解压(注意下载的模型文件要在Models下,而不是在解压后的文件夹下),再次打开Gazebo便可以加载我们下载好的模型了,如下图所示,在“insert”面板中选择模型导入,查看效果。
(五)仿真遨博机械臂
(1)为了方便各个终端的使用,将上一篇中建立的工作空间环境变量增加到.bashrc文件中,输入如下指令即可。
echo "source ~/aubo_ws/devel/setup.bash">> ~/.bashrc
source ~/.bashrc
(2)首先在终端中运行以下两条指令,分别启动Moveit功能包和Gazebo仿真,需要说明的是,这两条指令需要运行在不同的终端(在仿真时,IP地址需要是127.0.0.1)。
roslaunch aubo_e5_moveit_config moveit_planning_execution.launch robot_ip:=127.0.0.1
roslaunch aubo_gazebo aubo_e5_gazebo_control.launch
(3)在运行第二条指令时,会报出如下错误,这是ROS会要求在配置文件中需要配置PID参数,在系统耦合中,找到合适的PID是比较困难的,如果仿真环境中不指定任何PID参数,机器人仍可以正常工作,切记不可输入错误的值,反而会导致更多的问题,所以一般在ROS开发中,这部分的错误是可以忽略的。
(4)之后回到rviz界面,试着拖动轨迹球,并点击【Plan & Execute】按钮,即可看到规划执行效果,此时控制信号将同时输入到Gazebo中,运动同步发生,达到联合仿真的目的。无论仿真环境多么符合现实,也需要在实际的机械臂中进行测试,下面看一下如何控制真实的机器人。
调试工具---插件
cd ~/aubo_ws
source devel/setup.bash
rqt
英特尔深度摄像头使用:
librealsense安装
librealsense/doc/distribution_linux.md at master · IntelRealSense/librealsense · GitHub
四、aubo i5 通过ROS控制真实机器人
虚拟机—编辑—虚拟网络编辑器
查看IP地址:192.168.5.0
设置主机IP地址
1.在键盘上按下"Win+r"打开【运行】窗口,输入【cmd】后按回车键; 2 .在打开的窗口输入【ipconfig】后按回车键; 3 .其中"IPv4地址"即为我们的IP地址;
改写文件时用命令 vim 或者 gedit(推荐好用)
设置Linux IP
melodic@ubuntu:~$ cd /etc/netplan/
melodic@ubuntu:/etc/netplan$ ls
01-network-manager-all.yaml
melodic@ubuntu:/etc/netplan$ sudo gedit 01-network-manager-all.yaml
配置文件如下:
# Let NetworkManager manage all devices on this system
network:
ethernets:
ens33: #配置的网卡的名称
addresses: [192.168.135.128/24] #配置的静态ip地址和掩码
dhcp4: no #关闭DHCP,如果需要打开DHCP则写yes
optional: true
gateway4: 192.168.135.2 #网关地址
nameservers:
addresses: [8.8.8.8,8.8.4.4] #DNS服务器地址,多个DNS服务器地址需要用英文逗号分隔开
version: 2
vim编辑器使用:
i:编辑 esc:命令行模式 :wq+enter 保存
问题描述:在网络设置中仅有VPN和网络代理,没有有线设置
在这块没有显示有关网络的任何信息
第一步查看interfaces文件,该文件内容正常,未被修改
sudo gedit /etc/network/interfaces
第二步修改NetworkManager.conf配置文件,将managed=false更改为managed=true,保存退出
sudo gedit /etc/NetworkManager/NetworkManager.conf
第三步修改10-globally-managed-devices.conf配置文件,添加有线设备,添加内容如下
sudo gedit /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf
第四步最重要的一步重启
整体操作步骤
重启后如果仍然没有出现有线设置,先停止网络服务,删除网络缓存文件,在重启网络服务,即可出现有线设置。
xxx@xx:~$ sudo service network-manager stop
xxx@xx:~$ sudo rm /var/lib/NetworkManager/NetworkManager.state
xxx@xx:~$ sudo service network-manager start
重启
linux系统查看IP地址:
sudo apt install net-tools
ifconfig -a
1.网络配置
(1)使用网线连接AUBO-E5真实机械臂的控制柜与电脑,最好不要使用路由器、交换机等设备进行转接,因为ROS需要将控制的轨迹实时发送给机械臂,如果网络不稳定,会造成机器人运动卡顿等情况。
(2)打开示教器,点击【设置】-【网络】进入网络配置界面,点击【网卡】下拉菜单,选择默认网卡以示教器显示为准,IP地址输入【192.168.5.0】(可设置为其他可用IP,必须要和网关设置的网段保持一致),掩码设置为【255.255.255.0】,网关设置为【192.168.1.1】,点击【保存】,重启机械臂完成网络配置。
(3)设置电脑主机的IP地址与ROS虚拟机中的IP地址,保证和真实机械臂处于同一网段,然后在真实机械臂的网络设置界面,使用ping功能测试ROS虚拟机的IP地址,要求延迟越低越好,最高也要低于1ms,并且较为稳定,如下图所示。
2.真实机器人控制
(1)在ROS环境的终端中,输入如下指令,这里的IP地址需要填入真实机械臂的IP地址。
roslaunch aubo_e5_moveit_config moveit_planning_execution.launch robot_ip:=192.168.135.125
(2)启动完成后在Rviz界面会观察到机械臂姿态和真实机械臂姿态保持一致。
(3)在Rviz中拖动机械臂上方的蓝色小球,或者通过设置goal state到随机位置,即可设置机械臂的目标位置,请设置时尽可能考虑真实机器人周围物理环境,防止碰撞,如图所示,其中黄色机械臂为目标位姿的机械臂,与真实机械臂颜色一致的是机械臂真实位姿。
(4)点击plan按钮,如图所示,可以查看机械臂从现在真实位姿到目标位姿的路径运动过程。
(5)确保控制器在实验人员的附近,可以随时拍到机器人的急停旋钮,防止对周围设备造成意外损失,点击【Excute】按钮,将上述规划的路径发送到真实机械臂,可以看到真实机械臂按照规划路径进行运动,同时在Moveit中也实时显示真实机械臂的实时位置。
(6)当机械臂运动完成后,Rviz软件中的目标位姿和真实位姿重合。可观察到真实机械臂最终的位置和设置的目标位姿相同。
(7)在机械臂运动过程中,可以点击Rviz中的Stop按钮,机器人会平滑的停止下来,点击停止到真正停止下来的一小段轨迹的规划过程我们已经在aubo_driver中提供,后续的文章中会介绍到。
3.真实机器人运动速度调节
(1)在终端中输入如下指令,打开机械臂关节速度参数文件。
roscd aubo_e5_moveit_config/
gedit config/joint_limits.yaml
(2)在这个文件中,可修改foreArm_joint、shoulder_joint、upperArm_joint、wrist1_joint、wrist2_joint、wrist3_joint六个关节的最大速度和最大加速度的限制,默认的值在一般情况下无需修改,如果有更高速度和加速需求,可修改这个参数文件,最好每次适当增加速度,防止速度超出预期造成不必要的损失,特别是在调试开发阶段,同时也请放心,在ROS控制下,机械臂的碰撞停止等安全功能依然有效。
(3)每个关节有四个参数,分别是has_velocity_limits、max_velocity、has_acceleration_limits、max_acceleration,功能分别如下:
- has_velocity_limits代表速度限制是否生效,true代表生效,false代表不生效,生效时才能控制最大速度;
- max_velocity最大速度限制值,单位为弧度/s;
- has_acceleration_limits代表加速度限制是否生效,true代表生效,false代表不生效,生效时才能控制最大加速度;
- max_acceleration最大加速度限制值,单位为弧度/s^2。
总结
本文涵盖了虚拟机的安装使用、ubuntu18.04 Linux系统的安装,对应ROS版本melodic的配置,aubo i5机械臂ROS仿真控制及连接真实机械臂的控制。