ROS源码分析-week9

本周工作聚焦于ROS导航部分的代码分析,详细解读导航架构图并将其映射到实际的代码结构。通过研究github上的navigation仓库,了解到每个子文件夹对应一个ROS包,主要使用C++编写。总结了代码结构和语言分布,为后续深入阅读和分析奠定了基础。

2021SC@SDUSC

1. 本周工作目标

这周继续阅读ros导航部分的代码,希望能大致理解导航部分ros包的架构。结合实际情况,本周的工作目标如下:

  • 详细分析架构图

  • 根据架构图,分析各部分对应的具体的代码包

2. 导航架构图分析

首先复习一下上一章在wiki里发现的的架构图:

我们详细分析一下这张图的各个部分:

包名 来源 功能 备注
move_base 官方提供 整合各种信息来源,用dijstra或者A*算法规划机器人运动路径
map_server 官方提供 为机器人提供地图信息 地图信息需要预先建立
amcl 官方提供 在地图中对机器人进行定位 基于粒子算法
odometry sources 机器人平台提供 提供机器人运动里程计信息
sensor sources 机器人平台提供 机器人的
Note, selecting 'ros-foxy-shape-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2bag' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rmw-implementation' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2cli' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-foonathan-memory-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-composition-interfaces' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-fastrtps-cpp' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rcpputils' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-urdfdom-headers' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-unique-identifier-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-launch-xml' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-default-generators' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-urdfdom' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2doctor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cpplint' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rcl-interfaces' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-geometry-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-ros' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-lint-cmake' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-runtime-py' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-domain-coordinator' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rcl-logging-spdlog' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-c' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-io-context' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-tf2-tools' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rmw-implementation-cmake' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-cpp' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-flake8' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-sros2-cmake' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosbag2' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rcutils' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosapi-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rclcpp-lifecycle' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-nav-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosapi' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-copyright' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2service' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-urdf' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-fastcdr' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros-workspace' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-yaml-cpp-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-lint-common' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-cppcheck' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2node' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-stereo-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosbag2-converter-default-plugins' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-parser' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosbag2-compression' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros-environment' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rpyutils' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-gmock-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-gtest-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-connext-c' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-zstd-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosbag2-storage-default-plugins' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-shared-queues-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cppcheck' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-tf2-py' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-pep257' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2component' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2launch' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-eigen3-cmake-module' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2pkg' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-index-python' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-urg-node' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-export-targets' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-adapter' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-tracetools' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-runtime-c' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-gtest' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-xmllint' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2run' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-statistics-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-trajectory-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-cartographer-ros-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-tf2-geometry-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-package' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-cartographer' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-tf2-bullet' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rcl-action' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-connext-cpp' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-serial-driver' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-kdl-parser' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-launch-testing' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-generator-c' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-export-link-flags' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-fastrtps' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-introspection-c' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosbag2-transport' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-launch-testing-ament-cmake' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-libyaml-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-default-runtime' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2action' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-orocos-kdl' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-cartographer-ros' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-class-loader' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-diagnostic-updater' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-tf2-eigen' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosbag2-storage' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rclcpp' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-launch' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2lifecycle' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-launch-testing-ros' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-sdl2-vendor' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-pytest' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-urg-c' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-cmake' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2topic' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-diagnostic-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-cpplint' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-tf2-kdl' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-fastrtps-cmake-module' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-lint-cmake' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-urg-node-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-fastrtps-c' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rclpy' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-auto' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosbridge-library' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rosidl-typesupport-introspection-cpp' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rmw-fastrtps-shared-cpp' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-example-interfaces' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-python' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-uncrustify' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-version' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-libstatistics-collector' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-sensor-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-cmake-gmock' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rclcpp-components' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ament-lint-auto' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-test-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-std-msgs' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-ros2param' for glob 'ros-foxy-*' Note, selecting 'ros-foxy-rmw-fastrtps-cpp' for glob 'ros-foxy-*' Package 'ros-foxy-rmw-connext-cpp' is not installed, so not removed Package 'ros-foxy-rosidl-typesupport-connext-c' is not installed, so not removed Package 'ros-foxy-rosidl-typesupport-connext-cpp' is not installed, so not removed E: Unable to locate package ros2-* E: Couldn't find any package by glob 'ros2-*'
最新发布
08-07
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值