ROS入门1总结:ROS创建工作空间与功能包
感谢古月居大大:
Ubuntu20.04、ros-noetic-desktop-full
工作空间简介
src文件夹
主要放置功能包代码和功能包配置文件和launch文件,同名的功能包不能放在一个src里面,
build文件夹
放置编译过程中产生的中间文件,
devel文件夹
放置编译过生的可执行文件,库,脚本,大大说很重要,我只记得一个source devel/setup.basher
install文件夹
使用install命令产生的结果放在install文件夹
创建工作空间
创建工程文件夹总夹(提前进入你要创建的文件夹所在的路径)
mkdir catkin_wksp
进入catkin_wksp文件夹下创建src文件夹
进入catkin_wksp文件夹
cd catkin_wksp/
创建src文件夹(后面用来放置一些功能包啥的,名字不可以随便更改,只能叫做src)
mkdir src
将src文件夹初始化成ros的workspace文件夹类型
进入src
cd src/
初始化文件夹属性
catkin_init_workspace
初始化以后,在src文件架下面会出现一个CMakeList.txt文件(这个文件决定了src文件夹是不是ros的工程文件夹)
编译工作空间
在编译的时候要进入到工程文件的额根目录,也就是 catkin_wksp
进入catkin_wksp
cd catkin_wksp/
如果是在catkin_wksp/src路径下面直接返回上层文件夹
cd ..
也可使用 pwd
查看自己的所在路径
进行编译
catkin_make
进行编译以后,src所在的文件夹,也就是catkin_wksp文件夹下会出现build和devel文件夹,暂时没有出现install文件夹,若要产生install文件夹,使用命令:
catkin_make install
然后就可以生成install文件夹了
创建功能包
功能包是ros里面放置源码的最小功能包,源码必须放在功能包里进行相关的编译,形式如下:
catkin_create_pkg [depend1] [depend2],在这儿,创建功能包如下:
首先确定功能包的所在位置,必须在src目录下进行创建,先进入src文件夹下:
cd src/
创建test功能包
catkin_creat_pkg test_pkg roscpp rospy std_msgs
解释:创建一个名为test_pkg的功能包,功能包依赖并可调用c++,Python,ros定义的标准的消息结构
这时候刚建的文件夹test_pkg下面会包含CMakeList.txt文件和package.xml文件,这个文件决定了test_pkg是一个功能包的属性,类比于catkin_init_workspace初始化的工作空间
编译功能包
首先进入创建的工作空间catkin_wksp文件夹下对工作空间进行相关的编译
catkin_wksp make
在出现的相关的消息中,会找到test_pkg字样,代表创建的功能包已经被编译
设置环境变量
旨在要运行功能包里面的某个程序时进行设置,主要是让系统能够找到创建的工作空间
source devel/setup.bash
检查环境变量
echo $ROS_PACKAGE_PATH
出来的消息中最后面是 /share 才代表创建环境变量成功
总结
关于环境变量:虽然后续在文件中按照指示添加了相关的路径,能够自动source,但是没效果,在运行相关的publisher和subscriber时还是得手动source devel/setup.bash,相关的配置文件在 /home/linder 路径下的 .bashrc 文件