当前位置:网站首页>[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. ︎
边栏推荐
- 瑞吉外卖笔记——第08讲读写分离
- 你接受不了60%的暴跌,就没有资格获得6000%的涨幅 2021-05-27
- Object detection scene SSD-Mobilenetv1-FPN
- RHCE第一天作业
- php开源的客服系统_在线客服源码php
- 政策利空对行情没有长期影响,牛市仍将继续 2021-05-19
- Flask上下文,蓝图和Flask-RESTful
- You can't accept 60% slump, there is no eligible for gain of 6000% in 2021-05-27
- 【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
- redis延时队列
猜你喜欢
A number of embassies and consulates abroad have issued reminders about travel to China, personal and property safety
世界上最大的开源基金会 Apache 是如何运作的?
浅浅写一下PPOCRLabel的使用及体验
Sentinel源码(四)(滑动窗口流量统计)
About the development forecast of the market outlook?2021-05-23
Gstreamer Plugin注册流程详解
chapter6可视化(不想看版)
Break the limit of file locks and use storage power to help enterprises grow new momentum
【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
第十五单元 分页、过滤
随机推荐
网络剪枝(1)
web测试和app测试的区别?
此次519暴跌的几点感触 2021-05-21
未来的金融服务永远不会停歇,牛市仍将继续 2021-05-28
The bad policy has no long-term impact on the market, and the bull market will continue 2021-05-19
yolov5,yolov4,yolov3乱七八糟的
动态刷新日志级别
Audio processing: floating point data stream to PCM file
jwt(json web token)
标量替换、栈上分配、同步消除
Awesome!Alibaba interview reference guide (Songshan version) open source sharing, programmer interview must brush
期货具体是如何开户的?
Tornado框架路由系统介绍及(IOloop.current().start())启动源码分析
深度学习框架pytorch快速开发与实战chapter3
第七单元 ORM表关系及操作
EasyExcel 的使用
8583 顺序栈的基本操作
Flask上下文,蓝图和Flask-RESTful
定了!就在7月30日!
The most complete ever!A collection of 47 common terms of "digital transformation", read it in seconds~