1 Ubuntu版本和ROS1系统

0 写在最前

  • ROS入门可以参考B站奥特雷柏视频教程 视频地址
  • 本栏目针对ROS1,在Ubuntu18.04平台上进行ROS1-melodic的简单学习

1.1配置各版本Ubuntu

VMware15链接:
链接:https://pan.baidu.com/s/1BbaGtDhjVXCWeS2vuk3bRw
提取码:7lzk
复制这段内容后打开百度网盘手机App,操作更方便哦

  • Ubuntu在下载好安装文件iso后,应该断网安装(速度快),默认英文操作环境。安装完系统,测试能不能连接上网络。

  • Ubuntu在安装ROS前应该设置software&update并换源

  • 在software&update里,将update Ubuntu的选项的四个全部勾选,然后可以把源换成中科大的源(这里一般在保存的时候会卡住…,卡住就直接关闭)

  • 在断网安装完后首先就要换源,操作方法如下:打开终端,输入sudo gedit /etc/apt/sources.list,然后将里面所有内容全部清除,换成对应版本的源。
    保存关闭,然后执行apt-get update完成换源。

  • 问题1:root权限在终端输入sudo gedit /etc/apt/sources.list出现拒绝访问的情况 答:先将权限调整到普通用户(exit可以退出root权限),输入xhost local:gedit或者在终端输入chmod 0666
    /etc/apt/sources.list 这样所有人都能修改了。之后别忘了chmod 0644 /etc/apt/sources.list
    改回这个文件的权限。

  • 问题2:在linux虚拟机中安装VM Tools 答:打开虚拟机的选项卡,点击安装vmtool,这时候会弹出vmtool的iso文件,然后把vmtool的iso解压到某个路径下。把解压后的vmtool-install.pl文件拖到终端里,得到路径(带单引号),利用cd跳转到没有单引号的路径下,再执行./vmtool-install.pl。第一个选项应该的打yes其与默认,就安装完了,然后在共享文件夹里就可以找到所共享的文件夹。注意,普通用户下安装不了就用su切换到超级用户。

  • 问题3:共享文件的位置 答:打开文件管理,点击其他位置,进入计算机里找到mnt文件夹,进去点击hgfs文件夹,里面就是共享文件。建议直接在计算机里面搜索,快好多。

1.2Ubuntu16.04与ROS-kinetic的安装

1.2.1Ubuntu16.04配置

输入 sudo gedit /etc/apt/sources.list,将里面的内容全部替换成:

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

保存关闭,然后sudo apt-get update

注意:此时可能出现的情况是提示任务被锁定了(如could not get lock /var/lib/dpkg/lock-fronted)。这时候可以运行命令sudo rm //var/lib/dpkg/lock-fronted,执行完再执行sudo rm /var/lib/dpkg/lock,然后再重新操作。如果继续失败尝试重启后再运行命令。

1.2.2安装ROS-kinetic版

    1. 注册ROS1
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://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
    1. 更新Ubuntu软件到最新版
sudo apt-get update
    1. 安装ROS1-kinetic
sudo apt-get install ros-kinetic-desktop-full

在执行Step5之前,直接操作可能会出现website error的错误,建议向打开hosts文件sudo gedit /etc/hosts
在文件末尾添加151.101.84.133 raw.githubusercontent.com保存后退出再执行Step5

    1. 初始化rosdep
sudo rosdep init
    1. 更新rosdep
rosdep update
    1. 添加ROS1到环境变量
sudo echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
    1. 激活环境变量
source ~/.bashrc 
    1. 安装Python-ROS安装工具
sudo apt-get install python-rosinstall

注意:在执行Step4的时候容易出现依赖项的问题,主要是源没有选取好,可以参考B站视频P14,P15

1.3Ubuntu18.04和ROS-melodic的安装

1.3.1Ubuntu18.04配置

输入 sudo gedit /etc/apt/sources.list,将里面的内容全部替换成:

deb http://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

保存关闭,然后sudo apt-get update

1.3.2ROS-melodic安装

依次执行下面的安装步骤

    1. 注册ROS1
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` 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 update
    1. 安装ros1-melodic
sudo apt install ros-melodic-desktop-full
    1. 初始化rosdep
sudo rosdep init
    1. 更新rosdep
rosdep update
    1. 添加ROS环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
    1. 激活ROS环境变量
source ~/.bashrc
    1. 安装ROS-melodic的Python下载工具
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

1.4 Ubuntu20.04与ROS-noetic安装

1.4.1 Ubuntu20.04换源配置

    1. 输入 sudo gedit /etc/apt/sources.list,将里面的内容全部替换成:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb 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 main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    1. 输入sudo apt-get update更新源和数据

1.4.2 安装ROS-noetic

    1. 添加ROS软件源
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-get update
    1. 安装ROS: sudo apt install ros-noetic-desktop-full
    1. rosdep初始化:sudo rosdep init,这一步大概率会报错,网上常用的方法就是利用域名转换,将raw.githubusercontent.com的地址换成一个能够ping的过去的域名,但是国内ROS开发爱好者尝试使用的sudo pip3 install rosdepc ,然后再sudo rosdepc init,最后rosdepc update

参考:本文之后,世上再无rosdep更新失败问题!如果有…小鱼就…
参考:rosdep init 错误解决终极方法(药到病除)

    1. 将ROS位置添加到环境变量中:echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc,然后刷新生效:source ~/.bashrc
    1. 熟悉的小乌龟验证ROS是否安装完成:roscorerosrun turtlesim turtlesim_noderosrun turtlesim turtle_teleop_key

在这里插入图片描述

1.5ROS系统框架

在这里插入图片描述
ROS开发者将ROS作为等式理解(百度ROS词条),即ROS=ROS库+通讯+工具+生态。后续也按照如此进行学习。

  • ROS库:ROS提供了广泛的库文件实现以基本的ROS编程和一些控制、感知的机器人功能。
  • 通讯:ROS是进程(也称为Nodes)的分布式框架系统,通过自身节点的通讯实现数据交互。
  • 工具:ROS提供了大量的工具组合用以配置、启动、自检、调试、可视化、登录、测试、终止等等。
  • 生态系统:ROS的发展离不开开源社区,ros.org尤其关注兼容性和支持文档,提供了一套“一站式”的方案使得用户得以搜索并学习来自全球开发者数以千计的ROS功能包。

下面从ROS的计算图和文件结构两个层面分析ROS项目基本工作层次。


1.5.1计算图

计算图包括节点、话题、服务和节点管理器,可以用来描述ROS系统的功能。其中的节点(node)是执行运算功能的模块,也叫软件模块。一个ROS系统包括多个节点,节点之间通过服务或者是话题来进行信息的交互。



在这里插入图片描述


1.5.2文件结构

在这里插入图片描述

ubuntu@ubuntu:~/Desktop/myRosPackage$ tree
.
├── action
├── cfg
├── CMakeList.txt
├── include
├── launch
├── msg
├── package.xml
├── scripts
├── src
└── srv

这些文件夹的主要功能如下:

  • action:放置功能包自定义的动作指令;
  • cfg:存放功能包自定义的动态重配参数文件;
  • include:放置功能包中需要用到的头文件;
  • launch:放置功能包中的所有启动文件;
  • msg:放置功能包自定义的消息类型;
  • scripts:放置可以直接运行的 Python脚本;
  • src:放置需要编译的C++代码;
  • srv:放置功能包自定义的服务类型
  • CMakeLists.txt:编译器编译功能包的规则。
  • package.xml:功能包清单。

TIPS: 功能包下面的文件夹名字如果出错,则在编译过程中会产生报错,例如在自定义的话题消息msg文件夹命名为msgs,则编译提示:CMake Error at /opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:94 (message):add_message_files() directory not found:

在这里插入图片描述

1.6 创建ROS项目的基本方法

1.6.1 创建工作空间

    1. 在磁盘新建文件夹,作为工作空间。举例在home文件夹下新建了一个文件夹catkin_ws作为工作空间的根目录。
    1. 在catkin_ws工作空间下新建src文件夹。
    1. 用cd命令进入到src目录下,输入命令catkin_init_workspace对项目进行初始化。执行成功后src目录下回出现CamkeLists.txt文件。
    1. 进入到工作空间根目录catkin_ws下,输入命令catkin_make进行编译初始化,执行成功后catkin_ws目录会多出两个文件夹devel和build。
    1. 在根目录catkin_ws下,输入gedit ~/.bashrc,利用gedit编辑器对bashrc编辑,主要是把source ~/catkin_ws/devel/setup.bash添加进去(仿造ROS的源环境变量,只是换了路径),关闭文档,执行source ~/.bashrc来设置工作空间的环境变量。执行成功后,可以新建一个终端,输入echo $ROS_PACKAGE_PATH查看环境变量是否添加进去。

1.6.2 添加功能包和编译

    1. 用cd进入到src目录下来创建功能包,其命令为catkin_create_pkg 包名 依赖项1 依赖项2…,先为了执行通信例子,创建listen and talk功能包,即catkin_creat_pkg topic_communication std_msgs rospy roscpp
    1. 编译功能包,进入到工作空间根目录下,执行编译命令catkin_make来编译功能包。

接下来,开启ROS的编程学习。

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值