-->

signed

QiShunwang

“诚信为本、客户至上”

UR机械臂学习(2):ROS环境安装

2021/6/3 16:28:49   来源:
  • UR机械臂基础学习
    e 系列核心专题
    示教器学习

01 准备工作

1.1 ros简单学习

因为之前没有接触过Ubuntu系统,所以先在线上平台简单学习了一下ROS平台的操作。

  • ros线上学习:ROS在线实训平台

1.2 Ubuntu系统安装

因为没接触过Ubuntu系统,所以先选择了虚拟机安装。安装过程参考:

  • 软件管家 | 虚拟机安装Linux系统教程(Ubuntu 18.04.1)

双系统安装Ubuntu可以参考:

  • Windows10安装ubuntu18.04双系统教程

虚拟机安装完成后有黑边的话,可以安装VMware Tools

1.2.1 VMware Tools安装过程:

  1. 点击VMware菜单栏 - 虚拟机 - 安装VMware Tools,接下来桌面上将会出现安装包,如下图所示:
    在这里插入图片描述
  2. 点击进入安装包,把VMwareTo……tar.gz复制到希望安装的目录下。然后在安装目标下右键安装包,选择提取到此处,将压缩包进行解压
    在这里插入图片描述
  3. 进入解压后的vmware-tools-distrib文件夹,然后在此处打开终端(右键,在终端中打开)
  4. 输入sudo ./vmware-install.pl,输入用户密码,在确定安装的时候输入y,接下来全部回车默认就可以了
  5. 安装完毕,界面就可以适应窗口了

1.2.2 虚拟机无法上网问题

在VMware界面,右键虚拟机-选择“设置”
按如下设置,然后重启客户机,就可以上网啦
在这里插入图片描述

02 安装ROS

ROS安装的官方教程:http://wiki.ros.org/melodic/Installation/Ubuntu

安装的过程主要参考:

  • https://www.bilibili.com/read/cv3778425
  • https://blog.csdn.net/qq_41450811/article/details/99079041

2.1 Ubuntu环境配置

  1. 点击左下角“显示应用程序”,搜索“软件与更新
    在这里插入图片描述
  2. 勾选Universe,restricted,multiverse及源代码四项;
    修改下载源为国内镜像(阿里云、中科大的都可以,国外源速度也许会很慢)
    具体设置如下图所示:
    在这里插入图片描述

2.2 添加ROS下载源和下载密钥

  1. 官方的源国内使用可能速度较慢,我们使用清华或中科大的源,运行下面命令中的一条即可:

❤ 中科大的源:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

❤ 清华的源:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 添加下载密钥:
    如果在连接服务器时遇到了问题,中间的 hkp://keyserver.ubuntu.com:80 行可替换为:hkp://ha.pool.sks-keyservers.net:80hkp://pgp.mit.edu:80
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

# 备用1
sudo apt-key adv --keyserver 'hkp://ha.pool.sks-keyservers.net:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# 备用2
sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

2.3 安装ROS

  1. 首先更新一下系统:
sudo apt update
  1. 如果是为了学习ROS,一般推荐安装 Desktop-Full
    里面包含了 : ROS, rqt, rviz, , 2D/3D 仿真 and 2D/3D 感知等,比较的全面,不然很多的库再在开发过程当中就会提示缺失。
sudo apt install ros-melodic-desktop-full

除了上面的安装方法,还可以根据需求安装下面的方式进行安装:

  • Desktop,但是相对来说不是很全 只包含了ROS, rqt, rviz和其他一些常用的库。如果对ros需求不是很大可以装这个版本。
sudo apt install ros-melodic-desktop
  • ROS-Base,这个版本就只包含了一些ROS的基本的东西,没有GUI工具,机载处理器推荐安装这个,比较省空间
sudo apt install ros-melodic-ros-base
  • 单独的包,如果缺少或需要添加某一个包(package),可以通过这种方式安装
sudo apt install ros-melodic-slam-gmapping
  • 另外,通过下面命令可以查看以及安装好的包(package)
apt search ros-melodic

2.4 配置ROS

  1. 初始化rosdep
    初始化rosdep是使用ROS前必要的一步。它可以为你在编译某些源码时为其安装一些系统依赖,同时也是某些ROS核心功能组件所必须用到的工具。
sudo rosdep init
rosdep update
  1. ROS环境配置
    ROS的环境配置,使得你每次打开一个新的终端,ROS的环境变量都能够自动配置好,也就是添加到bash会话中,因为命令 source /opt/ros/kinetic/setup.bash 只在当前终端有作用,即具有单一时效性,要想每次新开一个终端都不用重新配置环境,就用echo语句将命令添加到bash会话中。
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 安装rosinstall 和其他依赖
    rosinstall是ROS中一个独立分开的常用命令行工具,它可以方便让你通过一条命令就可以给某个ROS软件包下载很多源码树。
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

2.5 测试ROS

  1. 首先启动ROS,在一个终端输入代码运行roscore:
roscore
  1. 再打开一个终端,输入:
rosrun turtlesim turtlesim_node
  1. 再打开第三个终端,输入:
rosrun turtlesim turtle_teleop_key

这是会看到弹出一个窗口,并有一只小海龟,通过键盘上的上下左右键可以控制小乌龟的运动。这表明你的ROS以及成功安装并正常运行。
(注意:只有当鼠标停留在第三个打开的终端时,键盘才可以正常控制小海龟)

03 上述命令总结

1、添加软件源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2、添加秘钥

sudo apt-key adv --keyserver 'hkp://ha.pool.sks-keyservers.net:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3、安装ROS

sudo apt update
sudo apt install ros-melodic-desktop-full

4、初始化rosdep

sudo rosdep init
rosdep update

5、配置环境

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6、安装rosinstall

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

6、测试ROS是否安装成功(运行小海龟)

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key