ROS之文件系统的小白学习笔记

catkin_make
source ~/catkin_ws/devel/setup.bash  #编译完成后要source刷新环境。


catkin_workspace:
src: package源代码(功能包)-> (功能包下面有不同的文件)
build:camke&catkin缓存和中间文件   #不需要理会
devel:目标文件                      #不需要理会
  
二  package组成
package : ROS软件的基本组织形式
          catkin编译的基本单元
          一个package可以包含多个可执行文件(节点)
         
有这两个文件才叫做package
package:
CMakeLists.txt       #规定catkin编译的规则,例如源文件、依赖项、目标文件
package.xml          #定义package的属性,例如:包含、版本号、作者、依赖项

CMakeLists.txt:
cmake_minimum_required()   #指定catkin最低版本
project()                  #指定软件包的名称
find_package()             #指定编译时需要添加的依赖项
add_message_files()/add_service_files()/add_action_files()
                           #添加信息文件/服务文件/动作文件
generate_messages()        #生成消息、服务、动作
catkin_package()           #指定catkin信息给编译系统生成的Cmake文件
add_library()/add_executable() #指定生成库文件、可执行文件
target_link_libraries()        #指定可执行文件去链接哪些库
catkin_add_gtest()             #添加测试单元
install()                      #生成可安装目标


package.xml:
<package>                 <!--根标签-->
      <name>              <!--包名-->
      <version>           <!--版本号-->
      <descrition>        <!--包描述-->
      <maintainer>        <!--维护者-->
      <license>           <!--软件许可-->
      <buildtool_depend>  <!--编译工具-->
       <build_depend>      <!--编译时的依赖>
      <run_depend>        <!--运行时的依赖>
</package>


package的结构1
CMakeLists.txt
package.xml
scripts          :*.py *.sh(脚本文件)
include          :*.h (头文件)
src              :*.cpp(c++文件)

自定义通信格式
消息(msg)
服务(srv)
动作(action)

package的结构2
CMakeLists.txt
package.xml
scripts          :*.py *.sh(脚本文件)
include          :*.h (头文件)
src              :*.cpp(c++文件)
msg              :*.msg
srv              :*.srv
action           :*.action

launch以及配置文件
launch文件(launch)
配置文件(yaml),放在config文件,这个自由度比较高,可以放很多不同的配置文件

package的结构3
CMakeLists.txt
package.xml
scripts          :*.py *.sh(脚本文件)
include          :*.h (头文件)
src              :*.cpp(c++文件)
msg              :*.msg
srv              :*.srv
action           :*.action
config           :*.yaml
launch           :*.launch

常用命令
rospack find package_name #查找某个pkg的地址
rospack list       #列出本地所有的pkg
roscd package_name  #跳转到某个pkg路径下
rosls package_name  #列举某个pkg下的文件信息
rosed package_name file_name #编辑pkg中的文件
catkin_create_pkg <pkg_name> [deps] #创建一个pkg
rosdep            #安装某个pkg所需的依赖


rosnode list            #列出所有的node
rosnode info node_name  #查找node详细信息

一个节点其实就是一个进程。


launch文件 
<launch>              #根标签
      <node>          #需要启动的node及参数
      <include>       #包含其它launch文件
      <machine>       #指定运行的机器
      <env-loader>    #设置环境变量
      <param>         #定义参数到参数服务器
      <rosparam>      #启动yaml文件参数到参数服务器
       <arg>           #定义参数传入到launch文件中
      <remap>         #设定参数映射
      <group>         #设定命名空空间

</launch>           #根标签

猜你喜欢

转载自blog.csdn.net/Mr_dhy/article/details/81270249
今日推荐