机器人入门路线及参考资料(机器人操作方向)

news/2024/10/5 8:06:02/

机器人入门路线及参考资料(机器人操作方向)

  • 前言
  • 1 数理基础和编程
  • 2 机器人学理论
  • 3 计算机视觉
  • 4 机器人实操
  • 5 专攻方向
  • 总结
  • Reference:


前言

随着机器人和具身智能时代的到来,机器人越来越受到大家的重视,本文就介绍了机器人机器人操作方向)的入门路线及重要参考资料,包括数理和编程基础,机器人操作,计算机视觉,机器人实操以及具体的方向突破。


1 数理基础和编程

首先需要具备的就是一定的数理基础和计算机编程能力,这两项也是工科生最先接触的知识。

数理基础包括高数,线代,概率论等。可能很多学生包括博主在内在学习这些数学课程时,并不知道这些数学知识到底和专业之间是什么关系。为了引起大家对数理基础的重视,这里简单举例说明数理知识的重要性。比如力学分析(理力,材力,流力)会用到高数,控制理论会用到高数和线代,计算机视觉会涉及矩阵和概率论,而机器人学则会涉及到以上所有技术。

在学习以上数学知识的同时,可以练习数理推导软件如Matlab,Mathematica等辅助计算,这些软件也可用于机器人的计算和仿真。

计算机编程的底层逻辑想通,按照大学培养方案,最先接触的语言是C语言,重点培养编程的逻辑和程序设计方法。在机器人工程中,用到较多的语言是C++和Python两种语言,一种语言学会之后,再学其他语言速度就会很快。

2 机器人学理论

对于机器人理论部分,首先需要具备机器人学的基础知识,如位姿表示与变换,欧拉角和RPY角,机器人的正逆运动学等。可参考的书籍为熊有伦的《机器人技术基础》。

掌握这些基本概念之后,可以针对专题进行深入研读,如规划or控制,操作or移动,工业机器人or服务机器人,不同专题涉及到的技术侧重点不同。

本文主要针对机器人操作方向,所以重点介绍一下机器人操作方向。该方向主要是研究机器人基于视觉或触觉利用末端执行器(刚性或柔性,仿人手或二指夹爪)与被操作对象进行交互(如抓取,放置,推,重定向等)的科学。
拾起盘子

人手操作(拾起)盘子的案例 [1]。

从力学角度分类可分为运动学操作,静态操作,准静态操作和动态操作,具体概念可以参考卡内基梅隆大学Mason的原著中译本书籍《机器人操作中的力学原理》。从被操作对象角度可分为刚性物体操作和柔性物体的操作,由于刚性物体操作的力锁合和形锁合假设不再适用于柔性物体的操作,所以柔性物体的操作也是当下的研究热点。

此处,也给出MIT的机器人操作课程的官方链接:Robotic Manipulation - Perception, Planning, and Control,供需要的小伙伴自学。

3 计算机视觉

计算机视觉于机器人而言就是机器人的眼睛,可用于机器人的抓取与操作,导航,人机交互等任务中。在机器人操作方面,计算机视觉主要用来识别物体的位姿和状态估计,抓取点检测等。

经典的计算机视觉任务包括图像预处理,图像的分割,图像的特征表述等。这些基本的概念需要了解,可以参考张岩等翻译的中译本书籍《计算机视觉基础》。然后在OpenCV上进行实践,OpenCV提供了丰富的C++和Python语言的API接口,可以直接调用,相关的书籍《学习OpenCV3》和其官方教程https://docs.opencv.org/4.x/d9/df8/tutorial_root.html。

接下来就是学习基于深度学习的计算机视觉,常用的套路如下 [2]:

1 学习吴恩达的《机器学习》和《深度学习》课程,了解一些机器学习的知识。
2 了解一些经典的CV模型,如Alexnet、R-CNN系列、YOLO等。
3 在github上找一些tensorflow、pytorch实现上述模型的开源代码。
4 下载VOC、ImageNet、COCO、kaggle等数据集。
5 按照开源代码中的Readme准备数据集,跑一下结果。

传统视觉和基于深度学习的视觉各有优缺点 [3, 4],在实际项目中,大多数情况下需要结合使用。

4 机器人实操

在了解以上基本概念之后,就可以上手真实机器人实践了,这里以基于ROS的机器人抓取系统为例,阐述需要掌握知识和要解决的问题。

首先,ROS(机器人操作系统)的一些基本概念要清楚,如节点,话题,功能包等基本概念,以及如何创建发布者和订阅者以及定义要发布的消息等,这些是机器人操作系统的基本通信的机制。

其次,学会使用ROS中的常用组件,如launch,rqt,rviz,rosbag等常用组件,这些组件是机器人调试时非常方便的工具。

最后,就是针对机器人类型进行建模和仿真,对于机械臂来说,ROS中已经集成了用于机械臂操作的开发平台——MoveIt,我们可以直接使用MoveIt来控制我们的机械臂。

ROS的参考资料可以参考古月居(胡春旭)的视频课程ROS入门21讲和书籍《ROS机器人开发实践》。

在掌握了ROS之后,就是在此基础上进行开发了,包括手眼标定,夹爪通信,机械臂规划等。下图所示为京东2017 JRC X机器人挑战赛上其中一个参赛队伍的机器人系统 [5],一个基于ROS开发的机器人移动操作系统。
京东<a class=机器人挑战赛" width="800" />

5 专攻方向

当具备基础知识和实操能力之后,就需要根据具体的专攻方向学习最新的论文,开展工程或者研究工作。如3D感知与操作,类人操作,移动操作,人机交互,柔性物体的操作等。

一般情况下,较新的方向是没有书籍的,可以先从综述开始,然后是方向密切相关文献的精读。关注专攻方向最新动态,如顶会的Workshop等,还有跟踪领域内的牛人的发文。

2024年是具身智能到来的时代,当然,具身智能也可以和机器人操作相结合,即将大模型或者Learning应用于机器人操作任务中去,具身智能的入门路线参考具身智能入门学习技术路线。

最后推荐一下机器人操作方向上的媒体号:
关于机器人操作方向,推荐公众号:机器人操作前沿动态,每周更新全球最新学术进展。
关于柔性物体的操作,推荐博客:机器人的柔性物体操作综述汇总(持续更新),汇总了近几年的柔物操作的综述文章。


总结

以上就是今天要讲的内容,本文介绍了机器人操作方向的入门路线,从数理基础和编程,到机器人学理论和计算机视觉,再到机器人的实操和方向突破,阐述了机器人操作方向所需要的知识体系并给出重要参考资料。当然,入门时,不一定要按照顺序学习,边学边应用效果更佳。

Reference:

[1] MIT机器人操作课程:Robotic Manipulation - Perception, Planning, and Control
[2] 知乎文章:计算机视觉学习路线
[3] CSDN博客:论文笔记:传统CV和深度学习方法的比较
[4] O’Mahony N, Campbell S, Carvalho A, et al. Deep learning vs. traditional computer vision[C]//Advances in Computer Vision: Proceedings of the 2019 Computer Vision Conference (CVC), Volume 1 1. Springer International Publishing, 2020: 128-144.
[5] CSDN博客:ROS下实现机器人序列任务的执行控制


http://www.ppmy.cn/news/1473698.html

相关文章

解决Python爬虫开发中的数据输出问题:确保正确生成CSV文件

引言 在大数据时代&#xff0c;爬虫技术成为获取和分析网络数据的重要工具。然而&#xff0c;许多开发者在使用Python编写爬虫时&#xff0c;常常遇到数据输出问题&#xff0c;尤其是在生成CSV文件时出错。本文将详细介绍如何解决这些问题&#xff0c;并提供使用代理IP和多线程…

在原有的iconfont.css文件中加入新的字体图标

前言&#xff1a;在阿里图标库中&#xff0c;如果你没有这个字体图标的线上项目&#xff0c;那么你怎么在本地项目中的原始图标文件中添加新的图标呢&#xff1f; 背景&#xff1a;现有一个vue项目&#xff0c;下面是这个前端项目的字体图标文件。现在需要新开发功能页&#x…

Python实战,桌面小游戏,剪刀石头布

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python项目开发实战_桌面小游戏-剪刀石头布_编程案例解析实例详解课程教程.pdf 创建一个基于Python的桌面小游戏“剪刀石头布”是一个很好的编程实践…

竞赛选题 交通目标检测-行人车辆检测流量计数 - 竞赛选题

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

解决 MEX 文件 ‘xxx.mexw64‘ 无效: 找不到指定的模块。的问题

1.问题描述 在matlab R2021b中运行编译好后的gptoolbox工具箱中的函数[SVtemp,SFtemp,IF] selfintersect(V,F);报错如下 MEX 文件 E:\MATLAB_File\gptoolbox\mex\selfintersect.mexw64 无效: 找不到指定的模块。出错 offset_bunny (第 15 行) [SVtemp,SFtemp,IF] selfinter…

SpringBoot:集成机器学习模型进行预测和分析

引言 机器学习在现代应用程序中扮演着越来越重要的角色。通过集成机器学习模型&#xff0c;开发者可以实现智能预测和数据分析&#xff0c;从而提高应用程序的智能化水平。SpringBoot作为一个强大的框架&#xff0c;能够方便地集成机器学习模型&#xff0c;并提供灵活的部署和…

PyQt5中如何实现指示灯点亮和指示灯熄灭功能

一般上位机界面都会涉及指示灯点亮和指示灯熄灭功能&#xff0c;从网上下载该功能的上位机界面&#xff0c;学习如何使用PyQt5搭建具备指示灯点亮和指示灯熄灭效果的界面。 1. 上位机界面的效果展示 使用PyQt5实现以下界面&#xff0c;界面效果如下&#xff0c;界面图片是从网…

数字信号处理及MATLAB仿真(3)——采样与量化

今天写主要来编的程序就是咱们AD变换的两个步骤。一个是采样&#xff0c;还有一个是量化。大家可以先看看&#xff0c;这一过程当中的信号是如何变化的。信号的变换图如下。 先说说采样&#xff0c;采样是将连续时间信号转换为离散时间信号的过程。在采样过程中&#xff0c;连续…