Ros学习——创建程序包

时间:2023-02-21 07:55:41
 

1.程序包

一个程序包要想称为catkin程序包必须符合以下要求:

  • 该程序包必须包含catkin compliant package.xml文件

    • 这个package.xml文件提供有关程序包的元信息。
  • 程序包必须包含一个catkin 版本的CMakeLists.txt文件,而Catkin metapackages中必须包含一个对CMakeList.txt文件的引用。

  • 每个目录下只能有一个程序包。
    • 这意味着在同一个目录下不能有嵌套的或者多个程序包存在

 

2.创建程序包

 

$ source /opt/ros/indigo/setup.bash    #sourced your environment.
$ mkdir -p ~/catkin_ws/src          #创建和编译工作空间
$ cd ~/catkin_ws/
$ catkin_make
$ source devel/setup.bash          #sourced your environment.
$ echo $ROS_PACKAGE_PATH          
/home/youruser/catkin_ws/src:/opt/ros/kinetic/share  #加入环境变量

$ cd ~/catkin_ws/src    #切换目录
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp  #创建程序包
$ rospack depends1 beginner_tutorials       #查看一级依赖关系
$ rospack depends beginner_tutorials        #查看各级依赖关系

  

3.编译程序包

$ cd ~/catkin_ws/
$ catkin_make
 

4.编译完成

ls进入catkin_ws目录查看,有三个文件夹:

  build 目录是build space的默认所在位置,同时cmake 和 make也是在这里被调用来配置并编译你的程序包。devel 目录是devel space的默认所在位置, 同时也是在你安装程序包之前存放可执行文件和库文件的地方。

 5.出现错误:roscd: No such package/stack 'beginner_tutorials'

  解决办法:

export ROS_PACKAGE_PATH=~/catkin_ws/src:$ROS_PACKAGE_PATH