在ROS中创建工作空间和功能包详解

1.工作空间是个什么东东
              工作空间(workspace)就是一个存放工程开发相关文件的文件夹。Fuerte版本后ROS默认的编译系统就是Catkin,一个典型的Catkin编译系统下的工作空间包括以下四个目录空间。
        a.src:代码空间(Source Space),开发过程中最常用的文件夹,用来存储所有ROS功能包的源码文件。
        b.build:编译空间(Build Space),用来存储工作空间编译过程中产生的缓存信息和中间文件。
        c.devel:开发空间(Development Space),用来放置编译生成的可执行文件。
        d.install:安装空间(Install Space),编译成功后,可以使用make install命令将可执行文件安装到该空间中,运行该空间中的环境变量脚本,即可在终端中运行这些可执行文件。安装空间并不是必需的,很多工作空间中可能并没有该文件夹。
2.创建工作空间

  •  首先在合适目录下打开终端,创建工作空间文件夹;
mkdir catkin_ws
  •  在工作空间文件夹中创建工作目录文件夹src;
cd ~/catkin_ws
mkdir -p ~/catkin_ws/src
  • 运行工作空间初始化命令对工作空间进行初始化;   
catkin_init_workspace
  • 创建完成后,可在工作空间的根目录下使用catkin_make命令编译整个工作空间:
cd ~/catkin_ws/
catkin_make
  • 编译之后,工作空间的根目录里会自动产生build和devel两个文件夹及其中的文件。编译完成之后,在devel文件夹会产成几个setuo.*sh形式的环境变量设置脚本。为了使工作空间中的环境变量脚本生效,故我们需要用source命令来运行这些脚本文件;
source devel/setup.bash
  •  为了确保环境变量确以生效,可以使用以下命令进行检查; 
echo $ROS_PACKAGE_PATH


         如果环境变量设置成功,则会打印的内容中包含当前工作空间的路径。
  


在终端中使用source命令设置的环境变量只能在当前终端中生效,如果希望在所以的终端中生效,则需要在终端的配置文件中加入环境变量的设置:echo "source/WORKSPACE/devel/setup.bash">>~/.bashrc,使用自己的工作空间路径代替WORKSPACE。
 

 
   3.创建功能包

  1.   package.xml文件提供了功能包的元信息,也就是描述功能包属性的信息。
  2.   CMakeLists.txt文件记录了功能包的编译规则。
  • 下来我们使用ROS的创建功能包指令catkin_create_pkg来创建功能包;
cd ~/catkin_ws/src
catkin_create_pkg learning_ros std_msgs rospy roscpp
  • 创建完成后,代码空间src中会生成一个叫做learning_ros的功能包,依赖于std_msgs、rospy 、roscpp等功能包,并且也包含 package.xml和CMakeLists.txt文件。
  • 最后我们回到工作空间的根目录下进行编译,并且设置环境变量;
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash


         到这里我们就完成了在ROS中创建一个工作空间的完整过程,是不是也不是很难呢!

 

你可能感兴趣的:(ROS,自动驾驶)