1. 安装并配置ROS环境,安装好后,source环境变量
source /opt/ros/melodic/setup.bash
2. 创建ROS的工作环境
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make( catkin_make是一个工具,第一次运行会在src目录下生成一个CMakeLists.txt)
3. ROS导航文件系统
由于ROS有很多扩展包,要频繁使用ls或者cd很烦躁,所有有了这个文件系统
常用命令
- rospack -- 获取包信息,如 rospack find roscpp(包名) 会返回包地址,如:/opt/ros/melodic/share/roscpp
- roscd -- 直接打开包所在的目录,如 roscd roscpp,会直接进入包roscpp所在的目录。同时,也可以打开子目录,如roscd roscpp/cmake,会直接进入roscpp/cmake所在的目录
- rosls -- 直接列出包目录下的文件,而不需要使用绝对路径。如:rosls roscpp
- 使用tab联想。如:roscd roscpp_tut(现在可以使用TAB去联想)
4 创建一个ROS package
- catkin包由什么构成?
- package.xml -- 提供了关于包的元数据信息
- CMakeLists.txt
- 每个包必须有自己的目录--这意味这不可能共享或嵌套目录
2.在catkin空间中打包
3.创建一个catkin包
- 打开到catkin_ws/src目录:cd ~/catkin_ws/src
- 使用catkin_create_pkg创建一个包,叫beginner_tutorials,该包依赖std_msgs,roscpp,rospy。
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
这会创建一个beginner_tutorials目录,目录包含了package.xml和CMakeLists.txt
命令:catkin_create_pkg 包名 依赖1 依赖2 依赖3
- 构建catkin工作空间并source setup文件
- 在catkin构建包的工作空间
$ cd ~/catkin_ws
$ catkin_make
-构建完成后,会创建一个和其他包类似的目录结构
- 为了将增加包到ROS环境,需要source setup文件
$ . ~/catkin_ws/devel/setup.bash
- 打包依赖包
- 当用catkin_create_pkg 创建包的时候,会提供一些依赖包,这些首次依赖的包可以通过rospack 看到
$ rospack depends1 beginner_tutorials
roscpp
rospy
std_msgs
以上,rospack 列出了我们创建包时候后边的依赖包,其实我们运行catkin_create_pkg的时候,这些包被存储在了package.xml中。
$ roscd beginner_tutorials
$ cat package.xml
- 间接依赖
通常情况下,一个依赖包也有自己的依赖包,例如rospy
$ rospack depends1 rospy
genpy
roscpp
...
一个包有多间接包,幸运的是我们可以使用rospack递归出所有嵌入的依赖包
$ rospack depends beginner_tutorials
cpp_common
roscpp_traits
...
- 自定义你的包
- 自定义package.xml
- 自定义CMakeLists.txt
5 编一个ROS包
1.编译包
记得source环境
- 使用catkin_make
它是一个命令行工具,为建立标准的catkin工作流提供方便。在catkin的工作目录下使用命令
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
- 编译你的包 -- beginner_tutorials
前提是有你的catkin 工作空间和一个catkin包(前边我们创建的beginner_tutorials)
打开catkin 工作目录
$ cd ~/catkin_ws/
$ ls src
下边用catkin_make编译那个包
$ catkin_make
编译结果省略
此时在beginner_tutorials下会有一下目录:
build
devel
src
网友评论