当前位置:网站首页>[ROS](01)创建ROS工作空间
[ROS](01)创建ROS工作空间
2022-08-02 14:02:00 【CynalFly】
文章只是个人学习过程中学习笔记,主要参考ROS教程1。
1. 创建catkin工作空间
Catkin工作空间是一个文件夹,可以在其中修改、构建和安装 catkin 包。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
在运行上述命令后,在catkin_ws工作空间下有build、devel、src这个三个目录文件夹(这3个catkin编译系统默认的)。
build(Build Space):catkin(CMake)的缓存信息和其他中间件devel(Development Space):生成目标文件(包括头文件、动态链接库、静态链接库、可执行文件等)、环境变量src(Source Space):ROS的catkin软件包(源码)
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

想要查看环境变量,在终端中输入如下命令:
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
ROS.otg. ROS教程[EB/OL]. 2020-12-22[2022-7-5]. http://wiki.ros.org/cn/ROS/Tutorials. ︎
边栏推荐
猜你喜欢

深度学习框架pytorch快速开发与实战chapter4

Data Organization---Chapter 6 Diagram---Graph Traversal---Multiple Choice Questions

ZABBIX配置邮件报警和微信报警

配置zabbix自动发现和自动注册。

瑞吉外卖笔记——第05讲Redis入门

第十三单元 混入视图基类

Raft协议图解,缺陷以及优化

Object detection scene SSD-Mobilenetv1-FPN

监管再次重拳出击,后市如何?2021-05-22

WeChat Mini Program-Recent Dynamic Scrolling Implementation
随机推荐
yolov5,yolov4,yolov3乱七八糟的
【Tensorflow】AttributeError: module ‘keras.backend‘ has no attribute ‘tf‘
hsql是什么_MQL语言
Flask上下文,蓝图和Flask-RESTful
Flask框架的搭建及入门
Some impressions of the 519 plummet 2021-05-21
第四单元 路由层
vim复制粘贴_vim如何复制粘贴
网络安全第二次作业
不精确微分/不完全微分(Inexact differential/Imperfect differential)
关于密码加密的一点思路
第十单元 前后连调
海明校验码纠错设计原理
Audio processing: floating point data stream to PCM file
LayoutParams的详解
第七单元 ORM表关系及操作
mysql的case when如何用
binary search && tree
第十五单元 分页、过滤
政策利空对行情没有长期影响,牛市仍将继续 2021-05-19