ROS学习笔记3-基础课程之文件系统向导
- 准备工作
需要使用如下命令安装ros的教程:
$ sudo apt-get install ros-<distro>-ros-tutorials
其中,distro为所用ros的发行版本,该教程使用kinetic。
$ sudo apt-get install ros-kinetic-ros-tutorials
- ROS文件系统概览
- Packages:ROS文件系统由许多Package组成,每个package可能包含库(Libraries),可执行程序,脚本或者其它人工编写的材料。
- Manifests (package.xml):包描述文件。
- 文献系统工具命令
- rospack
rospack用以获得包(Package)的相关信息,在该教程中仅给出rospack find的使用,该命令返回一个包的路径
用法:
$ rospack find [package_name]
例如:
$ rospack find roscpp
返回为:
YOUR_INSTALL_PATH/share/roscpp
在笔者的机子上返回为:
/opt/ros/kinetic/share/roscpp
- roscd
roscd是rosbash的一部分,用以改变目录,或进入某个目录,与cd命令类似。
例如:
$ roscd roscpp
表示当前目录变为roscpp目录。
使用pwd命令显示当前目录,则为:
/opt/ros/kinetic/share/roscpp
注意,ros工具命令只能识别出在环境变量ROS_PACKAGE_PATH 中列出的包,你可以通过改变环境变量将额外的包加入到ROS_PACKAGE_PATH 路径中。
可以使用如下命令查看该环境变量中包含哪些路径:
$ echo $ROS_PACKAGE_PATH
在本机中返回如下:
/home/yangbo/mybot_ws/src:/home/yangbo/project_ws/src:/home/yangbo/catkin_ws/src:/home/yangbo/hector_quadrotor_tutorial/src:/opt/ros/kinetic/share:/home/yangbo/px4/Firmware:/home/yangbo/px4/Firmware/Tools/sitl_gazebo
每个用冒号分开。
- roscd log
该命令进入ros的日志文件目录,若没有日志文件目录,则会给出错误提示。 - rosls
rosls 也是 rosbash的一部分,用于列出一个package下的所有文件和目录。
例如使用如下命令查看roscpp_tutorials中的所有文件和目录:
$ rosls roscpp_tutorials
返回为:
cmake launch package.xml srv
-
TAB自动完成
ros命令行工具支持TAB自动完成,例如你记不住每个包的全称,但是知道开头,可以用TAB自动补全。$ roscd roscpp_tut<<< now push the TAB key >>>
例如输入roscd roscpp_tut然后按TAB键,则会自动完成roscpp_tut开头的包。
roscd roscpp_tutorials/
如果有多个包名和开头的一致,则会自动完成和开头最接近的一个,再按一下TAB则会列出所有与开头匹配的选项,例如:
roscd tur
按了TAB则自动补全为:
roscd turtle
再按一下TAB则列出所有以tur开头的包:
turtle_actionlib/ turtlebot_navigation/ turtlesim/ turtlebot_bringup/ turtlebot_simulator/ turtle_tf/ turtlebot_capabilities/ turtlebot_stage/ turtle_tf2/ turtlebot_description/ turtlebot_stdr/ turtlebot_gazebo/ turtlebot_teleop/
- rospack
给孤独的理想插上自由的翅膀