ROS讲义精华:指令与通信详解

需积分: 14 10 下载量 130 浏览量 更新于2024-09-03 收藏 531KB PDF 举报
本学习笔记是关于Robot Operating System (ROS)的详细介绍,特别是针对思慕课程中所教授的内容。ROS是一个开源的机器人操作系统,主要用于简化机器人软件的开发过程,通过模块化和标准化的方式促进跨平台通信和协作。本资料涵盖了ROS的基本概念、安装与配置、以及其主要组件的使用。 1.1 ROS概述: ROS最初由 Willow Garage公司开发,支持多种编程语言,如C++和Python,通过ROS的软件包管理器和消息传递系统实现不同节点之间的通信。ROS的核心思想是将复杂的问题分解为独立的组件,每个组件作为一个节点运行,通过话题(Topic)和服务(Service)进行通信。 1.2 ROS架构: ROS主要分为两部分:ROS Core(基础框架)和ROS Distribution(发行版)。ROS Core提供了一套标准接口和服务,而ROS Distribution则是特定版本的软件包集合。ROS Core的组成部分包括Nodelets(轻量级节点)、参数服务器、消息队列等。 2. Catkin工具: Catkin是ROS的一个工具套件,用于构建、打包和管理ROS项目的构建流程。它简化了ROS开发过程中的依赖管理和构建步骤: 2.1 Catkin工作流: - Catkin Workspace(猫kin工作空间)用于组织和管理项目源代码。 - 使用`catkin_make`或`catkinbuild`命令构建软件包,确保所有依赖项正确安装。 - `setup.bash`脚本在启动时加载,设置环境变量以便于编译和运行ROS节点。 - `roslaunch`用于执行预定义的launch文件,快速启动多个节点。 2.2.1 Catkin的CMake集成: Catkin使用CMake作为构建工具,它提供了一个`find_package()`函数来查找和管理依赖项,并利用`pkg-config`来解决库链接问题。CMakeLists.txt文件是每个软件包的构建配置文件,通过Catkin工作流,可以自动处理ROS特有的构建逻辑。 本学习笔记提供了对ROS基础知识和实践操作的深入理解,对于理解和开发基于ROS的机器人系统具有很大的参考价值。学习者可以借此笔记回顾ROS的体系结构、安装配置方法,以及如何使用Catkin工具有效地管理软件包和构建过程。
2020-05-05 上传
目錄 前言 第一章 ROS简介 机器人时代的到来 ROS发展历程 什么是ROS 安装ROS 安装ROS-Academy-for-Beginners教学包 二进制与源码包 安装RoboWare Studio 单元测试一 第二章 ROS文件系统 Catkin编译系统 Catkin工作空间 Package软件包 CMakeLists.txt package.xml Metapacakge软件元包 其他常见文件类型 单元测试二 第三章 ROS通信架构(一) Node & Master Launch文件 Topic Msg 常见msg类型 单元测试三 第四章 ROS通信架构(二) Service Srv Parameter server 11.5.4 1.5.5 1.5.6 1.5.7 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.6.1 1.9.6.2 Action 常见srv类型 常见action类型 单元测试四 第五章 常用工具 Gazebo RViz Rqt Rosbag Rosbridge moveit! 单元测试五 第六章 roscpp Client Library与roscpp 节点初始、关闭与NodeHandle Topic in roscpp Service in roscpp Param in roscpp 时钟 日志与异常 第七章 rospy Rospy与主要接口 Topic in rospy Service in rospy Param与Time 第八章 TF与URDF 认识TF TF消息 tf in c++ tf in python 统一机器人描述格式 附录:TF数学基础 三维空间刚体运动---旋转矩阵 三维空间刚体运动---欧拉角 21.9.6.3 1.10 1.10.1 1.10.2 1.10.3 1.10.4 1.11 1.11.1 1.11.2 1.11.3 1.11.4 1.12 1.12.1 1.12.2 1.12.3 1.12.4 1.12.5 1.12.6 1.12.7 1.12.8 1.12.9 1.12.10 1.12.11 1.12.12 1.12.13 1.12.14 1.12.15 1.12.16 三维空间刚体运动---四元数 第九章 SLAM 地图 Gmapping Karto Hector 第十章 Navigation Navigation Stack move_base costmap Map_server & Amcl 附录:Navigation工具包说明 amcl local_base_planner carrot_planner clear_costmap_recovery costmap_2d dwa_local_planner fake_localization global_planner map_server move_base_msg move_base move_slow_and_clear navfn nav_core robot_pose_ekf rotate_recovery 3中国大学MOOC---《机器人操作系统入门》 课 程讲义