在和很多用户聊了之后,我们发现 ROS 是大家开发机器人的一个痛点。
尽管和几年前ROS刚在国内兴起时相比,现在ROS的使用人群有一定的增长,网上ROS的资料和教程也多了起来。
但对机器人开发感兴趣的初学者来说,仍然缺少
免费、系统、详细、全面,手把手
的ROS教程。
我们希望大家能够快速上手机器人开发,能有更多的人一同加入到机器人行业中来。
因此,我们制作了一套适合零基础学习的ROS视频教程——《ROS理论与实践》,免费分享给大家。
课程视频
【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程
目前课程仍在录制中,关注Up主
【Autolabor官方】
将会获得每天的更新提醒。
课程文档
课程目录
注:部分章节后期会有所调整,以最终视频教程为准。
-
第 1 章 ROS概述与环境
-
1.1 ROS简介
- 1.1.1ROS概念
- 1.1.2ROS设计目标
- 1.1.3ROS发展历程
-
1.2 ROS安装
- 1.2.1 安装虚拟机软件
- 1.2.2 虚拟一台主机
- 1.2.3 安装 ubuntu
- 1.2.4 安装 ROS
- 1.2.5 测试 ROS
- 1.2.6 资料:其他ROS版本安装
-
1.3 ROS快速体验
- 1.3.1 HelloWorld实现简介
- 1.3.2 HelloWorld实现A(C++)
- 1.3.3 HelloWorld实现B(Python)
-
1.4 ROS集成开发环境搭建
- 1.4.1 安装终端
- 1.4.2 安装VScode
- 1.4.3 launch文件演示
-
1.5 ROS架构
- 1.5.1 ROS文件系统
- 1.5.2 ROS文件系统相关命令
- 1.5.3 ROS计算图
- 1.6 本章小结
-
1.1 ROS简介
-
第 2 章 ROS通信机制
-
2.1 话题通信
- 2.1.1 话题通信理论模型
- 2.1.2 话题通信基本操作A(C++)
- 2.1.3 话题通信基本操作B(Python)
- 2.1.4 话题通信自定义msg
- 2.1.5 话题通信自定义msg调用A(C++)
- 2.1.6 话题通信自定义msg调用B(Python)
-
2.2 服务通信
- 2.2.1 服务通信理论模型
- 2.2.2 服务通信自定义srv
- 2.2.3 服务通信自定义srv调用A(C++)
- 2.2.4 服务通信自定义srv调用B(Python)
-
2.3 参数服务器
- 2.3.1 参数服务器理论模型
- 2.3.2 参数操作A(C++)
- 2.3.3 参数操作B(Python)
-
2.4 常用命令
- 2.4.1 rosnode
- 2.4.2 rostopic
- 2.4.3 rosservice
- 2.4.4 rosmsg
- 2.4.5 rossrv
- 2.4.6 rosparam
-
2.5 通信机制实操
- 2.5.1 实操01_话题发布
- 2.5.2 实操02_话题订阅
- 2.5.3 实操03_服务调用
- 2.5.4 实操04_参数设置
- 2.6 通信机制比较
- 2.7 本章小结
-
2.1 话题通信
-
第 3 章 ROS通信机制进阶
-
3.1 action通信
- 3.1.1 action通信自定义action文件
- 3.1.2 action通信自定义action文件调用A(C++)
- 3.1.3 action通信自定义action文件调用(Python)
- 3.1.4 action通信实操
-
3.2 动态配置参数
- 3.2.1 动态配置参数客户端
- 3.2.2 动态配置参数服务端A(C++)
- 3.2.3 动态配置参数服务端B(Python)
- 3.3 本章小结
-
3.1 action通信
-
第 4 章 ROS运行管理
- 4.1 ROS元功能包
-
4.2 ROS节点管理launch文件
- 4.2.1 launch文件标签之launch
- 4.2.2 launch文件标签之node
- 4.2.3 launch文件标签之include
- 4.2.4 launch文件标签之remap
- 4.2.5 launch文件标签之param
- 4.2.6 launch文件标签之rosparam
- 4.2.7 launch文件标签之group
- 4.2.8 launch文件标签之arg
- 4.3 ROS工作空间覆盖
-
4.4 ROS节点名称重名
- 4.4.1 rosrun设置命名空间与重映射
- 4.4.2 launch文件设置命名空间与重映射
- 4.4.3 编码设置命名空间与重映射
-
4.5 ROS话题名称设置
- 4.5.1 rosrun设置话题重映射
- 4.5.2 launch文件设置话题重映射
- 4.5.3 编码设置话题名称
-
4.6 ROS参数名称设置
- 4.6.1 rosrun设置参数
- 4.6.2 launch文件设置参数
- 4.6.3 编码设置参数
- 4.7 ROS分布式通信
- 4.8 本章小结
-
第 5 章 ROS常用组件
-
5.1 TF坐标变换
- 5.1.1 坐标msg消息
- 5.1.2 静态坐标变换
- 5.1.3 动态坐标变换
- 5.1.4 多坐标变换
- 5.1.5 坐标系关系查看
- 5.1.6 TF坐标变换实操
- 5.1.7 TF2与TF
- 5.1.8 小结
-
5.2 rosbag
- 5.2.1 rosbag使用_命令行
- 5.2.2 rosbag使用_编码
- 5.2.3 rosbag实操
-
5.3 rqt工具箱
- 5.3.1 rqt安装启动与及基本使用
- 5.3.2 rqt常用插件:rqt_graph
- 5.3.3 rqt常用插件:rqt_console
- 5.3.4 rqt常用插件:rqt_plot
- 5.3.5 rqt常用插件:rqt_bag
- 5.4 本章小结
-
5.1 TF坐标变换
-
第 6 章 机器人系统仿真
- 6.1 概述
- 6.2 URDF集成Rviz基本流程
-
6.3 URDF语法详解
- 6.3.1 URDF语法详解01_robot
- 6.3.2 URDF语法详解02_link
- 6.3.3 URDF语法详解03_joint
- 6.3.4 URDF练习
- 6.3.5 URDF工具
-
6.4 URDF优化_xacro
- 6.4.1 Xacro_快速体验
- 6.4.2 Xacro_语法详解
- 6.4.3 Xacro_完整使用流程示例
- 6.4.4 Xacro_实操
-
6.5 Rviz控制机器人模型运动
- 6.5.1 Arbotix使用流程
- 6.5.2 Noetic下安装Arbotix
-
6.6 URDF集成Gazebo
- 6.6.1 URDF与Gazebo基本集成流程
- 6.6.2 URDF集成Gazebo相关设置
- 6.6.3 URDF集成Gazebo实操
- 6.6.4 Gazebo仿真环境搭建
-
6.7 URDF、Gazebo与Rviz综合应用
- 6.7.1 机器人运动控制以及里程计信息显示
- 6.7.2 雷达信息仿真以及显示
- 6.7.3 摄像头信息仿真以及显示
- 6.7.4 kinect信息仿真以及显示
- 6.8 本章小结
-
第 7 章 机器人导航(仿真)
- 7.1 概述
-
7.2 导航实现
- 7.2.1 导航实现01_SLAM建图
- 7.2.2 导航实现02_地图服务
- 7.2.3 导航实现03_定位
- 7.2.4 导航实现04_路径规划
- 7.2.5 导航与SLAM建图
- 7.3 深度图像转激光数据
-
7.4 SLAM
- 7.4.1 SLAM实现之hector_slam
- 7.4.2 SLAM实现之cartographer
- 7.5 本章小结
-
第 8 章 机器人平台设计
- 8.1 概述
-
8.2 机器人平台设计之arduino基础
- 8.2.1 arduino 开发环境搭建
- 8.2.2 arduino 基本语法概述
- 8.2.3 arduino 基本语法演示01
- 8.2.4 arduino 基本语法演示02
- 8.2.5 arduino 基本语法演示03
-
8.3 机器人平台设计之arduino与电机驱动
- 8.3.1 硬件_电机与电机驱动板简介
- 8.3.2 电机基本控制实现
- 8.3.3 电机测速01_理论
- 8.3.4 电机测速02_实现
- 8.3.5 电机调速01_PID控制理论
- 8.3.6 电机调速02_PID控制实现
-
8.4 机器人平台设计之Arduino与ROS通信
- 8.4.1 Arduino与ROS通信_rosserial简介
- 8.4.2 Arduino与ROS通信_发布
- 8.4.3 Arduino与ROS通信_订阅
-
8.5 机器人平台设计之底盘实现(上)
- 8.5.1 硬件组装
- 8.5.2 基于rosserialarduino的底盘实现概述
- 8.5.3 基于rosserial_arduino的底盘实现_01框架搭建
- 8.5.4 基于rosserial_arduino的底盘实现_02电机转向控制
- 8.5.5 基于rosserial_arduino的底盘实现_03测速
- 8.5.6 基于rosserial_arduino的底盘实现_04调速
- 8.5.7 基于rosserial_arduino的底盘实现_05ROS端
-
8.6 机器人平台设计之底盘实现(下)
- 8.6.1 基于rosarduino_bridge的底盘实现概述
- 8.6.2 基于ros_arduino_bridge的底盘实现_01Arduino端入口
- 8.6.3 基于ros_arduino_bridge的底盘实现_02Arduino端编码器驱动
- 8.6.4 基于ros_arduino_bridge的底盘实现_03Arduino端电机驱动
- 8.6.5 基于ros_arduino_bridge的底盘实现_04Arduino端PID控制
- 8.6.6 基于ros_arduino_bridge的底盘实现_05ROS端配置
-
8.7 机器人平台设计之控制系统
- 8.7.1 控制系统实现_树莓派概述
- 8.7.2 控制系统实现_树莓派安装ROS
- 8.7.3 控制系统实现_分布式框架
- 8.7.4 控制系统实现_程序上传
- 8.7.5控制系统实现_rosArduinoBridge上传至树莓派
-
8.8 机器人平台设计之传感器
- 8.8.1 传感器_激光雷达简介
-
8.8.2 传感器_激光雷达使用
8.8.3 传感器_深度相机简介 - 8.8.4 传感器_深度相机使用
- 8.8.5 传感器_集成
- 8.9 本章小结
-
第 9 章 机器人导航(实体)
- 9.1 概述
- 9.2 导航实现
- 9.3 深度图像转激光数据
-
9.4 SLAM
- 9.4.1 SLAM实现之hector_slam
- 9.5 本章小结
版权声明:本文为autolabor原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。