2-ROS文件系统简单介绍

本教程介绍了ROS文件系统的概念,并介绍了roscd,rosls,rospack命令行工具的使用。至于为什么选择deepin而不是ROS通用的ubuntu,也仅仅是为了支持国产系统。鉴于本人水平有限,如哪位攻城狮网友发现本文存在的问题,烦请留言指正,谢谢!

前提

对于本教程,需要首先确定您安装了ros-tutorials包

sudo apt-get install ros-noetic-ros-tutorials

ROS文件系统概述

  • Packages:包是ROS代码的软件组织单元,每个包可以包含库,可执行文件,脚本,以及其他文件。
  • Manifests(package.xml):manifest是对包的描述文件,用于定义包之间的相互依赖关系,并捕获关于包的版本,维护人员,许可证等元信息。

文件系统工具

代码分散在许多ROS包中,使用诸如ls,cd等命令行工具会非常乏味,不过ROS为我们提供了对应的工具。

rospack

rospack可用于获取ros包信息。在rospack的教程中我们只讨论用于获取包路径的find选项

rospack find [package_name]

# 示例找到roscpp包的存放路径
rospack find roscpp
/opt/ros/noetic/share/roscpp

roscd

roscd是rosbash的一部分。它允许您直接将目录修改为一个包或堆栈所在目录

roscd <package-or-stack>[/subdir]
# 示例使用roscd命令直接切换到roscpp目录
gaoy@msi:~/ros_ws$ pwd
/home/gaoy/ros_ws
gaoy@msi:~/ros_ws$ roscd roscpp
gaoy@msi:/opt/ros/noetic/share/roscpp$ pwd
/opt/ros/noetic/share/roscpp

可以清楚发现roscd roscpp所切换到的目录与rospack roscpp所输出的目录一致。

注意: roscd与其他ROS工具一样,只会找到ROS_PACKAGE_PATH中列出的ROS包。

您的ROS_PACKAGE_PATH应该至少包含一个目录列表,ROS_PACKAGE_PATH中不同的路径使用 : 隔开.典型的ROS_PACKAGE_PATH可能是:

ROS_PACKAGE_PATH=/opt/ros/noetic/share

子目录

roscd也可以切换到包或堆栈的子目录

gaoy@msi:~$ pwd
/home/gaoy
gaoy@msi:~$ roscd roscpp/cmake/
gaoy@msi:/opt/ros/noetic/share/roscpp/cmake$ pwd
/opt/ros/noetic/share/roscpp/cmake

roscd log

roscd log 将把您带到ros存储日志文件的目录。如果您还没运行任何ROS程序,这可能会产生一个错误,表示对应的目录不存在

gaoy@msi:~$ pwd
/home/gaoy
gaoy@msi:~$ 
gaoy@msi:~$ roscd roscpp
gaoy@msi:/opt/ros/noetic/share/roscpp$ 
gaoy@msi:/opt/ros/noetic/share/roscpp$ pwd
/opt/ros/noetic/share/roscpp
gaoy@msi:/opt/ros/noetic/share/roscpp$ roscd log/
gaoy@msi:~/.ros/log/d60df460-279c-11ed-88ab-f8b54d546b81$ pwd
/home/gaoy/.ros/log/d60df460-279c-11ed-88ab-f8b54d546b81

rosls

rosls是rosbash的一部分,它允许您通过包名而不是绝对路径直接在包中执行ls命令

gaoy@msi:~$ rosls roscpp
cmake  msg  package.xml  rosbuild  srv
# 对比
gaoy@msi:~$ roscd roscpp;ls
cmake  msg  package.xml  rosbuild  srv

tab命令补全

在您使用roscd,rosls等命令时可使用tab来补全对应的包名

ros命令工具扩展

您应该注意到了ros工具的命名模式:

  • rospcak:ros + pack(age)
  • roscd:ros + cd
  • rosls:ros + ls
    对应ros工具有:
gaoy@msi:/opt/ros/noetic/share/roscpp$ ros
rosmv                       
roscat     
roscd    
rosclean                   
roscp 

关联GItee

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值