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> #根标签