ROS入门 — 1、ROS安装与配置

ROS入门 — 1、ROS安装与配置

一、 ros安装(Ubuntu-Noetic)

1.1 安装

1.1.1 配置软件仓库

在配置软件仓库过程中需要知道Ubuntu存储库的概念。

  • 存储库: 可以理解为Ubuntu内用来存放不同软件的地方
  • 四个主要的存储库:
    • Main: 规范支持的免费和开源软件。
    • Universe: 社区维护的免费和开源软件
    • Restricted: 设备的专有驱动程序。
    • Multiverse 受版权或法律问题限制的软件

安装ROS过程中要使用“restricted”“universe”和“multiverse”存储库,配置该三个存储库要进入Ubuntu的Software&Update中进行配置。如下如所示,在Software&Update勾选用到的三个存储库。
在这里插入图片描述

1.1.2 配置镜像源

ROS的官方下载源在国外,下载比较慢。推荐用国内的一些镜像源
官方源:

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'
1.1.3 设置密钥

配置密钥时是为了确认源代码是正确的,并且没有人在未经所有者授权的情况下,修改任何程序代码。并将其添加到操作系统的可信任列表中。

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
1.1.4 安装

更新源列表

sudo apt update

ROS安装,这里安装的ROS是完整的版的ROS,包含ROS所有组件。

sudo apt install ros-noetic-desktop-full

如果不需要使用这些组件的,只需要安装部分组件的ROS版本可以参考下面几种方式:

  • 桌面版(Desktop):包括了ROS-Base的全部组件,还有一些工具,比如rqt和rviz。
sudo apt install ros-noetic-desktop
  • ROS-Base(仅含骨架):ROS packaging,build,和communication库。没有图形界面(GUI)工具。
sudo apt install ros-noetic-ros-base
  • 安装一个特定的软件包
sudo apt install ros-noetic-PACKAGE
  • 查看或搜索所有可用的软件包
apt search ros-noetic
1.1.5 初始化 rosdep

该步骤用于melodic和Kinetic,这里写是为了记录当中的一些坑

sudo rosdep init
rosdep update

在执行这两步时,通常会出现异常,相关解决办法参考连接:

1.1.6 设置环境

需要使用时配置

source /opt/ros/noetic/setup.bash

一次性解决

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

注:

  • 如果同时安装了好几个ROS,~/.bashrc只会生效你当前使用的这个版本的setup.bash
  • 如果是用软件包管理器(例如“apt”)来安装ROS的,这些软件包,没有写入权限。当涉及到ROS软件包源码层面的操作或创建新ROS软件包时,要在具备读写权限的目录下工作,例如主目录(Home)

二、ROS文件系统

2.1 文件系统概念

软件包(Packages): 包是ROS代码的软件组织单元,每个软件包都可以包含程序库、可执行文件、脚本或其他构件。

Manifests(package.xml): 清单(Manifest)是对软件包的描述。它用于定义软件包之间的依赖关系,并记录有关软件包的元信息,如版本、维护者、许可证等。清单详细情况参考:package详细用法
在这里插入图片描述
ROS文件系统学习参考资料:ROS文件系统

2.2 文件系统工具

2.2.1 rospack
  • 作用: 获取软件包的有关信息
  • 用法: rospack options [package_name]
  • 常用: rospack find [package_name],该选项可以返回软件包的所在路径
2.2.2 roscd
  • 作用: 切换目录到某个软件包或者软件包集当中,也可以切换到一个软件包或软件包集的子目录中。
  • 用法: roscd [locationname[/subdir]],[locationname[/subdir]]=[包名[/包名更下一级目录]]
  • 特殊用法: roscd log,进入存储ROS日志文件的目录,如果你没有执行过任何ROS程序, 系统会报错说该目录不存在。
  • 注意: 就像ROS中的其它工具一样,roscd只能切换到那些路径已经包含在ROS_PACKAGE_PATH环境变量中的软件包。
2.2.3 rosls
  • 作用: 直接按软件包的名称执行 ls 命令(而不必输入绝对路径)
  • 用法: rosls [locationname[/subdir]]

2.3 创建ROS工作空间

2.3.1 ROS工作空间的组成

src

  • 作用: 放置源码
  • 包含:
    • package:功能包(ROS基本单元)包含多个节点、库与配置文件,包含所有字母小写,只能由字母、数字与下划线组成。
    • CMakeLists.txt:编译的基本配置

build

  • 作用: 编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。

devel

  • 作用: 开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。

ROS工作空间学习参考: ROS 的工作空间

2.3.2 创建ROS工作空间

在home目录下,创建工作空间使用目录

 mkdir -p ~/catkin_ws/src

进入创建的目录

 cd ~/catkin_ws/

使用catkin_make创建工作空间

catkin_make

2.4 ROS软件包

2.4.1 软件包的组成

  • CMakeList.txt: 配置编译规则,比如源文件、依赖项、目标文件
  • package.xml: 包信息,包括:包名、版本、依赖项
  • msg: 消息通信格式文件
  • srv: 服务通信格式文件
  • include: 源文件
  • launch: 可一次性运行多个节点
  • scripts: 储存python文件,.py、.sh
  • src: 储存C++源文件

2.4.2 创建软件包

2.4.2.1 创建软件包
  • 进入创建的工作空间
cd ~/catkin_ws/src
  • 创建软件包
 catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
 例如:catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
  • 构建软件包
    构建软件包也就是编译创建好的软件包
cd ~/catkin_ws
catkin_make

catkin_make首先输出它所使用到的每个空间所在的路径。
工作空间构建完成后,在devel子目录下创建了一个与你通常在/opt/ros/$ROSDISTRO_NAME下看到的目录结构类似的结构。

  • 工作空间添加到ROS环境中
. ~/catkin_ws/devel/setup.bash
2.4.2.2 查看包依赖
  • 一级依赖
    可以使用rospack命令工具来查看这些一级依赖包。
rospack depends1 beginner_tutorials/包名

rospack列出了在运行catkin_create_pkg命令时作为参数的依赖包,这些依赖关系存储在package.xml文件中。

roscd beginner_tutorials
cat package.xml

输出
<package>
...
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
...
</package>
  • 间接依赖
    在很多情况下,一个依赖包还会有它自己的依赖关系
rospack depends1 rospy

输出
genpy
roscpp
rosgraph
rosgraph_msgs
roslib
std_msgs
  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值