ros笔记——创建工作空间与功能包

一、工作空间

工作空间是存放工程开发项目的文件夹

  • src:代码空间,用于放置功能包
  • build:编译空间,用于放置编译过程的中间文件
  • devel:开发空间,包含编译生成的可执行文件,debug版本
  • install:安装空间,包含编译可执行文件,release版本

二、创建工作空间

1.创建工作空间

ll@ll-ThinkPad-P15-Gen-1:~$ mkdir -p ~/ZtTest/src
ll@ll-ThinkPad-P15-Gen-1:~$ cd ~/ZtTest/src
ll@ll-ThinkPad-P15-Gen-1:~/ZtTest/src$ catkin_init_workspace

初始化后有以下内容

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest/src$ ls -n
total 0
lrwxrwxrwx 1 1000 1000 50 10月 20 19:18 CMakeLists.txt -> /opt/ros/melodic/share/catkin/cmake/toplevel.cmake

2.编译工作空间

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest/src$ cd ../
ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ catkin_make

编译后工作空间内有以下内容

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ ls -n
total 12
drwxrwxr-x 8 1000 1000 4096 10月 20 19:19 build
drwxrwxr-x 3 1000 1000 4096 10月 20 19:19 devel
drwxrwxr-x 2 1000 1000 4096 10月 20 19:18 src

devel文件夹下有以下内容:

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ ls -n devel
total 48
-rw-rw-r-- 1 1000 1000     0 10月 20 19:19 cmake.lock
-rwxr-xr-x 1 1000 1000   506 10月 20 19:19 env.sh
drwxrwxr-x 2 1000 1000  4096 10月 20 19:19 lib
-rw-r--r-- 1 1000 1000   283 10月 20 19:19 local_setup.bash
-rw-r--r-- 1 1000 1000   352 10月 20 19:19 local_setup.sh
-rw-r--r-- 1 1000 1000   293 10月 20 19:19 local_setup.zsh
-rw-r--r-- 1 1000 1000   260 10月 20 19:19 setup.bash
-rw-r--r-- 1 1000 1000  2779 10月 20 19:19 setup.sh
-rwxr-xr-x 1 1000 1000 13312 10月 20 19:19 _setup_util.py
-rw-r--r-- 1 1000 1000   270 10月 20 19:19 setup.zsh

build文件夹下有以下内容:

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ ls -n build
total 80
drwxrwxr-x 2 1000 1000  4096 10月 20 19:19 atomic_configure
drwxrwxr-x 3 1000 1000  4096 10月 20 19:19 catkin
drwxrwxr-x 4 1000 1000  4096 10月 20 19:19 catkin_generated
-rw-rw-r-- 1 1000 1000     0 10月 20 19:19 CATKIN_IGNORE
-rw-rw-r-- 1 1000 1000   109 10月 20 19:19 catkin_make.cache
-rw-rw-r-- 1 1000 1000 18293 10月 20 19:19 CMakeCache.txt
drwxrwxr-x 9 1000 1000  4096 10月 20 19:19 CMakeFiles
-rw-rw-r-- 1 1000 1000  6357 10月 20 19:19 cmake_install.cmake
-rw-r--r-- 1 1000 1000  2393 10月 20 19:19 CTestConfiguration.ini
-rw-rw-r-- 1 1000 1000   104 10月 20 19:19 CTestCustom.cmake
-rw-rw-r-- 1 1000 1000   270 10月 20 19:19 CTestTestfile.cmake
drwxrwxr-x 4 1000 1000  4096 10月 20 19:19 gtest
-rw-rw-r-- 1 1000 1000  9946 10月 20 19:19 Makefile
drwxrwxr-x 2 1000 1000  4096 10月 20 19:19 test_results

3.设置环境变量

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ source devel/setup.bash

4.检查环境变量

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ echo $ROS_PACKAGE_PATH
/home/ll/ZtTest/src:/opt/ros/melodic/share

5.创建Install文件夹

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ catkin_make install

install文件夹下内容

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ ls -n install
total 44
-rwxr-xr-x 1 1000 1000   506 10月 20 19:19 env.sh
-rw-r--r-- 1 1000 1000   283 10月 20 19:19 local_setup.bash
-rw-r--r-- 1 1000 1000   354 10月 20 19:19 local_setup.sh
-rw-r--r-- 1 1000 1000   293 10月 20 19:19 local_setup.zsh
-rw-r--r-- 1 1000 1000   260 10月 20 19:19 setup.bash
-rw-r--r-- 1 1000 1000  2781 10月 20 19:19 setup.sh
-rwxr-xr-x 1 1000 1000 13312 10月 20 19:19 _setup_util.py
-rw-r--r-- 1 1000 1000   270 10月 20 19:19 setup.zsh

三、创建功能包

1.创建功能包

使用指令 catkin_create_pkg <package name> [depend1] [depend2] [depend3]

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ cd src
ll@ll-ThinkPad-P15-Gen-1:~/ZtTest/src$ catkin_create_pkg srcPkgTest std_msgs rospy roscpp

一个工作空间内不能有同名功能包,不同工作空间内可以有同名功能包

功能包内容如下

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest/src$ ls -n srcPkgTest
total 20
-rw-rw-r-- 1 1000 1000 7067 10月 20 19:46 CMakeLists.txt
drwxrwxr-x 3 1000 1000 4096 10月 20 19:46 include
-rw-rw-r-- 1 1000 1000 2865 10月 20 19:46 package.xml
drwxrwxr-x 2 1000 1000 4096 10月 20 19:46 src

后续如果要修改该功能包的依赖源可以在package.xml文件内修改

<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>

2.编译功能包

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest/src$ cd ../
ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ catkin_make

3.设置环境变量

ll@ll-ThinkPad-P15-Gen-1:~/ZtTest$ source ./devel/setup.bash


版权声明:本文为LoveF5原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。