包 执行ros_学习干货 | ROS入门一:ROS安装、环境配置与catkin工作空间

本文详细介绍了ROS的安装过程,包括环境配置,并深入讲解了catkin工作空间的创建与使用,是ROS初学者的实用指南。
摘要由CSDN通过智能技术生成
  小出终于下定决心要学ROS了,看完ROS官网教程对ROS还是一知半解的。本着我一贯的学习理念,光看只能学到25%,边看边用能学到50%,用完反思总结复盘能学到75%,要想真正100%理解掌握一样东西则要靠长期积累,现在杂乱地看了一堆资料,把学到的知识系统化、有条理地总结复盘一下,以期形成一个清晰的知识体系。 一、ROS安装   ROS即机器人操作系统,ROS有很多版本,其中Kinetic只支持到2021年,选择可支持到2023年的Melodic版本安装。在Ubuntu中安装,按照官网教程步骤走即可:http://wiki.ros.org/cn/melodic/Installation/Ubuntu。 二、ROS环境配置和catkin工作空间创建   1、环境配置    RO S 需 要 你将你想运行的 软件包 添加到 脚本环境中才可以 正常运行 该软件包。 在安装ROS时, 按照 步骤用 source命令 将set up 等文件 添加到 脚本环境中 ,设置好ROS_ROOT等环境变量。使用命令可以查看环境是否配置好:
printenv | grep ROS
   如果没有配置好,则需要用命令配置环境(以下路径应按照你的具体情况修改,修改为setup.bash所在路径,但一般来说就是下面的路径):
source /opt/ros/melodic/setup.bash
  每次打开终端都必须配置环境才能运行ros相关的命令。想要运行任何ros相关的命令,都需要source这个setup文件;想要运行你自己的软件包,则需要source你的软件包的setup文件,否则会提示找不到此文件。这样相当繁琐,我们可以直接在.bashrc文件(这个文件主要保存个人的一些个性化设置,如命令别名、路径等)中添加我们常用软件包的source命令,登陆linux启动bash时首先会运行这个文件,我们的设置会在开机时就生效。设置方法:
vim /home/用户名/.bashrc
在最后一行按“a”,即可以编辑文件,在文件最后一行加入
source /opt/ros/melodic/setup.bash(或其他你常用的软件包的路径,如source ~/catkin_ws/devel/setup.bash)
然后按“Esc”,切换到字母大写模式,按两下Z(即按“ZZ”)。   如果不熟悉vim操作,也可用
gedit /home/用户名/.bashrc
此命令直接打开文件,在最后一行加入source命令,关闭即可。   也可以直接在终端用命令进行上述工作:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrcsource ~/.bashrc
  2、catkin工作空间创建   接下来我们了解一下catkin是什么。据说(网上搬运)“ROS 的早期开发者Willow Garage根据办公室周围柳树上的花取了catkin 这个名字”。查了下willow garage不是一个人而是一家公司,个人觉得更有可能的是willow(柳树)把自己的心血结晶起名为柳絮(catkin)。   在我们开发基于ROS的机器人项目时,需要在一个独立的工作空间里完成,这个单 独的工作空间是一个包含功能包、可编辑源文件和编译包等的文件夹,方便编译不同的功能包,并且可以保存本地开发包。这个工作空间就叫做catkin工作空间。工作空间里面的软件包叫做catkin 包。   所有 ROS 软件组件都以catkin 包的形式组织并发布。ca tkin包可能包括源代码文件、有用的脚本、配置文件等,这些资源在一起就构成了一个有用的模块,即一个catkin包。c atkin 工作空间本质上是就一个包含catkin包的顶级目录(但不仅仅包含catkin包),我们可以在这里编写、修改并安装 catkin 包。可以想象下,一个ROS项目就是一本书,catkin工作空间就是这本书的目录,catkin包就是章,每一个catkin包里可能还有其他包,即每一章里面还包含小节。   下面详细介绍catkin工作空间的架构,然后再手动创建一个catkin工作空间。   一个典型catkin工作空间的布局是这样的:
workspace_folder/         -- WORKSPACE  src/                    -- SOURCE SPACE    CMakeLists.txt        -- The 'toplevel' CMake file    package_1/      CMakeLists.txt      package.xml      ...    package_n/      CATKIN_IGNORE       -- Optional empty file to exclude package_n from being processed      CMakeLists.txt      package.xml      ...  build/                  -- BUILD SPACE    CATKIN_IGNORE         -- Keeps catkin from walking this directory  devel/                  -- DEVELOPMENT SPACE (set by CATKIN_DEVEL_PREFIX)    bin/    etc/    include/    lib/    share/    .catkin    env.bash    setup.bash    setup.sh    ...  install/                -- INSTALL SPACE (set by CMAKE_INSTALL_PREFIX)    bin/    etc/    include/    lib/    share/    .catkin                 env.bash    setup.bash    setup.sh    ...
  可以看到,一个catkin工作空间包含四个不同的子空间:源代码空间source space(src); 编译空间build space(build); 开发空间development space(devel); 安装空间install space(install)。在软件的开发过程中,它们每个都扮演着一定角色。 ①源代码空间src: 这个文件夹放置各个catkin 包的源代码和一个用于这些包的CMake配置文件CMakeLists.txt。如果我们要借助其他包来创建我们自己的软件包,这就是我们提取、检查、克隆源代码的地方。此空间下的每个文件夹中都包含一个或多个catkin包。此空间中包含一个CMakeLists文件,且每个包中都包含一个CMakeLists文件。这是由于ROS中的源码要采用catkin工具进行编译,而catkin工具又是基于CMake技术的,所以当我们在工作空间中编译catkin项目时,会使用CMake调用此类文件。在src目录下调用catkin_init_workspace 可以生成CMakelists。 ②编译空间build:这个文件夹是CMake编译源代码空间中的catkin包的地方。CMake和catkin编译功能在运作时产生的缓存信息和其他中间文件将会保存在这里。此空间可以不包含在工作空间内,也可以不与源代码空间区分开,但建议还是按照上述架构来做。 ③开发空间devel: 这个文件夹放置编译好的可执行程序,这些可执行程序是不需要安装就能直接运行的。一旦catkin源码编译和测试通过后,可以将这些编译好的可执行文件直接导出与其他开发人员分享。开发空间的位置由一个特定的编译变量CATKIN_DEVEL_PREFIX控制,默认位置其实是在编译空间下:/develspace,其原因是,如果你在build空间下用“cmake ..”编译,编译发生的地点却不在当前文件夹(build空间)中,会不符合常用者的习惯。然而,官网的说法还是建议把开发空间的目录设置为与编译空间同级。 ④安装空间install:一旦编译了目标,就可以通过调用install命令(通常为make install)将它们安装到安装空间中。安装空间不一定要包含在工作区中。当提到可能是“开发空间”或“安装空间”之一的文件夹时,通常使用术语结果空间result space。   下面来创建一个catkin工作空间。
mkdir -p ~/catkin_ws/srccd ~/catkin_wscatkin_make
【说明:我的python版本是2.7,对于Python 3 用户 ,在一个空的catkin工作空间中第一次运行 catkin_make 的命令应为
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
在随后的编译中可以只用catkin_make。】   catkin_make是在catkin工作空间中非常有用的编译工具。调用它时,要确保在catkin工作空间的根目录下,不要进入子目录。为了说明catkin_make命令的强大,我们来看看它做了什么事情:调用catkin_make等价于调用以下命令(第一行不算):
cd ~/catkin_wscd srccatkin_init_workspacecd ..mkdir buildcd buildcmake ../src -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../develmake
第一次在你的工作空间中运行catkin_make时,它会在你的src文件夹里创建一个CMakeLists.txt的链接。运行上述命令后,当前目录下应已经生成 了build和devel两个文件夹,在devel空间下可以看到几个setup文件。 source 这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境 的最 顶层。为了接下来教程的运行,将生成的setup文件配置到环境中:
source devel/setup.bash
要想保证工作空间已配置正确,需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:
echo $ROS_PACKAGE_PATH(应该会显示:/home//catkin_ws/src:/opt/ros/melodic/share)
注意,如果下次还要用我们刚刚构建的 catkin_ws 工作空间,则每次使用都用重新source此文件,为了避免麻烦,需要使用我在环境配置中讲的方法把source命令写入bashrc文件中,以让其自动执行:
vim /home/用户名/.bashrc
在最后一行加入
source ~/catkin_ws/devel/setup.bash
或用命令行直接加入,如下:
echo "export ROS_PACKAGE_PATH=~/catkin_ws:${ROS_PACKAGE_PATH}" >> ~/.bashrcsource ~/.bashrc
  现在我们的第一个catkin 工 作 环境已经搭建完成。      码字累啦,明天继续写ROS入门二。 -To Be Continued-

b43d2c851c8e044a54e9ab441feffd06.png

From WLOP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值