ROS机器人编程实践

ROS机器人编程实践

项目内容
共12个实验
实验1 实验1:ROS简介
本章介绍ROS的产生、发展、特点和安装方法,带给你一个简单直观的ROS介绍。
实验2 实验2:ROS文件系统
本章主要介绍了ROS的工程结构,也就是ROS的文件系统结构。要学会建立一个ROS工程,首先要认识一个ROS工程,了解它们的组织架构,从根本上熟悉ROS项目的组织形式,了解各个文件的功能和作用,才能正确的进行开发和编程。
实验3 实验3:ROS通信架构(一)
ROS的通信架构是ROS的灵魂,也是整个ROS正常运行的关键所在。ROS通信架构包括各种数据的处理,进程的运行,消息的传递等等。本章主要介绍了通信架构的基础通信方式和相关概念。其中首先介绍了最小的进程单元节点Node,和节点管理器Node master。了解了ROS中的进程都是由很多的Node组成,并且由Node master来管理这些节点。
实验4 实验4:ROS通信架构(二)
继上一章节介绍了ROS通信架构中最常见的话题通信方式,本章节将继续介绍ROS通信方式中的service、parameter server、actionlib。通过学习这四种通信方式,了解他们的通信原理和参数命令。当然还有各自的优缺点和不同的适用方面。通过这两章的学习,大致上会对于ROS的通信架构有一个宏观的理解,为后面的学习和实际应用提供了理论基础。
实验5 实验5:常用工具
本章主要介绍了ROS开发时常常使用的工具,分别是:
* Gazebo
* RViz
* rqt
* rosbag
* rosbridge
* moveit!

实验6 实验6:roscpp
从本章开始,我们就要正式的接触ROS编程了。在之前的章节,你了解到用命令行启动ROS程序、发送指令消息,或使用可视化界面来调试机器人。你可能很想知道,这些工具到底是如何实现这些功能的。起始这些工具本质上都是基于ROS的客户端库(Client Libarary)实现的,所谓客户端库,简单的理解就是一套接口,ROS为我们机器人开发者提供了不同语言的接口,比如roscpp是C++语言ROS接口,rospy是python语言的ROS接口,我们直接调用它所提供的函数就可以实现topic、service等通信功能。
实验7 实验7:rospy
我们学习了C++语音的ROS接口roscpp,本章我们来学习ROS的另一个接口rospy,也即是Python语音的接口。客户端库(Client Libarary)不仅仅指的是C++、Python语言的接口,其实是各种语言的接口统称。rospy中函数的定义,函数的用法都和roscpp不相同。
实验8 实验8:TF与URDF
机器人的坐标变换一直以来是机器人学的一个难点,我们人类在进行一个简单的动作时,从思考到实施行动再到完成动作可能仅仅需要几秒钟,但是机器人来讲就需要大量的计算和坐标转换。其中的坐标转换TF和URDF是本章要详细介绍的内容。
实验9 实验9:TF附录
机器人的坐标变换一直以来是机器人学的一个难点,我们人类在进行一个简单的动作时,从思考到实施行动再到完成动作可能仅仅需要几秒钟,但是机器人来讲就需要大量的计算和坐标转换。其中的坐标转换TF和统一机器人描述格式URDF就是本章要详细介绍的内容。
本章的主要内容,首先是坐标转换的前提数学知识:三维空间刚体运动,包括旋转矩阵、欧拉角、四元数等。之后详细介绍了TF和URDF,最后介绍了制作URDF模型的过程。

实验10 实验10:SLAM
机器人研究的问题包含许许多多的领域,我们常见的几个研究的问题包括:建图(Mapping)、定位(Localization)和路径规划(Path Planning),如果机器人带有机械臂,那么运动规划(Motion Planning)也是重要的一个环节。而同步定位与建图(SLAM)问题位于定位和建图的交集部分。

SLAM需要机器人在未知的环境中逐步建立起地图,然后根据地区确定自身位置,从而进一步定位。

实验11 实验11:Navigation
Navigation是机器人最基本的功能之一,ROS为我们提供了一整套Navigation的解决方案,包括全局与局部的路径规划、代价地图、异常行为恢复、地图服务器等等,这些开源工具包极大地减少了我们开发的工作量,任何一套移动机器人硬件平台经过这套方案就可以快速部署实现。
实验12 实验12:常见问题与解决
在ROS的学习过程中,总会遇到这样或者那样的问题,我们在不断的解决问题过程中认识和了解ROS,使用ROS。
本章主要搜集了一些ROS安装或者操作中出现的一些问题,以及解决方案。主要内容包括ROS安装过程需要注意的一些要点,ROS环境配置和ROS操作使用的时候可能出现的一些问题等。当然问题总是罗列不完的,我们能做的就是坚持学习,去克服ROS学习道路上的一个又一个的困难。

实验1:ROS简介

共12个实验

参加本项目
ROS机器人编程实践