2021@SDUSC
ROS-3DSLAM(1):综述
2021年9月27日星期一——2021年9月29日星期三
一、项目简介:
Robot operating System (ROS),通常被称为机器人操作系统,是一种弱耦合的分布式进程框架,通过进程间的消息传递和管理来实现硬件抽象和设备控制。
我们的任务是对于这一系统的源代码进行分析。
二、基本知识储备:
一、概念初识(基于乌龟例子的学习)
-
ROS文件系统
-
创建软件包:catkin和rosmake两种方式
-
软件包的编译
-
节点:节点、消息、话题、主节点、roscore、rosout
-
话题:发布和订阅、消息、查看rosmsg
-
服务和参数:请求和响应、查看rosservice、rosparam
-
rqt_console和roslaunch
二 进一步的学习
-
使用rosed来编辑
-
消息和服务
-
简单的发布者和订阅者(python版本)
-
简单的服务和客户端(python版本)
-
编写后测试与检验
三、确定关键代码:
我负责的部分是通信和摄像头相关的包:
2、12、14、15、16、17
2-ros_comm-noetic-devel(本文代码中最重要的一个包)
ROS通信相关包,包括核心客户端库(roscpp, rospy)和图形自检工具(rostopic, rosnode, rosservice, rosparam)。
-
clients:clients目录下有两个,分别是python实现和cpp实现:
1. roscpp:roscpp是最广泛使用的ROS客户端库,被设计为是高性能的ROS库。
2. rospy:rospy是一个纯Python的ROS客户端库。rospy客户端API使Python程序员能够快速地与ROS进行接 口, rospy的设计有利于测试需要快速实现(如开发时)的运行时性能,以便算法可以快速在ROS中进行原型测 试。它也是理想的非关键路径代码,例如配置和初始化代码。许多ROS工具都是用rospy编写的类型自省能力 的优势。许多ROS工具都建立在rospy之上。
-
tools:(只介绍上文中的四个包)
-
rostopic:Rostopic包含Rostopic命令行工具,用于显示关于ROS,包括发布者、订阅者、发布速率和ROS。它还包含一个实验性的Python库,用于获取关于主题的信息并与主题动态交互。这个库只供内部使用,因为代码API可能会改变,尽管它提供了如何在ROS中实现动态订阅和发布行为的示例
-
rsnode:Rosnode是一个用于显示调试信息的命令行工具关于ROS包括发布、订阅和连接。它还包含用于检索节点的实验库信息。此库仅供内部使用。
-
rosservice:Rosservice包含用于列表的Rosservice命令行工具和查询ROS服务。它还包含一个Python库&#x
-