2-ROS文件系统简单介绍

2023-05-16

本教程介绍了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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2-ROS文件系统简单介绍 的相关文章

随机推荐

  • 滑膜+pid+上层设计下层平均分配 优化分配 动态载荷分配

    滑膜 43 pid 43 上层设计下层平均分配 优化分配 动态载荷分配 xff0c 分布式电动汽车操稳控制 本研究在matlab simulink建立七自由度轮毂电机驱动汽车模型 xff0c 使用滑膜联合控制以及pid控制实现转向过程中质心
  • 12本Python书籍推荐

    Python是用于各种任务和领域的优秀编程语言之一 Python的用户友好性 xff0c 高级特性以及对简单性和增强代码可读性的强调使其成为全球许多开发人员的理想选择 诸如此类的功能使应用程序开发 xff0c 数据科学 xff0c 人工智能
  • Ubuntu 屏幕翻转90度怎么恢复

    笔记本电脑的 ubuntu 屏幕有时候会无意中90度翻转 xff0c 这时候你只能侧着脸看 xff0c 靠鼠标操作想要恢复是极其尴尬的一件事 xff0c 最快捷的方法就用命令是删除 iio sensor proxy 程序 第一步 Ctrl
  • 使用Python+Opencv从摄像头逐帧读取图片保存在本地

    今天测试的时候 xff0c 遇到了一个问题 xff0c 测试需求是 xff0c 需要把摄像头拍摄的实时视频逐帧率保存下来 经过查阅资料以及网友帮助 xff0c 目前已经完成 记录下来希望可以帮助有需要的朋友 1 思路 使用Python 43
  • vscode 运行C++

    本文先介绍了windows下 VSCODE运行C 43 43 前 xff0c 搭建C 43 43 运行环境的必要步骤 后介绍了tasks json launch json的作用 xff0c 并给出了自己使用的配置方案 最后给出了常见问题的解
  • 在执行launch文件时,如果显示不存在这个package

    在执行launch文件时 xff0c 如果显示不存在这个package xff0c 则应注意可能是下述情况导致 xff1a catmake编译完 xff0c 再用rosrun或roslaunch命令找不到package时 xff0c 这时需
  • 迷一样的穿越机飞控电容的作用

    穿越机电源上要并个大电容 xff0c 今天终于碰到一位真神说明白了 xff1a 电容两个作用 xff0c 一个是在你插电的一瞬间 xff0c 因为里面有降压设备大部分都是线圈类的东西 xff0c 产生电磁效应会有高于电池特别高的电压 xff
  • 一、机械小白学单片机之初认识ESP8266

    前言 本人刚接触单片机开发 xff0c 原专业为机械自动化 xff0c 因为传统机械行业的不景气 xff0c 想要转为从事电子行业 之前有一点C语言基础 xff0c 还学过一点点C xff0c 但是也就一点点 可谓小白学习之路 希望能够给大
  • VB.net写一个简易串口RS485调试助手

    最近在调试带rs485串口通讯的设备 xff0c 项目上主要是用PLC和串口通讯 xff0c 因为PLC有集成好的串口块 xff0c 使用起来比较容易 xff0c 为了方便测试 xff0c 就想着用上位机写一个简易的串口通讯程序 xff0c
  • 使用python加PyQt5,利用QMediaPlayer写一个简易的音乐播放器(进度条拖动,音量改变,播放停止切换,歌曲列表))

    当你学习了python之后 总想着利用它去做些什么 无论是制作小工具还是小游戏 都是一种锻炼 那么 利用python加上PyQt5写一个简单的音乐播放器 可能会是一个有趣的体验 下面我会分享一下如何编写简易的音乐播放器 其中参考了网络上的很
  • <Python>PyQt5自己编写一个音乐播放器(优化版)

    Python音乐播放器 更新日志 xff1a 20221031 xff1a 添加独立播放列表 20221107 xff1a 添加 上一首 下一首 功能 展示图片 xff1a 202211071308更新 xff1a 添加上一首 下一首功能
  • 以前做的一种特殊的平衡车----三轮球上平衡车

    这个项目做了很长的时间 xff0c 核心算法就是PID xff0c 目标就是让一个三轮车 xff08 轮子为全向轮 xff09 站到足球上并可以进行平移旋转等平面运动 机械部分 使用三个橡胶全向轮 xff0c 通过联轴器连接减速电机 xff
  • VAE与GAN做异常检测的原理

    近几年 xff0c 有大量的人用VAE和GAN来做异常检测 xff0c 用这两个模型做异常检测的假设都是一样的 xff0c 即假定正常数据是服从某一种分布的 xff0c 而异常数据是不能够拟合进这个分布的 xff0c 因此我们可以用VAE和
  • windows10上Eclipse和PyDev搭建python开发环境

    1 安装java环境 xff0c jdk下载地址如下 http www oracle com technetwork java javase downloads index html 完成安装后 xff08 记住安装位置 xff0c 之后有
  • 双系统引导启动切换

    双系统引导启动切换 微软双系统引导启动切换适用环境选择启动盘 微软双系统引导启动切换 适用环境 1 有双系统操作需求 2 强迫症 上期讲了如何重装新的操作系统 xff0c 我有两个盘 xff0c 一个盘固态 xff0c 一个机械 两个里面都
  • gazebo模型不显示

    提示 xff1a File 34 usr lib python2 7 xml etree ElementTree py 34 line 1657 in feed self parser Parse data 0 UnicodeEncodeE
  • 根文件系统(rootfs)的制作

    由于板子不知道什么缘故 xff0c u boot的tftp功能无法应用 xff0c 每次都用串口下载数据 xff0c 但是到后面要下载文件系统的时候实在是太大了 xff0c 完全无法下载 xff0c 因此 xff0c 尝试着做一个简单的文件
  • MPU6050 +STM32F411RCT6

    今天玩了一个MPU6050模块 xff0c 在这里跟大家分享一下 xff0c 希望对大家有所帮助 我用的控制板是我自己画图打板的 xff0c 使用的MCU是STM32F411RCT6 使用的MPU6050如下图 xff0c 在某宝上买的 M
  • Android 注解解析及使用

    目录 一 注解解析 1 什么是注解 xff1f 2 为什么要使用注解 xff1f 3 android中常见的注解有哪些 xff1f 4 元注解 二 注解使用 1 如何实现一个注解 xff1f 2 android中注解示例 一 注解解析 1
  • 2-ROS文件系统简单介绍

    本教程介绍了ROS文件系统的概念 xff0c 并介绍了roscd rosls rospack命令行工具的使用 至于为什么选择deepin而不是ROS通用的ubuntu 也仅仅是为了支持国产系统 鉴于本人水平有限 xff0c 如哪位攻城狮网友