当前位置: 首页 > news >正文

昇腾AI室外移动机器人学习指南(1 前言)

1 前言

1.1 为什么写本书

为机器人初学者和从业人员提供学习参考。近年来随着科技的不断发展,物流配送、室外清扫、智慧农业、室外巡检等低速自动驾驶机器人出现在了我们生活生产的各个方面,极大地提高了生产力。同时市场和资本也都看好机器人未来的发展,出现了很多机器人创业公司与独角兽,一些大公司在机器人方向上也进行战略布局,机器人与人工智能方向的人才缺口较大。机器人是一种能够自主或半自主工作的智能机器,具有感知、决策、执行等基本特征,可以辅助人类完成危险、重复、繁重的工作。室外自主移动机器人是一种结合机械、电子、传感、计算、人工智能、定位、认知、规划、控制等多学科领域的复杂系统工程。对于很多初学者而言,通过本书可以对机器人系统有一个顶层设计的认知,理解里面各个模块之间的相互关系,然后再带着目标深入某个模块进行研究,动手开发自己的算法进行验证。
推进国产化机器人与人工智能生态建设。人工智能与机器人是国家重点发展的战略,在贸易战摩擦的大背景下,中美相互之间的竞争开始触及越来越多的层面,要想在这场竞争中掌握优势,需要从芯片、硬件、基础软件、算法和生态进行国产替代化,掌握自主技术。在当今国产化的浪潮下,各大企业都会考虑自主可控的替代方案,希望能够有一款国产的SOC计算平台+国产化的器件来搭建整机系统。21世纪以来,AI、半导体、机器人、自动驾驶、5G、大数据、云计算与边缘计算等这些新兴技术成为科技的制高点,国家加大了对这些行业的投资建设,华为深耕计算产业,推出了鲲鹏通用计算和昇腾AI计算,服务千行百业,其中机器人是昇腾在边缘计算领域的一个重点应用场景。造“中国芯”,用“中国芯”,所以本书会重点介绍华为昇腾310系列芯片及其人工智能软件技术栈,并和Nvidia Jetson系列的嵌入式AI计算模组与软件生态进行对比。未来国产大算力机器人芯片会有很大的市场空间,后面会有更多的企业与开发者参与进来开发机器人产品,本书的初衷是帮助初学者以及开发者更好地理解机器人的系统设计开发,AI开发流程以及软件模型迁移,了解深度学习技术,NPU与GPU的技术路线异同。

1.2 本书讲什么

本书的主题是室外自主移动机器人,所以会围绕室外机器人的移动能力进行研究,主要包括传感器与执行器、计算、感知、定位、决策、规划、控制、建图等子模块。
第二章会介绍移动机器人的软硬件系统组成,对不同类型和场景的机器人系统设计有一个初步认识。移动机器人需要具备基本的移动能力,首先需要有能够感知外界环境的传感器以及对应的运动执行机构。
第三章会围绕激光雷达、相机、IMU等常见传感器的原理、数据格式、使用场景展开分析,并讨论多传感器的布局与时空标定方法。执行机构常见的有轮式底盘(两轮、阿克曼轮、舵轮、麦克纳姆轮)、足式(双足、四足)、轮足等,该部分和规控强相关,因此在后续规控相关的章节介绍。
相对于室内工业搬运、服务配送等场景的机器人,室外场景通常会更复杂,需要具有AI感知能力。第四章围绕昇腾NPU与英伟达GPU进行对比介绍,学习2D/3D目标检测,道路感知等AI感知任务,基于NPU实现AI模型推理加速。
第五章介绍室外机器人的定位方案,主要是基于已有地图的定位。包括基于基于GNSS+IMU的组合导航、基于激光的ICP与NDT定位、基于视觉的特征匹配定位、多传感器融合定位等。
第六章介绍多源信息融合感知,包括基于3D点云的STVL体素感知,高程图感知,基于高精度地图的融合定位感知,代价地图融合策略。
第七章介绍机器人的决策模块,包括状态机与行为树的方案以及强化学习方案两种。
第八章介绍机器人的全局路径规划与局部轨迹规划。实现机器人的全局最优路径生成,局部轨迹规划基于全局路径生成一条无碰撞的实时轨迹。
第九章介绍机器人的控制。针对轮式机器人的运动学模型实现机器人局部轨迹的跟踪。
第十章介绍机器人的建图方案,机器人建图多采用SLAM实现,在没有先验信息的情况下,于运动过程中建立环境模型并估计自身运动。通常有视觉SLAM、激光SLAM、多传感器融合SLAM等方案,使用建好的点云特征地图可以用于后续的机器人定位。同时地图中的一些语义信息还可以进行自动识别或添加人工标注,按照一定的协议做成语义地图,用于后续感知的先验信息。用于全局路径规划和轨迹规划的地图则通常为2D栅格地图。
第十一章介绍云侧与机器人端侧的交互协同,包括云上的地图构建与AI模型训练,云端之间的低时延通信,机器人远程遥操作等。
第十二章是对未来低速无人驾驶机器人系统发展的展望。

1.3 面向的读者

本书面向机器人类、计算机类、自动化类、机械与电子信息类专业的高校师生、企业工程师以及机器人与人工智能爱好学习者。

1.4 基础知识与开发环境准备

阅读本书需要具备一定的数学基础与计算机基础,这些在本科阶段都会有所涉及。
数学基础:线性代数(向量、矩阵),高等数学(求导、积分、微分),概率论(概率密度函数、协方差)等知识。
Linux的使用:机器人的开发都是在Linux环境下完成的,可以安装一个Ubuntu20.04,熟悉基本的命令行使用。
ROS2的使用:本书的环境和案例基于ROS2进行开发。
C++编程语言:机器人的定位导航算法主要开发语言为C++,需要读者对这门语言有一个初步了解。熟悉模板、STL、面向对象、多线程等知识点。
计算机基本知识:熟悉计算机体系结构、操作系统等基本常识。在计算硬件部分会介绍相关的知识。
昇腾Ascend开发者套件:有条件的同学可以购买一个昇腾开发者套件,在上面进行算法的开发,AI模型的部署。

1.5 致谢与声明

本书写作过程中参考了大量文献和论文,里面的算法设计和数理知识都是基于前人的研究成果进行总结,一些图片和公式摘自公开发表的期刊和论文并进行了引用说明。由于本人能力有限,所以会有一些错误在所难免,欢迎联系我进行修改。

相关文章:

  • Java数据结构堆
  • Uniapp 报错Uncaught URIError: URI malformed
  • SIT3232E:高静电防护 3.3V 单电源供电双通道 RS232 收发器
  • 《QT实用小工具·四十》显示帧率的控件
  • 程序员副业项目快速验证最小MVP
  • 安卓Activity的setContentView()流程分析
  • Linux——进程控制
  • DOCKER逃逸
  • Spring Boot项目误将Integer类型写成int来进行传参
  • K8S部署Java项目(Gitlab CI/CD自动化部署终极版)
  • 【力扣白嫖日记】178.分数排名
  • 十一、计算机视觉-膨胀操作
  • 【100个 Unity实用技能】| Unity中 检查当前设备网络状态 的几种方法整理
  • Db2数据库计算年龄
  • C++继承时常见问题
  • 【带你了解C语言预处理指令】
  • SLAM本质剖析-Boost之Geometry函数大全(一)
  • 4、MySQL数据管理
  • 谈谈测试员的地位:此刻,我想为所有从事测试职业的人发声…
  • DBCO-PEG12-Maleimide,DBCO-PEG12-Mal具有DBCO和Maleimide巯基反应试剂
  • 在Spring Boot项目中使用统一返回结果
  • 249 - 数据流
  • 程序员日均写7行代码被开除,这个行业真的还是普通人的最优选吗
  • NVIDIA VPI架构解析
  • 在字节跳动干了3年测试开发,30岁即将退休的我,告诉你软件测试的真实就业前景
  • 【计算机毕业设计】Java 基于微信小程序的高校游泳馆管理系统
  • JVM的组成
  • pyqt5的安装
  • springmvc参数解析
  • 开荒手册2——小论文篇
  • PreScan快速入门到精通第三十六讲PreScan中使用车道线传感器
  • 什么是关系选择器