ROS 是机器人操作系统(Robot Operating System)的英文缩写。 ROS 是用于编写机器人软件程序的一种具有高度灵活性的软件架构。
ROS 图标 :
ROS 是开源的,是用于机器人控制的一种后操作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库用于获取、建 立、编写和运行多机整合的程序。
ROS 的首要设计目标是在机器人研发领域提高代码复用率。ROS 是一个分布式的进程(也就是 “节点” )框架,这些进程被封装在易于被分享和发布的程序包和功能包中。ROS 也支持一种类似于代码储存库的联合系统,这个系统也可以实现工程的协作及发布。这个设计可以使一个工程的开发实现从文件系统到用户接口完全独立决策(不受 ROS 限制)。同时,所有的工程都可以被 ROS 的基础工具整合在一起。
很多人都在问“ROS与其它机器人软件平台有什么不同?”这是一个很难解答的问题。因为ROS不是一个集成了大多数功能或特征的框架。事实上,ROS 的主要目标是为机器人研究和开发提供代码复用的支持。ROS是一个分布式的进程(也就是节点)框架,这些进程被封装在易于被分享和发布的程序包和功能包集中。ROS也支持一种类似于代码储存库的联合系统,这个系统也可以实现工程的协作及发布。这个设计可以使一个工程的开发和实现从文件系统到用户接口完全独立决策(不受ROS限制)。同时,所有的工程都可以被ROS的基础工具整合在一起。
为了支持共享和协作这一主要目标,ROS 框架还有其他几个特点:
通过ROS,我们能够在虚拟环境中实现对机械臂的仿真控制。
我们将通过 rviz 平台实现对机械臂的可视化,并使用多种方式对我们的机械臂进行操作;通过 moveit 平台进行机械臂行动路径的规划和执行,达到自由控制机械臂的效果。
我们将在接下来的章节中学习如何通过ros中的平台对我们产品的控制进行控制。
MoveIt 是目前针对机械臂移动操作的最先进的软件,已在 100 多个机器人上使用。它综合了运动规划、控制、3D 感知、运控学、控制和导航的最新成果,提供了开发先进机器人应用的易用平台,为工业、商业和研发等领域的机器人新产品的设计和集成体用评估提供了一个集成化软件平台。
MoveIt 图标 :
使用设备:myCobot 280 PI
前往官方网站下载虚拟机Virtual Box 或者前往官方网站下载虚拟机 VM ware
当然,如果您已经拥有您的虚拟机,您可以跳过该步骤。
我们选择下载Virtual box,因为它是免费的。
2.1 创建虚拟机
在控制中选择新建
输入虚拟机名称和虚拟机存放的位置,选择虚拟机类型为Linux,选择ubuntu64位版本,进行下一步。
按照自己的需求配置内存大小,进行下一步。
选择现在创建虚拟硬盘,进行创建。
虚拟硬盘类型选择VDI类型,进行下一步。
分配虚拟硬盘大小,由于需要安装ubuntu系统,而且还会在该系统中进行操作,建议大小不要低于20G。
2.2 导入ubuntu系统
2.2.1 下载ubuntu系统。
请根据自己的需要选择ubuntu版本进行安装
三种版本的安装方法和过程都是相同的,这里以18.04版本作为例子进行安装
下载完成后有如图文件:
2.2.2 导入ubuntu到虚拟机中
在Virtual box中找到之前安装的虚拟机,进入设置,并在存储中给控制器分配光盘:
然后打开虚拟机进行ubuntu安装,并点击启动。
2.2.3 ubuntu安装
等待系统启动,进入欢迎界面,选中“中文(简体)”,并点击“安装 Ubuntu”按钮;
点击“继续”按钮;
选中“清除整个磁盘并安装 Ubuntu”选项,点击“现在安装”按钮;
在弹出的对话框中点击“继续”按钮;
设置地理位置,点击“继续”按钮;
设置用户名和密码,点击“继续”按钮;
进入系统安装界面,请耐心等待;
待安装完成,在弹出的对话框中,点击“现在重启”按钮,完成安装。
基本的开发环境搭建需要安装机器人操作系统 ROS、MoveIt 以及 git 版本管理器,以下分别介绍其安装方法及流程。
myCobot 280-PI需要执行 mycobot_ros 安装包的安装。
1.1.1 版本选择
ROS 跟 ubuntu 有一一对应的关系,不同版本的 ubuntu 对应不同版本的 ROS,参考网站见下:Distributions - ROS Wiki
请根据自己安装的Ubuntu版本进行对应ROS版本的安装
如果版本不同,下载将会失败.在这里我们选择的系统为 Ubuntu 18.04, 对应 ROS 版本为 ROS Melodic
NOTE: 目前我们不提供 windows 安装 ROS 的任何参考, 若有需要请参考 https://www.ros.org/install/
1.1.2 开始安装
1 添加源
Ubuntu 本身的软件源列表中没有 ROS 的软件源,所以需要先将 ROS 软件源配置到软件列表仓库中,才能下载 ROS 。打开一个控制台终端(快捷键Ctrl+Alt+T),输入如下指令:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) 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/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
这里会要求输入用户密码,输入安装 Ubuntu 时设置的用户密码即可。
2 设置秘钥
配置公网秘钥,这一步是为了让系统确认我们的路径是安全的的,这样下载文件才没有问题,不然下载后会被立刻删掉:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
执行结果显示如下:
3 安装
在加入了新的软件源后,需要更新软件源列表,打开一个控制台终端(快捷键Ctrl+Alt+T),输入如下指令:
sudo apt-get update
执行安装 ROS,打开一个控制台终端(快捷键Ctrl+Alt+T),请按照自己的Ubuntu版本选择输入以下指令:
# Ubuntu 16.04
sudo apt install ros-kinetic-desktop-full
# Ubuntu 18.04
sudo apt install ros-melodic-desktop-full
# Ubuntu 20.04
sudo apt install ros-noetic-desktop-full
这里推荐安装完整的 ROS,防止库和依赖的缺失。
安装过程耗时比较长,需要耐心等待
sudo gedit /etc/apt/sources.list
Ubuntu 16.04版本:
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
Ubuntu 18.04版本:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
Ubuntu 20.04版本:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
sudo apt-get update
# Ubuntu 16.04
sudo apt install ros-kinetic-desktop-full
# Ubuntu 18.04
sudo apt install ros-melodic-desktop-full
# Ubuntu 20.04
sudo apt install ros-noetic-desktop-full
安装过程耗时比较长,需要耐心等待
4 配置 ROS 环境到系统
rosdep 让你能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖,在终端依次执行以下命令,打开一个控制台终端(快捷键Ctrl+Alt+T)。
如果您的系统没有安装rosdep,请使用命令sudo apt install python-rosdep
进行安装。
如果您的安装的Ubuntu系统是20.04版本,请使用命令sudo apt install python3-rosdep
进行安装,完成后执行rosdep初始化命令。
初始化 rosdep:
sudo rosdep init
若出现如下图所示的错误提示:
解决方法: 修改hosts文件,控制台终端输入下面的指令:
sudo gedit /etc/hosts
在文件内容末端,加入以下两个网址的IP地址实现访问:
199.232.28.133 raw.githubusercontent.com
151.101.228.133 raw.github.com
修改完成后,在控制台终端执行:
sudo rosdep init
rosdep update
初始化完成后,为了避免每次关掉终端窗口后都需要重新生效 ROS 功能路径,我们可以把路径配置到环境变量中,这样在每次打开新的终端时便可自动生效 ROS 功能路径 在终端依次执行以下命令,打开一个控制台终端(快捷键Ctrl+Alt+T):
1.1.3 设置ros环境
Bash
执行以下命令:
# Ubuntu 16.04
# 将 ros 环境加入到当前控制台的环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
# Ubuntu 18.04
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
# Ubuntu 20.04
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
Zsh
如果使用zsh代替bash,那么:
# Ubuntu16.04
echo "source /opt/ros/kinetic/setup.bash" >> ~/.zshrc
# Ubuntu18.04
echo "source /opt/ros/melodic/setup.bash" >> ~/.zshrc
# Ubuntu20.04
echo "source /opt/ros/noetic/setup.bash" >> ~/.zshrc
source ~/.zshrc
安装 ROS 额外依赖项
在终端输入以下命令安装ROS额外依赖项,打开一个控制台终端(快捷键Ctrl+Alt+T):
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
如果你的Unbutu系统是20.04版本,请执行以下命令安装:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
# Ubuntu 16.04
sudo apt install ros-kinetic-joint-state-publisher-gui
# Ubuntu 18.04
sudo apt install ros-melodic-joint-state-publisher-gui
# Ubuntu 20.04
sudo apt install ros-noetic-joint-state-publisher-gui
1.1.4 验证安装
ROS 系统的启动需要一个 ROS Master,即节点管理器,我们可以在终端输入 roscore 指令来启动 ROS Master。
为了验证 ROS 是否安装成功,打开一个控制台终端(快捷键Ctrl+Alt+T),在终端执行以下命令:
roscore
当显示如下界面,则表示 ROS 安装成功
roscore命令启动了一个节点管理器,其作用就是用于节点管理,在一个ros系统中,有且只有一个,它是ros节点运行的前提,所以在执行启动ros节点前,第一步都需要执行roscore。
更多更详细的安装指导,可以参考官方的安装指导,网址: ROS/Installation - ROS Wiki
MoveIt 是 ros 中一系列移动操作的功能包的组成,主要包含运动规划,碰撞检测,运动学,3D 感知,操作控制等功能。
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,以更新软件源列表:
sudo apt-get update
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,执行 MoveIt 的安装:
# Ubuntu16.04
sudo apt-get install ros-kinetic-moveit
# Ubuntu 18.04
sudo apt-get install ros-melodic-moveit
# Ubuntu20.04
sudo apt-get install ros-noetic-moveit
将 git 安装的软件源添加到 ubuntu 的软件源列表中,打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令:
sudo add-apt-repository ppa:git-core/ppa
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,以更新软件源列表:
sudo apt-get update
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,执行 git 的安装:
sudo apt-get install git
读取 git 版本,打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令:
git --version
在终端中可以显示 git 版本号,如下,即为安装成功
在后续下载 ros 包需要用到git,git 的使用可以参考下面链接:
mycobot_ros
是 ElephantRobotics 推出的,适配旗下桌面型六轴机械臂 mycobot系列 的ROS 包。
项目地址:http://github.com/elephantrobotics/mycobot_ros
在安装包之前,请保证拥有 ros 工作空间。
这里我们给出创建工作空间的样例命令,打开一个控制台终端(快捷键Ctrl+Alt+T),在命令行输入以下命令:
mkdir -p ~/catkin_ws/src # 创建文件夹
cd ~/catkin_ws/src # 进入文件夹
catkin_init_workspace # 把当前目录初始化为一个ROS工作空间
cd .. # 返回上级目录
catkin_make # 构建工作区中的代码。
添加工作空间的环境
Bash
下文将以
来代指电脑中ROS的工作空间路径,请确保在执行下面命令时将
替换为你本机的真实路径。
# Ubuntu 16.04
echo "source ~//devel/setup.bash" >> ~/.bashrc
# Ubuntu 18.04
echo "source ~//devel/setup.bash" >> ~/.bashrc
# Ubuntu 20.04
echo "source ~//devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
Zsh
如果使用zsh代替bash,那么:
# Ubuntu16.04
echo "source ~//devel/setup.bash" >> ~/.zshrc
# Ubuntu18.04
echo "source ~//devel/setup.bash" >> ~/.zshrc
# Ubuntu20.04
echo "source ~//devel/setup.bash" >> ~/.zshrc
source ~/.zshrc
NOTE:
pymycobot
快速安装:pip install pymycobot --upgrade
执行pip install pymycobot --upgrade命令时,若出现如下图错误提示:
根据提示输入以下命令安装pip
sudo apt install python-pip
如果你的Ubuntu系统是20.04版本,请执行命令sudo apt install python3-pip
安装pip pip安装完成后,终端再次执行
pip install pymycobot --upgrade
安装方式依赖于Git,请确保电脑中已安装Git。
下文将以
来代指电脑中ROS的工作空间路径,请确保在执行下面命令时将
替换为你本机的真实路径。
cd ~//src # 进入工作区的src文件夹中
# 克隆github上的代码
git clone https://github.com/elephantrobotics/mycobot_ros.git
cd .. # 返回工作区
catkin_make # 构建工作区中的代码
cd ..
source /devel/setup.bash # 添加环境变量
至此,ROS环境搭建已完成。