资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,0,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,0,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,0,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,0,ROS机器人开发实践,演讲人,2020-11-03,ROS机器人开发实践演讲人2020-11-03,1,01,1 初识ROS,011 初识ROS,2,1.1 ROS是什么,1.2 如何安装ROS,1.3 本书源码下载,1.4 本章小结,1 初识ROS,1.1 ROS是什么1 初识ROS,3,1 初识ROS,1.1 ROS是什么,1.1.1 ROS的起源,1.1.2 ROS的设计目标,1.1.3 ROS的特点,1 初识ROS1.1 ROS是什么1.1.1 ROS的起源1,4,1 初识ROS,1.2 如何安装ROS,1.2.1 操作系统与ROS版本的选择,01,1.2.2 配置系统软件源,02,1.2.3 添加ROS软件源,03,1.2.4 添加密钥,04,1.2.5 安装ROS,05,1.2.6 初始化rosdep,06,1 初识ROS1.2 如何安装ROS1.2.1 操作系统与R,5,1.2 如何安装ROS,1 初识ROS,1.2.7 设置环境变量,1,1.2.8 完成安装,2,1.2 如何安装ROS1 初识ROS1.2.7 设置环境变量,6,02,2 ROS架构,022 ROS架构,7,2 ROS架构,2.1 ROS架构设计,2.2 计算图,2.3 文件系统,2.6 话题与服务的区别,2.5 ROS的通信机制,2.4 开源社区,2 ROS架构2.1 ROS架构设计2.2 计算图2.3 文,8,2.7 本章小结,2 ROS架构,2.7 本章小结2 ROS架构,9,2.2 计算图,2 ROS架构,2.2.1 节点,2.2.2 消息,2.2.5 节点管理器,2.2.4 服务,2.2.3 话题,2.2 计算图2 ROS架构2.2.1 节点2.2.2 消息,10,2 ROS架构,2.3 文件系统,2.3.1 功能包,2.3.2 元功能包,2 ROS架构2.3 文件系统2.3.1 功能包2.3.2,11,2.5 ROS的通信机制,2 ROS架构,C,B,A,2.5.1 话题通信机制,2.5.2 服务通信机制,2.5.3 参数管理机制,2.5 ROS的通信机制2 ROS架构CBA2.5.1 话题,12,03,3 ROS基础,033 ROS基础,13,3 ROS基础,A,E,D,F,B,C,3.2 创建工作空间和功能包,3.3 工作空间的覆盖,3.5 RoboWare简介,3.4 搭建Eclipse开发环境,3.6 话题中的Publisher与Subscriber,3.1 第一个ROS例程小乌龟仿真,3 ROS基础AEDFBC3.2 创建工作空间和功能包3.3,14,3 ROS基础,3.7 服务中的Server和Client,3.8 ROS中的命名空间,3.9 分布式多机通信,3.10 本章小结,D,C,A,B,3 ROS基础3.7 服务中的Server和Client3.,15,3 ROS基础,3.1 第一个ROS例程小乌龟仿真,A,3.1.1 turtlesim功能包,3.1.2 控制乌龟运动,B,3 ROS基础3.1 第一个ROS例程小乌龟仿真A3.1,16,3.2 创建工作空间和功能包,3 ROS基础,C,B,A,3.2.1 什么是工作空间,3.2.2 创建工作空间,3.2.3 创建功能包,3.2 创建工作空间和功能包3 ROS基础CBA3.2.1,17,3 ROS基础,3.3 工作空间的覆盖,3.3.1 ROS中工作空间的覆盖,3.3.2 工作空间覆盖示例,3 ROS基础3.3 工作空间的覆盖3.3.1 ROS中工作,18,3.4 搭建Eclipse开发环境,3 ROS基础,3.4.2 创建Eclipse工程文件,3.4.4 设置头文件路径,3.4.1 安装Eclipse,3.4.3 将工程导入Eclipse,3.4.5 运行/调试程序,3.4 搭建Eclipse开发环境3 ROS基础3.4.2,19,3 ROS基础,3.5 RoboWare简介,A,3.5.1 RoboWare的特点,3.5.2 RoboWare的安装与使用,B,3 ROS基础3.5 RoboWare简介A3.5.1 Ro,20,3 ROS基础,3.6 话题中的Publisher与Subscriber,3.6.1 乌龟例程中的Publisher与Subscriber,3.6.3 如何创建Subscriber,3.6.5 运行Publisher与Subscriber,3.6.2 如何创建Publisher,3.6.4 编译功能包,3.6.6 自定义话题消息,3 ROS基础3.6 话题中的Publisher与Subsc,21,3.7 服务中的Server和Client,3 ROS基础,3.7.1 乌龟例程中的服务,3.7.2 如何自定义服务数据,3.7.3 如何创建Server,3.7.6 运行Server和Client,3.7.5 编译功能包,3.7.4 如何创建Client,3.7 服务中的Server和Client3 ROS基础3.,22,LOGO,3 ROS基础,3.8 ROS中的命名空间,3.8.1 有效的命名,3.8.2 命名解析,3.8.3 命名重映射,LOGO3 ROS基础3,23,3 ROS基础,3.9 分布式多机通信,C,B,A,3.9.1 设置IP地址,3.9.2 设置ROS_MASTER_URI,3.9.3 多机通信测试,3 ROS基础3.9 分布式多机通信CBA3.9.1 设置I,24,04,4 ROS中的常用组件,044 ROS中的常用组件,25,4 ROS中的常用组件,4.1 launch启动文件,4.2 TF坐标变换,4.3 Qt工具箱,4.6 rosbag数据记录与回放,4.5 Gazebo仿真环境,4.4 rviz三维可视化平台,4 ROS中的常用组件4.1 launch启动文件4.2 T,26,4.7 本章小结,4 ROS中的常用组件,4.7 本章小结4 ROS中的常用组件,27,4 ROS中的常用组件,4.1 launch启动文件,4.1.1 基本元素,4.1.2 参数设置,4.1.4 嵌套复用,4.1.3 重映射机制,4 ROS中的常用组件4.1 launch启动文件4.1.1,28,4.2 TF坐标变换,4 ROS中的常用组件,4.2.1 TF功能包,4.2.2 TF工具,4.2.3 乌龟例程中的TF,4.2.6 实现乌龟跟随运动,4.2.5 创建TF监听器,4.2.4 创建TF广播器,4.2 TF坐标变换4 ROS中的常用组件4.2.1 TF功,29,4 ROS中的常用组件,4.3 Qt工具箱,4.3.1 日志输出工具(rqt_console),4.3.2 计算图可视化工具(rqt_graph),4.3.3 数据绘图工具(rqt_plot),4.3.4 参数动态配置工具(rqt_reconfigure),4 ROS中的常用组件4.3 Qt工具箱4.3.1 日志输出,30,4 ROS中的常用组件,4.4 rviz三维可视化平台,4.4.1 安装并运行rviz,01,4.4.3 插件扩展机制,03,4.4.2 数据可视化,02,4 ROS中的常用组件4.4 rviz三维可视化平台4.4.,31,4 ROS中的常用组件,4.5 Gazebo仿真环境,C,B,A,4.5.1 Gazebo的特点,4.5.2 安装并运行Gazebo,4.5.3 构建仿真环境,4 ROS中的常用组件4.5 Gazebo仿真环境CBA4.,32,4 ROS中的常用组件,4.6 rosbag数据记录与回放,4.6.1 记录数据,4.6.2 回放数据,4 ROS中的常用组件4.6 rosbag数据记录与回放4.,33,05,5 机器人平台搭建,055 机器人平台搭建,34,5 机器人平台搭建,A,E,D,F,B,C,5.2 机器人的组成,5.3 机器人系统搭建,5.5 为机器人装配摄像头,5.4 基于Raspberry Pi的控制系统实现,5.6 为机器人装配Kinect,5.1 机器人的定义,5 机器人平台搭建AEDFBC5.2 机器人的组成5.3 机,35,5 机器人平台搭建,5.7 为机器人装配激光雷达,5.8 本章小结,5 机器人平台搭建5.7 为机器人装配激光雷达5.8 本章小,36,5 机器人平台搭建,5.2 机器人的组成,5.2.1 执行机构,5.2.2 驱动系统,5.2.4 控制系统,5.2.3 传感系统,5 机器人平台搭建5.2 机器人的组成5.2.1 执行机构5,37,5 机器人平台搭建,5.3 机器人系统搭建,5.3.1 MRobot,5.3.2 执行机构的实现,5.3.3 驱动系统的实现,5.3.4 内部传感系统的实现,5 机器人平台搭建5.3 机器人系统搭建5.3.1 MRob,38,5 机器人平台搭建,5.4 基于Raspberry Pi的控制系统实现,5.4.2 安装Ubuntu 16.04,02,5.4.4 控制系统与MRobot通信,04,5.4.1 硬件平台Raspberry Pi,01,5.4.3 安装ROS,03,5.4.5 PC端控制MRobot,05,5 机器人平台搭建5.4 基于Raspberry Pi的控制,39,5.5 为机器人装配摄像头,5 机器人平台搭建,5.5.2 PC端驱动摄像头,5.5.1 usb_cam功能包,5.5.3 Raspberry Pi驱动摄像头,5.5 为机器人装配摄像头5 机器人平台搭建5.5.2 PC,40,5.6 为机器人装配Kinect,5 机器人平台搭建,5.6.2 PC端驱动Kinect,5.6.4 Kinect电源改造,5.6.1 freenect_camera功能包,5.6.3 Raspberry Pi驱动Kinect,5.6 为机器人装配Kinect5 机器人平台搭建5.6.2,41,5.7 为机器人装配激光雷达,5 机器人平台搭建,5.7.2 PC端驱动rplidar,5.7.1 rplidar功能包,5.7.3 Raspberry Pi驱动rplidar,5.7 为机器人装配激光雷达5 机器人平台搭建5.7.2 P,42,06,6 机器人建模与仿真,066 机器人建模与仿真,43,6 机器人建模与仿真,A,E,D,F,B,C,6.2 创建机器人URDF模型,6.3 改进URDF模型,6.5 基于ArbotiX和rviz的仿真器,6.4 添加传感器模型,6.6 ros_control,6.1 统一机器人描述格式URDF,6 机器人建模与仿真AEDFBC6.2 创建机器人URDF模,44,6 机器人建模与仿真,6.7 Gazebo仿真,6.8 本章小结,6 机器人建模与仿真6.7 Gazebo仿真6.8 本章小结,45,6 机器人建模与仿真,6.1 统一机器人描述格式URDF,6.1.1 标签,6.1.2 标签,6.1.3 标签,6.1.4 标签,6 机器人建模与仿真6.1 统一机器人描述格式URDF6,46,6.2 创建机器人URDF模型,6 机器人建模与仿真,6.2.1 创建机器人描述功能包,6.2.2 创建URDF模型,6.2.3 URDF模型解析,6.2.4 在rviz中显示模型,D,C,A,B,6.2 创建机器人URDF模型6 机器人建模与仿真6.2.1,47,6 机器人建模与仿真,6.3 改进URDF模型,6.3.1 添加物理和碰撞属性,6.3.2 使用xacro优化URDF,6.3.3 xacro文件引用,6.3.4 显示优化后的模型,6 机器人建模与仿真6.3 改进URDF模型6.3.1 添加,48,6 机器人建模与仿真,6.4 添加传感器模型,6.4.2 添加Kinect,1,3,2,6.4.1 添加摄像头,6.4.3 添加激光雷达,6 机器人建模与仿真6.4 添加传感器模型6.4.2 添加K,49,6 机器人建模与仿真,6.5 基于ArbotiX和rviz的仿真器,C,B,A,6.5.1 安装ArbotiX,6.5.2 配置ArbotiX控制器,6.5.3 运行仿真环境,6 机器人建模与仿真6.5 基于ArbotiX和rviz的仿,50,6.6 ros_control,6 机器人建模与仿真,6.6.1 ros_control框架,6.6.2 控制器,6.6.3 硬件接口,6.6.6 控制器管理器,6.6.5 关节约束,6.6.4 传动系统,6.6 ros_control6 机器人建模与仿真6.6.1,51,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属性,6.7 Gazebo仿真6 机器人建模与仿真6.7.6 激光,52,07,7 机器视觉,077 机器视觉,53,7 机器视觉,7.1 ROS中的图像数据,7.2 摄像头标定,7.3 OpenCV库,7.6 二维码识别,7.5 物体跟踪,7.4 人脸识别,7 机器视觉7.1 ROS中的图像数据7.2 摄像头标定7.,54,7 机器视觉,7.7 物体识别,7.8 本章小结,7 机器视觉7.7 物体识别7.8 本章小结,55,7 机器视觉,7.1 ROS中的图像数据,01,7.1.1 二维图像数据,02,7.1.2 三维点云数据,7 机器视觉7.1 ROS中的图像数据017.1.1 二维图,56,7 机器视觉,7.2 摄像头标定,7.2.1 camera_calibration功能包,01,7.2.2 启动标定程序,02,7.2.3 标定摄像头,03,7.2.4 标定Kinect,04,7.2.5 加载标定参数的配置文件,05,7 机器视觉7.2 摄像头标定7.2.1 camera_ca,57,LOGO,7 机器视觉,7.3 OpenCV库,7.3.1 安装OpenCV,7.3.2 在ROS中使用OpenCV,LOGO7 机器视觉7.,58,7 机器视觉,7.4 人脸识别,7.4.1 应用效果,1,7.4.2 源码实现,2,7 机器视觉7.4 人脸识别7.4.1 应用效果17.4.2,59,7 机器视觉,7.5 物体跟踪,7.5.1 应用效果,1,7.5.2 源码实现,2,7 机器视觉7.5 物体跟踪7.5.1 应用效果17.5.2,60,7.6 二维码识别,7 机器视觉,7.6.1 ar_track_alvar功能包,7.6.2 创建二维码,7.6.3 摄像头识别二维码,7.6.4 Kinect识别二维码,7.6 二维码识别7 机器视觉7.6.1 ar_track_,61,7 机器视觉,7.7 物体识别,7.7.1 ORK功能包,1,7.7.3 模型训练,3,7.7.2 建立物体模型库,2,7.7.4 三维物体识别,4,7 机器视觉7.7 物体识别7.7.1 ORK功能包17.7,62,08,8 机器语音,088 机器语音,63,8 机器语音,01,03,8.1 让机器人听懂你说的话,8.2 通过语音控制机器人,8.3 让机器人说话,02,04,05,06,8.4 人工智能标记语言,8.5 与机器人对话,8.6 让机器人听懂中文,8 机器语音01038.1 让机器人听懂你说的话8.2 通过,64,8.7 本章小结,8 机器语音,8.7 本章小结8 机器语音,65,8.1 让机器人听懂你说的话,8 机器语音,8.1.1 pocketsphinx功能包,8.1.2 语音识别测试,8.1.3 创建语音库,8.1.6 中文语音识别,8.1.5 语音指令识别,8.1.4 创建launch文件,8.1 让机器人听懂你说的话8 机器语音8.1.1 pock,66,8 机器语音,8.2 通过语音控制机器人,A,8.2.1 编写语音控制节点,8.2.2 语音控制小乌龟运动,B,8 机器语音8.2 通过语音控制机器人A8.2.1 编写语音,67,8 机器语音,8.3 让机器人说话,8.3.2 语音播放测试,8.3.1 sound_play功能包,8 机器语音8.3 让机器人说话8.3.2 语音播放测试8.,68,8 机器语音,8.4 人工智能标记语言,8.4.1 AIML中的标签,8.4.2 Python中的AIML解析器,8 机器语音8.4 人工智能标记语言8.4.1 AIML中的,69,8 机器语音,8.5 与机器人对话,8.5.1 语音识别,01,8.5.2 智能匹配应答,02,8.5.3 文本转语音,03,8.5.4 智能对话,04,8 机器语音8.5 与机器人对话8.5.1 语音识别018.,70,8.6 让机器人听懂中文,8 机器语音,D,C,B,A,8.6.1 下载科大讯飞SDK,8.6.2 测试SDK,8.6.3 语音听写,8.6.4 语音合成,E,8.6.5 智能语音助手,8.6 让机器人听懂中文8 机器语音DCBA8.6.1 下载,71,09,9 机器人SLAM与自主导航,099 机器人SLAM与自主导航,72,9 机器人SLAM与自主导航,D,C,B,A,9.1 理论基础,9.2 准备工作,9.3 gmapping,9.4 hector-slam,E,9.5 cartographer,F,9.6 rgbdslam,9 机器人SLAM与自主导航DCBA9.1 理论基础9.2,73,9 机器人SLAM与自主导航,9.12 自主探索SLAM,9.11 真实机器人导航,9.10 在Gazebo中仿真机器人导航,9.9 在rviz中仿真机器人导航,9.8 导航功能包,9.7 ORB_SLAM,9 机器人SLAM与自主导航9.12 自主探索SLAM9.1,74,9.13 本章小结,9 机器人SLAM与自主导航,9.13 本章小结9 机器人SLAM与自主导航,75,9 机器人SLAM与自主导航,9.2 准备工作,9.2.2 仿真平台,1,3,2,9.2.1 传感器信息,9.2.3 真实机器人,9 机器人SLAM与自主导航9.2 准备工作9.2.2 仿真,76,9.3 gmapping,9 机器人SLAM与自主导航,9.3.2 gmapping节点的配置与运行,9.3.4 真实机器人SLAM,9.3.1 gmapping功能包,9.3.3 在Gazebo中仿真SLAM,9.3 gmapping9 机器人SLAM与自主导航9.3.,77,9.4 hector-slam,9 机器人SLAM与自主导航,9.4.2 hector_mapping节点的配置与运行,9.4.4 真实机器人SLAM,9.4.1 hector-slam功能包,9.4.3 在Gazebo中仿真SLAM,9.4 hector-slam9 机器人SLAM与自主导航9,78,9.5 cartographer,9 机器人SLAM与自主导航,9.5.2 官方demo测试,9.5.4 在Gazebo中仿真SLAM,9.5.1 cartographer功能包,9.5.3 cartographer节点的配置与运行,9.5.5 真实机器人SLAM,9.5 cartographer9 机器人SLAM与自主导航,79,9.6 rgbdslam,9 机器人SLAM与自主导航,9.6.2 使用数据包实现SLAM,9.6.1 rgbdslam功能包,9.6.3 使用Kinect实现SLAM,9.6 rgbdslam9 机器人SLAM与自主导航9.6.,80,9 机器人SLAM与自主导航,9.7 ORB_SLAM,C,B,A,9.7.1 ORB_SLAM功能包,9.7.2 使用数据包实现单目SLAM,9.7.3 使用摄像头实现单目SLAM,9 机器人SLAM与自主导航9.7 ORB_SLAMCBA9,81,9.8 导航功能包,9 机器人SLAM与自主导航,D,C,B,A,9.8.1 导航框架,9.8.2 move_base功能包,9.8.3 amcl功能包,9.8.4 代价地图的配置,E,9.8.5 本地规划器配置,9.8 导航功能包9 机器人SLAM与自主导航DCBA9.8,82,LOGO,9 机器人SLAM与自主导航,9.9 在rviz中仿真机器人导航,9.9.1 创建launch文件,01,9.9.2 开始导航,02,9.9.3 自动导航,03,LOGO9 机器人SLA,83,9 机器人SLAM与自主导航,9.10 在Gazebo中仿真机器人导航,9.10.1 创建launch文件,9.10.2 运行效果,9.10.3 实时避障,9 机器人SLAM与自主导航9.10 在Gazebo中仿真机,84,9 机器人SLAM与自主导航,9.11 真实机器人导航,9.11.1 创建launch文件,9.11.2 开始导航,9 机器人SLAM与自主导航9.11 真实机器人导航9.11,85,9.12 自主探索SLAM,9 机器人SLAM与自主导航,9.12.2 通过rviz设置探索目标,9.12.1 创建launch文件,9.12.3 实现自主探索SLAM,9.12 自主探索SLAM9 机器人SLAM与自主导航9.1,86,10,10 MoveIt!机械臂控制,1010 MoveIt!机械臂控制,87,10 MoveIt!机械臂控制,10.2 如何使用MoveIt!,10.4 使用Setup Assistant配置机械臂,10.6 配置文件,10.1 MoveIt!系统架构,10.3 创建机械臂模型,10.5 启动MoveIt!,10 MoveIt!机械臂控制10.2 如何使用MoveIt,88,10 MoveIt!机械臂控制,10.7 添加ArbotiX关节控制器,10.9 MoveIt!编程学习,10.11 Gazebo中的机械臂仿真,10.8 配置MoveIt!关节控制器,10.10 pick and place示例,10.12 使用MoveIt!控制Gazebo中的机械臂,10 MoveIt!机械臂控制10.7 添加ArbotiX关,89,10 MoveIt!机械臂控制,10.13 ROS-I,10.14 本章小结,10 MoveIt!机械臂控制10.13 ROS-I10.1,90,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.1 MoveIt!系统架构10 MoveIt!机械臂控,91,10 MoveIt!机械臂控制,10.3 创建机械臂模型,10.3.1 声明模型中的宏,10.3.2 创建六轴机械臂模型,10.3.3 加入Gazebo属性,10.3.4 显示机器人模型,10 MoveIt!机械臂控制10.3 创建机械臂模型10.,92,11,11 ROS与机器学习,1111 ROS与机器学习,93,11 ROS与机器学习,11 ROS与机器学习,94,12,12 ROS进阶功能,1212 ROS进阶功能,95,12 ROS进阶功能,12 ROS进阶功能,96,13,13 ROS机器人实例,1313 ROS机器人实例,97,13 ROS机器人实例,13 ROS机器人实例,98,14,14 ROS 2,1414 ROS 2,99,14 ROS 2,14 ROS 2,100,感谢聆听,感谢聆听,101,
展开阅读全文