Bootstrap

虚拟机上的ubuntu安装ROS


前言

  安装ROS之前,我们需要先安装虚拟机和ubuntu,这里我安装的是ubuntu18.04,这个大家网上找教程安装就可以。
  本次记录主要是为了学习视觉引导机器人机械臂的抓取,在此之前需要安装好ROS系统,但在安装过程中遇到一些问题就此记录一下并和大家分享。
  参考博客:虚拟机安装+Ubuntu安装+ROS安装

  建议在安装之前,怕损坏ubuntu或者担心安装不好,可以使用快照功能,有了快照就不怕失败(大不了重开),具体操作可参考:虚拟机快照详解

  ROS(Robot Operating System)支持多个Ubuntu版本,但不是所有的ROS版本都支持所有的Ubuntu版本。ROS的支持版本通常会依赖于ROS的发行版和Ubuntu的发行版。以下是一些ROS版本和它们对应的Ubuntu版本的常见组合:

ROS Kinetic Kame:
ROS Kinetic是支持Ubuntu 16.04 LTS的版本。
ROS Melodic Morenia:
ROS Melodic是支持Ubuntu 18.04 LTS的版本。
ROS Noetic Ninjemys:
ROS Noetic是支持Ubuntu 20.04 LTS的版本。


一、ROS安装

  1. 打开软件和更新,点击下图的下三角,选择其他站点,我们将下载源切换为ftp.sjtu.edu.cn,然后输入密码即可。
    请添加图片描述
    在这里插入图片描述
  2. 点击关闭 ,会弹出如下界面,点击重新载入
    在这里插入图片描述
      在这里报错了
    在这里插入图片描述

  细节展开,具体错误为:E:Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi’, E:Sub-process returned an error code

  解决方案

sudo apt-get purge libappstream4
sudo apt-get update

在这里插入图片描述
  回到软件和更新,先切换到中国的服务器,然后再切换回ftp.sjtu.edu.cn,点击关闭,就可以正常下载完成了。

  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'
  1. 设置密钥(密钥不能错)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  1. 输入密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
  1. 更新升级列表
sudo apt update
  1. 成功之后就安装ROS了
sudo apt-get install ros-melodic-desktop-full

注意:ros-melodic-desktop-full中的melodic更换成自己ubuntu版本对应的Ros版本

  这里出现如下报错:

下列软件包有未满足的依赖关系:
ros-melodic-desktop-full : 依赖: ros-melodic-desktop 但是它将不会被安装
依赖: ros-melodic-perception 但是它将不会被安装
依赖: ros-melodic-simulators 但是它将不会被安装
依赖: ros-melodic-urdf-sim-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

  解决方案:
  将所提到的四个依赖软件包进行aptitude安装:

sudo aptitude install ros-melodic-desktop ros-melodic-perception ros-melodic-simulators ros-melodic-urdf-sim-tutorial

  这里参考博客:解决ros-melodic-desktop-full安装过程中未满足的依赖关系问题
在这里插入图片描述

  1. 安装rosdep
sudo apt-get install python3-pip 
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update
  1. 配置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 安装依赖
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

二、测试ROS

  下面测试一下功能,如果可以使用则说明安装成功了。

roscore

  出现如下报错:
在这里插入图片描述
  这里参考博客:
roscore失败,chatgpt来解决“Traceback (most recent call last): File “/opt/ros/melodic/lib/python2…
  使用以下两条命令

提示,将下面的zg换成你的用户账号

sudo mkdir -p /home/zg/.ros/
sudo chown -R zg:zg /home/zg/.ros/

  接着重新打开ros

roscore

在这里插入图片描述
  再打开一个终端,输入下面代码可以看见一个蓝色底的界面,中间有只乌龟

rosrun turtlesim turtlesim_node

在这里插入图片描述
  保持以上两个终端打开,再打开一个终端,输入下面代码,就可以通过键盘上下左右控制乌龟运动

rosrun turtlesim turtle_teleop_key

提示:在打开第三个终端之后,想控制乌龟移动,需要鼠标点击第三个终端窗口(激活该窗口),然后键盘输入上下左右才能控制乌龟移动

在这里插入图片描述
  至此ROS就安装完成了。

;