[ROS](01)创建ROS工作空间

  文章只是个人学习过程中学习笔记,主要参考ROS教程1


1. 创建catkin工作空间

  Catkin工作空间是一个文件夹,可以在其中修改、构建和安装 catkin 包。

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

  在运行上述命令后,在catkin_ws工作空间下有builddevelsrc这个三个目录文件夹(这3个catkin编译系统默认的)。

  • build(Build Space):catkin(CMake)的缓存信息和其他中间件
  • devel(Development Space):生成目标文件(包括头文件、动态链接库、静态链接库、可执行文件等)、环境变量
  • src(Source Space):ROS的catkin软件包(源码)
    [ROS](01)创建ROS工作空间_第1张图片

Tips:早期有些教程仍然保留catkin_init_workspace这条初始化命令,它的作用就是在catkin_ws工作空间的src目录下创建CMakeLists.txt 文件。但实际上catkin_make命令包含了catkin_init_workspace,不必再调用了(当然你也可以使用,没有任何影响)。

  接下来设置环境变量,首先source一下新生成的setup.*sh文件(在devel目录下可看见几个setup.*sh):

source devel/setup.bash

  但是上述命令只适用当前终端,这导致每次打开新的终端都需要source命令一下,重新刷新环境变量,才能使用ROS相关命令。解决办法是,在终端中输入如下命令,如此每次打开终端,.bashrc会自动运行:

 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
 source ~/.bashrc

   我们用 vi 编辑器打开 ~/.bashrc 文件,在文件的末尾(红色框内)这行就是我们添加的ROS系统的环境变量,上一行是我们创建的catkin_ws工作空间的环境变量。在终端中输入如下命令:

vi ~/.bashrc

[ROS](01)创建ROS工作空间_第2张图片
  想要查看环境变量,在终端中输入如下命令:

 echo $ROS_PACKAGE_PATH

  通过上述命令后,显示包含那些保存有ROS软件包的路径,并且每个路径之间用冒号(:)分隔开来。
在这里插入图片描述

路径PATH格式:/home/<username>/catkin_ws/src:/opt/ros/<distro>/share

2. catkin工作空间结构

要查看catkin工作空间的结构,可以使用tree命令,显示文件结构,在终端中输入如下命令:

cd ~/catkin_ws
sudo apt install tree
tree

显示的结构如下所示:

.
├── build
│   ├── atomic_configure
│   │   ├── env.sh
│   │   ├── local_setup.bash
│   │   ├── local_setup.sh
│   │   ├── local_setup.zsh
│   │   ├── setup.bash
│   │   ├── setup.sh
│   │   ├── _setup_util.py
│   │   └── setup.zsh
│   ├── catkin
│   │   └── catkin_generated
│   │       └── version
│   │           └── package.cmake
│   ├── catkin_generated
│   │   ├── 
......
├── devel
│   ├── cmake.lock
│   ├── env.sh
│   ├── lib
│   ├── local_setup.bash
│   ├── local_setup.sh
│   ├── local_setup.zsh
│   ├── setup.bash
│   ├── setup.sh
│   ├── _setup_util.py
│   └── setup.zsh
└── src
    └── CMakeLists.txt -> /opt/ros/melodic/share/catkin/cmake/toplevel.cmake

  1. ROS.otg. ROS教程[EB/OL]. 2020-12-22[2022-7-5]. http://wiki.ros.org/cn/ROS/Tutorials. ↩︎

你可能感兴趣的:(ROS,笔记,ubuntu)