【ROS2小知识】ROS2包和文件系统
创始人
2025-05-28 06:16:01
0

一、说明

        在本教程中,您将学习如何在 ROS 2 系统中导航。此外,您将启动您的第一个 ROS 2 节点并创建您自己的 ROS 工作区以用于进一步的教程。您可以使用文档中的给定链接获取更多信息。( 以 $ 开头的行是终端命令。)

二、 ROS文件系统

2.1 数据源准备

        在开始之前确保您的系统知道最新的 ROS 2 包:

$ sudo apt update
$ rosdep update

        如果您刚刚安装了 rosdep,请先运行以下命令:

$ sudo rosdep init

        ROS 2 文件系统由 ROS 2 包组成——ROS 2 中最小的构建部分。

        通常,一个 ROS 文件系统由数百个不同的包组成。为了在 ROS 系统中高效导航,ROS 提供了不同的管理工具。最常用的工具在 ROS 包 turtlesim 的示例中进行了描述。

        首先,您必须获取 ROS 安装及其安装工作区的源代码!

        提示:必须为每个新的终端窗口完成此操作。

用**foxy** 作为ROS 发布版号

$ source /opt/ros/foxy/setup.bash

在您的工作空间用:

$ source install/setup.bash

2.2 关于工作区( Workspace)

        Colcon 是 ROS 2 的构建工具。工作区是一个文件夹,您可以在其中修改、构建和安装包。它是创建包和节点或修改现有包和节点以适合您的应用程序的地方。在进一步的教程中,您将在您的工作区中工作。

  • 新建workspace:

    $ cd ~
    $ mkdir -p ~/dev_ws/src

2.3 安装二进制ROS包

        存在两种类型的 ROS 2 包:二进制包和源代码包。ROS 二进制包在 Ubuntu 中作为 debian 包提供,可以通过 apt 命令进行管理。

  • 安装二进制包:

    $ sudo apt install ros-foxy-rosbag2*

    # sudo apt install ros--

    ros-foxy-rosbag2* 表示所有以“ros-foxy-rosbag2”开头的包

2.4 查找包 ROS :

$  ros2 pkg prefix rosbag2
# ros2 pkg prefix 

2.5 列出运行executables:

ros2 pkg executables action_tutorials_py
# ros2 pkg executables 

        Build-from-source包可以分为ROS 2提供的包和你开发的包。两者都必须放在 ROS 2 工作区的 src 文件夹中。

三、从 源码包编译:

        提示:确保您在克隆之前仍在 dev_ws/src 目录中

    $ cd ~/dev_ws/src$ git clone https://github.com/ros/ros_tutorials.git -b foxy-devel

   # git clone -b  

        注意目录列表左侧的“Branch”下拉列表。当您克隆此 repo 时,添加 -b 参数,后跟与您的 ROS 2 发行版对应的分支。

        要查看 ros_tutorials 中的包,请输入命令:

$ ls ros_tutorialsy

        有四个包packages: 

roscpp_tutorials rospy_tutorials ros_tutorials turtlesim

        其中turtlesim是ROS2的包。

 四、处理依赖:

         在构建工作区之前,您需要解决包依赖关系。您可能已经拥有所有依赖项,但最佳做法是在每次克隆时检查依赖项。您不希望构建由于缺少依赖项而在长时间等待后失败。

提示:在运行 rosdep 之前,请确保您位于工作区根目录 (~/dev_ws) 中。

If it is your first time to run rosdep, you need to run rosdep init first.

$ cd ..
$ rosdep install --from-paths src --ignore-src -r -y

此命令神奇地安装了您工作区中的包所依赖但在您的计算机上缺失的所有包。 http://wiki.ros.org/rosdep

  • 使用 colcon 构建工作区

    提示:不要忘记在构建之前获取 ROS 安装源,并确保您位于工作区的根目录 (~/dev_ws) 中。

    $ source /opt/ros/foxy/setup.bash
    $ colcon build --symlink-install
    正在上传…重新上传取消

  • Source the overlay 当你构建这个工作区时,你的主要 ROS 2 环境是“底层”。现在您可以在“underlay”的“顶部”获取覆盖层。

    提示:如果您打开一个新的终端,请先设置 ROS 2 环境。

    您可以通过以下方式启动一个新的终端窗口【  ctl + alt +t 】

    $ cd dev_ws
    $ source install/setup.bash
    正在上传…重新上传取消

三、 ROS节点

        ROS 节点是 ROS 环境中的可执行文件。节点始终是 ROS 包的一部分。如何启动ROS节点以及如何显示运行时信息在turtlesim包的例子中有说明。

  • 开启 ROS节点:

    (先开启新终端,source节点源)

    $ ros2 run turtlesim turtlesim_node
    

    # ros2 run  

    • 启动另一个节点来控制海龟:

      $ ros2 run turtlesim turtle_teleop_key
      

      # ros2 run  

 

        启动另一个节点来控制海龟:如果选择当前运行 turtle_teleop_node 的终端,则可以使用键盘的方向键控制海龟。

        这两个节点 turtlesim_node 和 turtle_teleop_key 当前在您的 ROS 2 系统上处于活动状态。由于更复杂的系统将包含许多节点,ROS 提供了内省工具来显示有关活动节点的信息。

  • 显示所有活动节点:

    $ ros2 node list
    
  • 显示有关节点的信息:

    $ ros2 node info /turtlesim
    

    # ros2 node info 

        给定的信息包括该节点订阅和发布的主题。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...