【分享帖】机器人操作系统(ROS)初级教程(二)
![放弃=给你自由](https://hz-rm-bbs-web-prod.oss-cn-hangzhou.aliyuncs.com/avatar/pre/v1/000015291_avatar_big.jpg)
(一)文件系统工具介绍
在ROS中程序代码是分布在众多ROS软件包当中,当使用命令行工具(比如ls和cd)来浏览时会非常繁琐,因此ROS提供了专门的命令工具来简化这些操作。
在Linux下当要输入一个完整的软件包名称时比较繁琐,我们会使用Tab补齐,在ROS中同样支持这个功能,善用这个功能增加生产效率。
一、Rospack=ros+pack(age)
功能:rospack允许你获取软件包相关信息
格式:rospack find [package-name];package-name是包名称
例程:rospack find roscpp
返回结果:在ubuntu12.04下,返回/opt/ros/hydro/share/roscpp
二、Roscd=ros+cd
功能:对ROS文件系统允许利用包的名字直接切换到相应的文件目录下。
格式:roscd [locationname[/subdir]],[locationname[/subdir]]是[本地包名称/子目录]
例程:roscd roscpp
返回结果:就直接跳到那个目录下了,输入pwd看到
/opt/ros/hydro/share/roscpp
备注:
roscd将只能打开存在与环境变量ROS_PACKAGE_PATH中的目录及其子目录
使用命令
ROS_PACKAGE_PATH
或
export | grep ROS 查看 ROS_PACKAGE_PATH后的文件。
显示结果:
/opt/ros/hydro /share:/opt/ros/hydro/stacks,中间用冒号隔开。
其它roscd用法:
1、直接切换到一个软件包或软件包集中
命令:roscd roscpp/cmake
Cmake为roscpp下的子目录
2、直接切换到ROS保存日记文件的目录下
命令:roscd log
如果没有运行过任何ROS程序,则会报错,负责跳转到改目录下
三、Rosls=ros+ls
功能:直接利用包的名字,去列举包中的所有文件即文件夹,而不用使用绝对路径。它的使用和roscd是一样的,只有存在于ROS_PACKAGE_PATH中的目录及其子目录才能使用这个命令。
格式:roscd [locationname[/subdir]],[locationname[/subdir]]是[本地包名称/子目录]
例程:rosls_roscpp_tutorials
返回结果:列出目录roscpp_tutorials下的所有文件。
(二)创建系统功能包
首先回顾第一章安装ROS后,创建工作空间
1、创建ROS工作空间
下面我们开始创建一个catkin 工作空间:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
即使这个工作空间是空的(在'src'目录中没有任何软件包,只有一个CMakeLists.txt链接文件),你依然可以“build”它:
$ cd ~/catkin_ws/
$ catkin_make
catkin_make命令在catkin 工作空间中是一个非常方便的工具。如果你查看一下当前目录应该能看到'build'和'devel'这两个文件夹。在'devel'文件夹里面你可以看到几个setup.*sh文件。source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层。关于这些想了解更多请阅读catkin文档。接下来首先source一下新生成的setup.*sh文件:
$ source devel/setup.bash
2、创建ROS程序包
创建一个catkin程序包
本部分教程将演示如何使用catkin_create_pkg命令来创建一个新的catkin程序包以及创建之后都能做些什么。
首先切换到之前通过《创建catkin工作空间教程》创建的catkin工作空间中的src目录下:
# You should have created this in the Creating a Workspace Tutorial
$ 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命令时提供的信息。
catkin_create_pkg命令会要求你输入package_name,如果有需要你还可以在后面添加一些需要依赖的其它程序包:
# This is an example, do not try to run this
# catkin_create_pkg[depend1] [depend2] [depend3]
catkin_create_pkg命令也有更多的高级功能,这些功能在catkin/commands/catkin_create_pkg中有描述。
请问这篇文章对你有用吗?
【分享帖】机器人操作系统(ROS)初级教程(二)