2017ROS暑期学校笔记

ROS 同时被 2 个专栏收录
4 篇文章 0 订阅
8 篇文章 1 订阅

本系列文章为原创,转载请注明出处。
作者: Dongdong Bai
邮箱: baidongdong@nudt.edu

若您觉得本博文对您有帮助,请您为我点赞并关注我,以鼓励我写出更优秀的博文。谢谢!


2017年的ROS暑期学校华东师范大学研究生院和智能控制实验室主办,至今已经成功举办了两届。本次暑期学校在7月22号-7月29号在魔都上海举办(会议日程链接)。本次暑期学校吸引了来自高校、科研院所和产业界的众多知名人士,这让我感受到了机器人以后的发展潜力,强化了我继续在这个方面耕耘的决心和信心。
图片1

本次暑期学校主要包括报告和挑战赛两个部分。其中报告主要是两个方面的内容,第一是关于ROS在学术界和产业界的一些引用。第二是关于自主导航在学术界和产业界的实现的区别和联系等相关内容。通过报告不仅拓展了我的视野,提高了自己的学术和工程能力,还见到了我崇拜已久的几位大神,比如古月,张瑞雷,田博等。最最让我激动的是我还有幸跟古月和本次大会的主办人张新宇教授合影。下面我会在适当的地方秀出来,大家不要羡慕喔~

这要讲者介绍

除此之外我还在本次会议认识了一些志同道合的朋友,林志豪,冯家文,并与我们学校的周星同学和耿铭阳师弟组了一个名叫”闪闪星”的战队,虽然最后没有取得满意的成绩,但是几天的奋斗历程也使我哟哟颇多收获,我很幸运能有这段与大家共同奋斗的时光,同时也要感谢我的同学也是我们的队长周星,是他拉我们组队,让我们能够拥有这段难忘的时光。

先秀一下自己的照片~
图片6
图片4

2017.7.22报告:

一、陈士凯:机器人自助定位导航之路的探索

1.意外惊喜:

  • 机器人的自主导航与SLAM技术不是相等的,slam不解决行动问题。自主导航主要包括定位建图路径规划三个模块,也就是说SLAM+路径规划等于自主导航。
  • 技术商业化的80/20原则,就是说产品是20%的核心理论、核心算法和核心框架和80%的实际场景中的复杂问题、工程化问题和非技问题:商业、心理等组成
  • 机器人的应用场景可以分为两种:
    • 个人家用场景:要求上电即用,零配置,在工作中同步完成地图构建、对自主性要求更高
    • 商用专业场景:预先配置,方便扩展,使用前进行系统部署,提前完成地图构建和环境标注

二、佘元博:智能移动平台

1.基本的概念:

人工智能分为:强人工智能和弱人工智能两种,有自己意识的人工智能是强人工智能,而没有意识的是弱人工智能。人们现在研究的都是弱人工智能。因而不必担心机器人会伤害人类。

三、林天麟博士:ROS与星火计划

侯宇涛-GPU助力机器人图像识别与深度学习

1.意外惊喜:

caffe、tensorflow图形界面工具digits。
使用教程:
*使用教程1
*使用教程2
*使用教程3
*使用教程4
*使用教程5

2017.7.23报告:

一、田博报告:

1.基本的概念:

  1. 机器人底盘支持ROS是指:

    • 底盘能接收ROS发出的速度命令
    • 底盘可以将自己的运行状态消息(速度等信息)发送给ROS
  2. ROS是基于BSD协议的,BSD是最有利于商业化的协议,现阶段不建议将ROS整体直接用于商业产品,主要由ROS的通信安全性等问题的考虑。

  3. ROS的核心概念:
    • Nodes 节点
    • Messages and Topics 消息与话题,无回应
    • Services 服务(有回应,确保另一个Node能收到信息,并执行它)
    • ROS Master ROS管理器
    • Parameters 参数(动态调参)
    • Package 一个功能包
    • Metapackage 多个功能包组成的集合
    • rviz 机器人可视化工具
    • gazebo 机器人仿真环境
    • Ros log 调试是输出debug信息,出产品时输出error级别的信息就好

二、张志杰报告:

###1.意外惊喜:
ROS学习系列视频:ROS小课堂
ROS学习公众号:ROS小课堂

每个topic都对应一个消息队列,它不依赖于Ros的节点,也就是说如果有多个节点同时向一个topic发送消息,那么他们都是发送到同一个消息队列里的。

对于订阅某个消息的多个节点而言,他们每个节点都维护了一个消息队列,他们都从订阅的消息队列中获取消息,并拷贝到自己的消息队列中。

消息队列由于是队列,因而采用的先进先出的策略,且消息队列的大小是固定的

介绍三本书:

2017.7.24报告:

一、张瑞雷报告:

1.意外惊喜:

一个很好的在线实验平台:实验楼,它提供了包括ROS在内的很多在线实验,网址是:www.shiyanlou.com

2.基本的概念:

  1. 路径规划:如果将移动机器人看成质点,对其路径进行规划那么就是路径规划。

  2. 轨迹规划:各种机器人及其各个部件轨迹的规划,轨迹规划实际上包括路径规划,但是一般通常情况下特指对于一个工业机器人的机械臂完成某个任务时(比如:抓取某个物体)时机械臂的规划。

  3. 自主导航:机器人自主定位导航技术中包括定位地图创建路径规划(运动控制),而SLAM本身只是完成机器人的定位和地图构建两件事情,两者并不是完全等价的。

  4. 路径规划包括全局路径规划局部路径规划两种:全局路径规划就是根据给定的目标位置进行总体路径的规划。局部路径规划就是根据附近障碍物进行躲避路线的规划。

一般先会通过全局路径规划,规划出一条从机器人当前位置到目标位置的全局路线(作为机器人具体路径参考),局部路径规划根据机器人当时面临的情况来给出具体路径

机器人自主定位导航技术

3.主要内容:

  1. ROS中的TF包:主要用来做坐标变换等,目前有TF1和TF2,TF2功能较多,建议用TF2

    机器人系统一般都包含很多坐标系,如世界坐标系,机体坐标系,机械手坐标系,头坐标系等。tf是一个让使用者可以跟踪所有这些坐标系,它采用树型数据结构,根据时间缓冲并维护各个参考系的坐标变换关系,可以在任意时间完成2个参考系的坐标变换。

    常用操作:

    • 监听坐标变换
    • 广播坐标变换

    可以使用$ rosrun tf2_tools view_frames.py调用TF2的view_frames,它是一个图形调试工具,可以创建当前tf2变换的PDF图形。详见该ppt

  2. ROS中的Navigation元包:用来实现机器人自主导航的包,它包括TF包,是用来实现机器人自主导航的元包,包括很多与导航相关的包和算法,比如A*和Dijkstra等,具体的局部路径规划器和全局路径规划器的介绍参见ppt。

    • Navigation包中的amcl是一种基于自适应蒙特卡洛的定位包

二、古月报告:

先秀一下与古月大神的合影~
图片3

1.主要内容:

1.1 rviz的使用

rviz是一款三维可视化平台,可以通过添加插件来实现想要的可视化功能,可以很好的兼容ROS平台,在rviz界面可以通过图形界面的add按钮来添加要显示的内容。比如:

  • TF:显示机器人各部分的坐标系
  • RobotModel:显示机器人的模型
  • Odemetry:显示机器人的运动的轨迹

    在rviz中可以通过编写插件来实现想要可视化的功能,使用qt语言实现,ROS中的图像界面大部分都是用qt语言实现的

1.2 gazebo的使用

ROS中的仿真器有gazebo,stage,matlab,arbotix等,但是只有gazebo支持物理仿真。

目前gazebo有很多版本,目前最新版本是8.0,indigo支持的是2.2版本,但是最新版本除了图标外变化不大。

ROS不支持时间同步,多台机器人之间的同步得先使用linux的工具进行同步。

1.3 gazebo中模型的定义

  • Gazebo - 使用SDF(Simulation Description Format)仿真描述格式定义仿真环境和模型。

  • ROS - 使用URDF(Universal Robotic Description Format)通用机器人描述格式来定义机器人模型,且此格式定义的文件不能直接用于Gazebo,使用中需加以转换,添加用于描述仿真定义的标签。

  • URDF转SDF:

    • 必须步骤
    1.在每一个<link>内添加<inertia>标签(指出机器人的惯性属性)。
    2.向URDF文件中的joint添加<transmission>标签(指出机器人哪些关节可以驱动)
    3.向URDF文件中添加ros_control插件,并添加相应插件的controller配置文件
    • 可选步骤
    1.在每一个<link>内添加<gazebo>标签。将外观颜色转换成Gazebo格式;将stl文件转换成dae文件,获得更好的渲染效果;添加传感器插件。
    2.在每一个<joint>内添加<gazebo>标签。设置适当的阻尼动力系数;添加执行器控制插件
    3.在<robot>标签内添加<gazebo>

    详细说明和代码见ppt

三、王滨海:ROS集成开发环境RoboWare及其使用

Roboware是基于最新版本的vscode进行二次开发,每个月月底会发布一个新版本,提供了很多方便ROS本地和远程开发的东西,具体教程在官网上可以下载。报告的文件夹中也有。


2017.7.25报告:

一、邹丹平博士:视觉SLAM基础

1.主要内容:

1.1 SLAM大致可以分为激光SLAM视觉SLAM两类,但其主要思路大同小异。

激光SLAM分为:2D和3D激光SLAM两种

视觉SLAM也分为:Sparse、semiDense、Dense三种

1.2 视觉SLAM目前由两个分支:分别是基于滤波器的视觉SLAM和基于(关键帧)图优化方法的视觉SLAM,目前基于图优化的方法占主导地位:

  • 基于滤波器的SLAM:使用滤波器的方法,精度低,扩展性高
  • 基于图优化的SLAM:使用优化的方法,精度高,但是由于加一个传感器就要改变优化函数,可扩展性不强

3

1.3 相机的畸变模型:

  • model1:对于一般相机很精确,但是不支持鱼眼相机的校正

4

  • model2:对于一般的相机效果都不太好,是在PTAM中使用的模型

5

model3:适用于鱼眼相机的校正

6

1.4 去除视觉里程计中图像之间的误匹配的点的方法:RANSAC和M-estimator
* RANSAC:可以在80%outlier情况下取得很好的效果,适合outlier较多和较少的情况,但是计算量较大。
* M-etimator:适合与outlier不多的情况,计算量较小。

1.5 key frame的选择方法:
* 距离上一关键帧有足够的距离
* 当前图像的清晰度高
* 当前帧与上一关键帧有一定数量的特征点重合

7

1.6 常用Bundle Adjustment(光束平差法)库

ORB—SLAM中的Bundle Adjustment中的库是g2o,但是sba,mcba的性能比g2o好。

  • sba: A Generic Sparse Bundle Adjustment C/C++

  • mcba: Multi-Core Bundle Adjustment (CPU/GPU). GPL3.

  • g2o: General Graph Optimization (C++) - framework with solvers for sparse graph-based non-linear error functions. LGPL.

  • Apero/MicMac, a free open source photogrammetric
    software. Cecill-B licence.

  • Package Based on the Levenberg–Marquardt Algorithm (C, MATLAB). GPL.

  • cvsba: An OpenCV wrapper for sba library (C++). GPL.

  • ssba: Simple Sparse Bundle Adjustment package based on the Levenberg–Marquardt Algorithm (C++). LGPL.

  • opencv: Computer Vision library in the contrib module. BSD license.

  • libdogleg: General-purpose sparse non-linear least squares solver, based on Powell’s dogleg method. LGPL.

  • ceres-solver: A Nonlinear Least Squares Minimizer. BSD license.

  • DGAP: The program DGAP implement the photogrammetric method of bundle adjustment invented by Helmut Schmid and Duane Brown. GPL.

1.7 CoSLAM: Collaborative visual slam in dynamic environments(多机器人slam)
具体介绍和源码见ppt

2017.7.28报告:

一、马庆华:上海一坤

1.意外惊喜:

1.1 ROS中的多机协同框架:

  • ROS1.0中:

rocon_multimaster:基于多master通信机制

multimaster_fkie:基于发现机制,效果比上一个好
  • ROS 2.0是原生支持多机协同框架

好了暑期学校的笔记主要就是这些。下面是这次暑期学校的合影!
图片2
最后要感谢张新宇教授的无私奉献,因为他才有了我们的暑期学校(晒一下我和张教授的合影,中间的那位是张教授,左边的是我的同学周星)。同时还要感谢我的导师杨学军院士,易晓东研究员和张博博士给予我参加本次暑期学校行程经费上的支持。

下面是ROS暑期学校的ppt和我在师门汇报会的ppt,需要的请自取,谢谢!链接为:https://www.jianguoyun.com/p/DUciIQcQs6aWBhiph2c


本系列文章为原创,转载请注明出处。
作者: Dongdong Bai
邮箱: baidongdong@nudt.edu

若您觉得本博文对您有帮助,请您为我点赞并关注我,以鼓励我写出更优秀的博文。谢谢!

  • 7
    点赞
  • 7
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值