1、ROS机器人开发实践机器人开发实践演讲人2020-11-03011 初识初识ROS 1.1 ROS是什么 1.2 如何安装ROS 1.3 本书源码下载 1.4 本章小结1 初识ROS1 初识ROS1.1 ROS是什么1.1.1 ROS的起源1.1.2 ROS的设计目标1.1.3 ROS的特点1 初识ROS1.2 如何安装ROS1.2.1 操作系统与ROS版本的选择011.2.2 配置系统软件源021.2.3 添加ROS软件源031.2.4 添加密钥041.2.5 安装ROS051.2.6 初始化rosdep061.2 如何安装ROS1 初识ROS1.2.7 设置环境变量11.2.8 完成安装2
2、022 ROS架构架构2 ROS架构2.1 ROS架构设计2.2 计算图2.3 文件系统2.6 话题与服务的区别2.5 ROS的通信机制2.4 开源社区2.7 本章小结2 ROS架构2.2 计算图2 ROS架构2.2.1 节点2.2.2 消息2.2.5 节点管理器2.2.4 服务2.2.3 话题2 ROS架构2.3 文件系统2.3.1 功能包2.3.2 元功能包2.5 ROS的通信机制2 ROS架构CBA2.5.1 话题通信机制2.5.2 服务通信机制2.5.3 参数管理机制033 ROS基础基础3 ROS基础AEDFBC3.2 创建工作空间和功能包3.3 工作空间的覆盖3.5 RoboWar
3、e简介3.4 搭建Eclipse开发环境3.6 话题中的Publisher与Subscriber3.1 第一个ROS例程小乌龟仿真3 ROS基础3.7 服务中的Server和Client3.8 ROS中的命名空间3.9 分布式多机通信3.10 本章小结DCAB3 ROS基础3.1 第一个ROS例程小乌龟仿真A3.1.1 turtlesim功能包3.1.2 控制乌龟运动B3.2 创建工作空间和功能包3 ROS基础CBA3.2.1 什么是工作空间3.2.2 创建工作空间3.2.3 创建功能包3 ROS基础3.3 工作空间的覆盖3.3.1 ROS中工作空间的覆盖3.3.2 工作空间覆盖示例3.4 搭
4、建Eclipse开发环境3 ROS基础3.4.2 创建Eclipse工程文件3.4.4 设置头文件路径3.4.1 安装Eclipse3.4.3 将工程导入Eclipse3.4.5 运行/调试程序3 ROS基础3.5 RoboWare简介A3.5.1 RoboWare的特点3.5.2 RoboWare的安装与使用B3 ROS基础3.6 话题中的Publisher与Subscriber3.6.1 乌龟例程中的Publisher与Subscriber3.6.3 如何创建Subscriber3.6.5 运行Publisher与Subscriber3.6.2 如何创建Publisher3.6.4 编译功
5、能包3.6.6 自定义话题消息3.7 服务中的Server和Client3 ROS基础3.7.1 乌龟例程中的服务3.7.2 如何自定义服务数据3.7.3 如何创建Server3.7.6 运行Server和Client3.7.5 编译功能包3.7.4 如何创建ClientLOGOhttps:/3 ROS基础3.8 ROS中的命名空间3.8.1 有效的命名3.8.2 命名解析3.8.3 命名重映射3 ROS基础3.9 分布式多机通信CBA3.9.1 设置IP地址3.9.2 设置ROS_MASTER_URI3.9.3 多机通信测试044 ROS中的常用组件中的常用组件4 ROS中的常用组件4.1
6、launch启动文件4.2 TF坐标变换4.3 Qt工具箱4.6 rosbag数据记录与回放4.5 Gazebo仿真环境4.4 rviz三维可视化平台4.7 本章小结4 ROS中的常用组件4 ROS中的常用组件4.1 launch启动文件4.1.1 基本元素4.1.2 参数设置4.1.4 嵌套复用4.1.3 重映射机制4.2 TF坐标变换4 ROS中的常用组件4.2.1 TF功能包4.2.2 TF工具4.2.3 乌龟例程中的TF4.2.6 实现乌龟跟随运动4.2.5 创建TF监听器4.2.4 创建TF广播器4 ROS中的常用组件4.3 Qt工具箱4.3.1 日志输出工具(rqt_console
7、)4.3.2 计算图可视化工具(rqt_graph)4.3.3 数据绘图工具(rqt_plot)4.3.4 参数动态配置工具(rqt_reconfigure)4 ROS中的常用组件4.4 rviz三维可视化平台4.4.1 安装并运行rviz014.4.3 插件扩展机制034.4.2 数据可视化024 ROS中的常用组件4.5 Gazebo仿真环境CBA4.5.1 Gazebo的特点4.5.2 安装并运行Gazebo4.5.3 构建仿真环境4 ROS中的常用组件4.6 rosbag数据记录与回放4.6.1 记录数据4.6.2 回放数据055 机器人平台搭建机器人平台搭建5 机器人平台搭建AEDF
8、BC5.2 机器人的组成5.3 机器人系统搭建5.5 为机器人装配摄像头5.4 基于Raspberry Pi的控制系统实现5.6 为机器人装配Kinect5.1 机器人的定义5 机器人平台搭建5.7 为机器人装配激光雷达5.8 本章小结5 机器人平台搭建5.2 机器人的组成5.2.1 执行机构5.2.2 驱动系统5.2.4 控制系统5.2.3 传感系统5 机器人平台搭建5.3 机器人系统搭建5.3.1 MRobot5.3.2 执行机构的实现5.3.3 驱动系统的实现5.3.4 内部传感系统的实现5 机器人平台搭建5.4 基于Raspberry Pi的控制系统实现5.4.2 安装Ubuntu 1
9、6.04025.4.4 控制系统与MRobot通信045.4.1 硬件平台Raspberry Pi015.4.3 安装ROS035.4.5 PC端控制MRobot055.5 为机器人装配摄像头5 机器人平台搭建5.5.2 PC端驱动摄像头5.5.1 usb_cam功能包5.5.3 Raspberry Pi驱动摄像头5.6 为机器人装配Kinect5 机器人平台搭建5.6.2 PC端驱动Kinect5.6.4 Kinect电源改造5.6.1 freenect_camera功能包5.6.3 Raspberry Pi驱动Kinect5.7 为机器人装配激光雷达5 机器人平台搭建5.7.2 PC端驱动
10、rplidar5.7.1 rplidar功能包5.7.3 Raspberry Pi驱动rplidar066 机器人建模与仿真机器人建模与仿真6 机器人建模与仿真AEDFBC6.2 创建机器人URDF模型6.3 改进URDF模型6.5 基于ArbotiX和rviz的仿真器6.4 添加传感器模型6.6 ros_control6.1 统一机器人描述格式URDF6 机器人建模与仿真6.7 Gazebo仿真6.8 本章小结6 机器人建模与仿真6.1 统一机器人描述格式URDF6.1.1<link>标签6.1.2<joint>标签6.1.3<robot>标签6.1.4&
11、lt;gazebo>标签6.2 创建机器人URDF模型6 机器人建模与仿真6.2.1 创建机器人描述功能包6.2.2 创建URDF模型6.2.3 URDF模型解析6.2.4 在rviz中显示模型DCAB6 机器人建模与仿真6.3 改进URDF模型6.3.1 添加物理和碰撞属性6.3.2 使用xacro优化URDF6.3.3 xacro文件引用6.3.4 显示优化后的模型6 机器人建模与仿真6.4 添加传感器模型6.4.2 添加Kinect1326.4.1 添加摄像头6.4.3 添加激光雷达6 机器人建模与仿真6.5 基于ArbotiX和rviz的仿真器CBA6.5.1 安装ArbotiX
12、6.5.2 配置ArbotiX控制器6.5.3 运行仿真环境6.6 ros_control6 机器人建模与仿真6.6.1 ros_control框架6.6.2 控制器6.6.3 硬件接口6.6.6 控制器管理器6.6.5 关节约束6.6.4 传动系统6.7 Gazebo仿真6 机器人建模与仿真6.7.6 激光雷达仿真6.7.5 Kinect仿真6.7.4 摄像头仿真6.7.3 控制机器人在Gazebo中运动6.7.2 在Gazebo中显示机器人模型6.7.1 机器人模型添加Gazebo属性077 机器视觉机器视觉7 机器视觉7.1 ROS中的图像数据7.2 摄像头标定7.3 OpenCV库7.
13、6 二维码识别7.5 物体跟踪7.4 人脸识别7 机器视觉7.7 物体识别7.8 本章小结7 机器视觉7.1 ROS中的图像数据017.1.1 二维图像数据027.1.2 三维点云数据7 机器视觉7.2 摄像头标定7.2.1 camera_calibration功能包017.2.2 启动标定程序027.2.3 标定摄像头037.2.4 标定Kinect047.2.5 加载标定参数的配置文件05LOGOhttps:/7 机器视觉7.3 OpenCV库7.3.1 安装OpenCV7.3.2 在ROS中使用OpenCV7 机器视觉7.4 人脸识别7.4.1 应用效果17.4.2 源码实现27 机器视
14、觉7.5 物体跟踪7.5.1 应用效果17.5.2 源码实现27.6 二维码识别7 机器视觉7.6.1 ar_track_alvar功能包7.6.2 创建二维码7.6.3 摄像头识别二维码7.6.4 Kinect识别二维码7 机器视觉7.7 物体识别7.7.1 ORK功能包17.7.3 模型训练37.7.2 建立物体模型库27.7.4 三维物体识别4088 机器语音机器语音8 机器语音01038.1 让机器人听懂你说的话8.2 通过语音控制机器人8.3 让机器人说话020405068.4 人工智能标记语言8.5 与机器人对话8.6 让机器人听懂中文8.7 本章小结8 机器语音8.1 让机器人听
15、懂你说的话8 机器语音8.1.1 pocketsphinx功能包8.1.2 语音识别测试8.1.3 创建语音库8.1.6 中文语音识别8.1.5 语音指令识别8.1.4 创建launch文件8 机器语音8.2 通过语音控制机器人A8.2.1 编写语音控制节点8.2.2 语音控制小乌龟运动B8 机器语音8.3 让机器人说话8.3.2 语音播放测试8.3.1 sound_play功能包8 机器语音8.4 人工智能标记语言8.4.1 AIML中的标签8.4.2 Python中的AIML解析器8 机器语音8.5 与机器人对话8.5.1 语音识别018.5.2 智能匹配应答028.5.3 文本转语音03
16、8.5.4 智能对话048.6 让机器人听懂中文8 机器语音DCBA8.6.1 下载科大讯飞SDK8.6.2 测试SDK8.6.3 语音听写8.6.4 语音合成E8.6.5 智能语音助手099 机器人机器人SLAM与自主导航与自主导航9 机器人SLAM与自主导航DCBA9.1 理论基础9.2 准备工作9.3 gmapping9.4 hector-slamE9.5 cartographerF9.6 rgbdslam9 机器人SLAM与自主导航9.12 自主探索SLAM9.11 真实机器人导航9.10 在Gazebo中仿真机器人导航9.9 在rviz中仿真机器人导航9.8 导航功能包9.7 ORB
17、_SLAM9.13 本章小结9 机器人SLAM与自主导航9 机器人SLAM与自主导航9.2 准备工作9.2.2 仿真平台1329.2.1 传感器信息9.2.3 真实机器人9.3 gmapping9 机器人SLAM与自主导航9.3.2 gmapping节点的配置与运行9.3.4 真实机器人SLAM9.3.1 gmapping功能包9.3.3 在Gazebo中仿真SLAM9.4 hector-slam9 机器人SLAM与自主导航9.4.2 hector_mapping节点的配置与运行9.4.4 真实机器人SLAM9.4.1 hector-slam功能包9.4.3 在Gazebo中仿真SLAM9.5
18、 cartographer9 机器人SLAM与自主导航9.5.2 官方demo测试9.5.4 在Gazebo中仿真SLAM9.5.1 cartographer功能包9.5.3 cartographer节点的配置与运行9.5.5 真实机器人SLAM9.6 rgbdslam9 机器人SLAM与自主导航9.6.2 使用数据包实现SLAM9.6.1 rgbdslam功能包9.6.3 使用Kinect实现SLAM9 机器人SLAM与自主导航9.7 ORB_SLAMCBA9.7.1 ORB_SLAM功能包9.7.2 使用数据包实现单目SLAM9.7.3 使用摄像头实现单目SLAM9.8 导航功能包9 机器
19、人SLAM与自主导航DCBA9.8.1 导航框架9.8.2 move_base功能包9.8.3 amcl功能包9.8.4 代价地图的配置E9.8.5 本地规划器配置LOGOhttps:/9 机器人SLAM与自主导航9.9 在rviz中仿真机器人导航9.9.1 创建launch文件019.9.2 开始导航029.9.3 自动导航039 机器人SLAM与自主导航9.10 在Gazebo中仿真机器人导航9.10.1 创建launch文件9.10.2 运行效果9.10.3 实时避障9 机器人SLAM与自主导航9.11 真实机器人导航9.11.1 创建launch文件9.11.2 开始导航9.12 自主
20、探索SLAM9 机器人SLAM与自主导航9.12.2 通过rviz设置探索目标9.12.1 创建launch文件9.12.3 实现自主探索SLAM1010 MoveIt!机械臂控制!机械臂控制10 MoveIt!机械臂控制10.2 如何使用MoveIt!10.4 使用Setup Assistant配置机械臂10.6 配置文件10.1 MoveIt!系统架构10.3 创建机械臂模型10.5 启动MoveIt!10 MoveIt!机械臂控制10.7 添加ArbotiX关节控制器10.9 MoveIt!编程学习10.11 Gazebo中的机械臂仿真10.8 配置MoveIt!关节控制器10.10 p
21、ick and place示例10.12 使用MoveIt!控制Gazebo中的机械臂10 MoveIt!机械臂控制10.13 ROS-I10.14 本章小结10.1 MoveIt!系统架构10 MoveIt!机械臂控制10.1.2 运动规划器(motion_planner)10.1.4 运动学求解器10.1.1 运动组(move_group)10.1.3 规划场景10.1.5 碰撞检测10 MoveIt!机械臂控制10.3 创建机械臂模型10.3.1 声明模型中的宏10.3.2 创建六轴机械臂模型10.3.3 加入Gazebo属性10.3.4 显示机器人模型1111 ROS与机器学习与机器学习11 ROS与机器学习1212 ROS进阶功能进阶功能12 ROS进阶功能1313 ROS机器人实例机器人实例13 ROS机器人实例1414 ROS 2 14 ROS 2感谢聆听感谢聆听