自动驾驶---两轮自行车的自主导航

1 背景

        无人驾驶汽车最早出现在DARPA的比赛中,从那个时刻开始,逐渐引起全球学者的注意,于是从上个世纪开始各大高校院所开始了无人汽车的研发。直到这两年,无人驾驶汽车才开始走进寻常百姓家,虽然目前市面上的乘用车还不是严格意义的上无人驾驶(只能算作L2级别),做到L4才是真正的无人驾驶。反而无人驾驶自行车因为应用场景很少,出现的更晚一些,本篇博客主要带领读者朋友们熟悉无人自行车的相关知识。

2 无人自行车发展

        无人自行车其实也是一种融合了多种先进技术,能够在无人工直接干预的情况下自主行驶、完成各种动作和任务的自行车。在功能上和汽车并无区别,只不过在动力形式上以及底盘上区别比较大,另一个比较大的区别就是应用市场,无人自行车应用场景很少,但汽车作为载人,载物的交通工具应用场景广泛。

2.1 发展历史

        无人自行车的发展源于人们对自动驾驶技术的探索以及对传统自行车功能的拓展和创新。早期,谷歌等科技巨头曾提出相关概念,但当时的技术还无法实现真正意义上的无人自行车。

  • 2016年谷歌曾设想研发 “无人驾驶自行车”,让坐在上边的人能一边骑车一边办公,不过其发布的视频中的画面是后期剪辑和特效制作的,并未真正实现。
  • 2019年,清华大学类脑计算研究中心施路平教授团队研制成功面向人工通用智能的新型类脑计算芯片 “天机芯”,并成功在无人自行车上进行了实验,实现了包括视觉检测、目标追踪、自动过障和避障、自适应姿态控制、语音理解控制、自主决策等功能在内的跨模态类脑信息处理。
  • 2020年,“稚晖君” 耗时 4 个月制成了一辆硬核无人驾驶自行车,不仅能在静止状态站立住,即使在单侧加上一块砖头,仍能保持平衡,还可以自动行进,自动避开障碍物,根据地形自己规划出一条路线。
  • 2024年3月份,雅迪冠能6代Q50在AW24中国国际时装周T台上惊艳亮相,以大开眼界的无人驾驶科技成为全场焦点。

2.2 关键技术与工作原理

  • 传感器:配备多种传感器来感知周围环境和自身状态,如摄像头可识别道路、行人与车辆等物体;惯性测量单元用于测量自行车的倾斜角、加速度等参数,以辅助保持平衡。
  • 控制系统:以先进的芯片或控制器为核心,如清华大学无人自行车中的 “天机芯”,对传感器收集到的大量数据进行快速处理和分析,并根据预设的算法和规则做出决策,向致动器发出指令,实现对自行车的转向、加速、减速、刹车等控制,以完成各种动作和应对不同的路况。
  • 自主导航:通过常用的导航算法完成全局规划,匹配对应的局部规划算法接收传感器信息,定位信息进行避障,完成相应的任务。
  • 平衡控制:通过传感器实时监测自行车的倾斜状态,控制系统根据倾斜角度和速度等信息,精确控制致动器调整自行车的姿态,保持平衡。

2.3 不同类型及特点

  • 实验研究型:如清华大学的无人自行车,主要用于科研实验,搭载了复杂的传感器和先进的计算芯片,具备强大的环境感知和信息处理能力,可进行多种类脑信息处理实验,为人工智能和机器人技术的研究提供重要的数据和实践基础。
  • 创意概念型:像 of my imagination 工作室设计的 Hop 无人自行车,外形独特,更像是一个大号的滑板车,没有座椅,人站在上面,车身配有触摸屏、储物空间等,最多可搭乘 4 人,设计上侧重于未来感和实用性的结合,适用于特定场景下的出行和运输需求。
  • 个人制作型:以 “稚晖君” 制作的无人自行车为代表,体现了个人的创新能力和技术实力,在平衡控制、自主导航等方面表现出色,其制作过程融合了软件开发设计、CAD 建模、电机控制等多种技术,展示发烧友在科技创新领域的探索精神和创造力。

3 无人自行车原理

        无人自行车主要包含两个关键技术:(1)保持平衡;(2)自主行驶。第一个技术类似“不倒翁”,在复杂路面下,如何保持两轮自行车的平衡是第一个难点。第二个难点是自主行驶,这一点就和无人驾驶汽车非常相似了。下面着重介绍第一个难点,第二个难点笔者会做简单的介绍。

3.1 平衡器

        当系统一个动力角动量发生变化的时候,就会将力矩传递给其他物体,上图中这辆自行车中间的无刷电机,驱动的就是一个金属的动量轮。

(1)原理介绍

  • 基本概念
    • 动量轮是一种能够储存和改变角动量的装置。角动量是描述物体绕轴转动状态的物理量,其大小等于转动惯量与角速度的乘积。在无人自行车平衡系统中,动量轮通过改变自身的角动量来对自行车整体的角动量产生影响,从而实现平衡。
  • 平衡原理
    • 抵消倾斜产生的角动量:当无人自行车发生倾斜时,就会产生一个绕倾斜轴的角动量。例如,当自行车向左倾斜时,会产生一个逆时针方向(假设从自行车后方往前看)的角动量。此时,动量轮可以通过快速旋转来产生一个与之相反的角动量。动量轮可以通过电机驱动在短时间内加速旋转,根据角动量守恒定律,系统(自行车和动量轮整体)的总角动量在没有外力矩的情况下是守恒的。所以,动量轮增加的顺时针角动量可以抵消自行车倾斜产生的逆时针角动量,使自行车恢复到平衡状态。
    • 产生扶正力矩:动量轮的高速旋转不仅能抵消角动量,还能产生一个扶正力矩。由于动量轮的转动轴与自行车的车身相连,当动量轮改变角动量时,根据牛顿第三定律,会对自行车车身产生一个反作用力矩。这个力矩可以促使自行车车身绕倾斜轴反向转动,从而使自行车回到垂直位置。例如,如果动量轮顺时针加速旋转,会对自行车产生一个逆时针方向的力矩,这个力矩就像有人在把倾斜的自行车扶正一样,使自行车恢复平衡。
  • 控制策略
    • 传感器反馈控制:需要精确的传感器来监测自行车的倾斜状态。惯性测量单元(IMU)可以测量自行车的倾斜角和角速度。控制系统根据这些传感器数据来确定动量轮需要的角动量变化量。例如,当倾斜角较大且角速度较快时,控制系统会命令动量轮以更大的加速度旋转,以产生足够的反向角动量和扶正力矩来纠正倾斜。
    • 与其他平衡方法协同:动量轮平衡方法通常可以与其他平衡技术相结合。例如,与驱动电机控制和转向控制相结合。在一些情况下,当动量轮开始纠正自行车倾斜时,驱动电机可以适当调整车速,转向电机可以微调车把角度,三者协同工作,更有效地保持自行车的平衡,以应对复杂的行驶情况和外界干扰。

(2)其它应用

  • 航天领域
    • 卫星等航天器姿态控制:动量轮是卫星姿控系统的关键执行部件。卫星在太空中需要精确保持特定的姿态,以确保其各种仪器设备能够正常工作、与地面通信顺畅以及准确地进行科学探测等。通过控制动量轮的转速和方向,改变其角动量,从而产生反作用力矩来稳定或调整卫星的姿态,可使卫星在旋转轴方向以及垂直于旋转轴的两个方向保持稳定,实现高精度的三轴稳定控制。
  • 航空领域
    • 飞机姿态稳定:在一些先进的飞机设计中,动量轮可用于辅助飞机的姿态控制系统,帮助飞机在飞行过程中更快速、精确地调整姿态,提高飞行的稳定性和安全性。尤其是在应对气流干扰、机动飞行等情况下,动量轮能够快速产生相应的力矩,增强飞机的姿态控制能力,减少飞行员的操作负担。
  • 机器人领域
    • 平衡控制:在一些特殊的机器人设计中,如单轮或双轮自平衡机器人、无人自行车等,动量轮被用于实现机器人的平衡控制。通过控制动量轮的转动来产生扶正力矩,抵消机器人倾斜时产生的角动量,使机器人能够在静止或运动状态下保持直立平衡,并且具备一定的抗干扰能力。

 3.2 自主系统

        自主系统或者自动驾驶系统目前也基本分为感知、定位,规控等几个模块。相关模块可参考笔者的系列博客《自动驾驶感知》《自动驾驶决策规划控制》,最近比较热门的《端到端》以及一些通识的自动驾驶相关技术《自动驾驶通识技术》。

(1)实时感知

        无人自行车可以实时感知周围环境,在跟随前方试验人员的同时自动进行避障操作。自行车上可安装比较常用的传感器主要就是摄像头和激光雷达。

(2)决策规划

        自行车场景目前研究的可能更多的是非结构化场景,因此规划算法更多的是采样比如RRT算法,以及图搜索算法A*。

(3)定位

        目前还是一些比较简单的非商用的GPS,可以用于定位精度不高的场景。

 

下面再补充清华大学无人自行车上的“天机芯”相关信息:

  • “天机芯”技术

    • 清华大学研究团队在自行车控制器内部装了一款名叫“天机”(Tianjic)的人工通用智能芯片,这款芯片是中国自主研制的,也是全球首款异构融合类脑芯片。
    • “天机芯”控制的无人自行车不只是一次成功实验,更是一种具有启迪意义的新平台、新思路。团队通过这辆类脑自动行驶自行车,建立了一个异构可扩展人工通用智能开发演示平台。
  • 成果

    • 搭载“天机芯”的无人智能自行车已经可以完成语音识别、目标锁定、障碍辨别和自主决策等功能。
    • 清华大学研制的这款无人驾驶自行车,因其背后的“天机芯”技术,登上了全球顶尖期刊《自然》杂志的封面,实现了中国在芯片和人工智能两大领域《自然》论文零的突破。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/963868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 2 快速教程:WebFlux处理流程(五)

WebFlux请求处理流程 下面是spring mvc的请求处理流程 具体步骤: 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找) 匹配条件包括…

优选算法的灵动之章:双指针专题(一)

个人主页:手握风云 专栏:算法 一、双指针算法思想 双指针算法主要用于处理数组、链表等线性数据结构中的问题。它通过设置两个指针,在数据结构上进行遍历和操作,从而实现高效解决问题。 二、算法题精讲 2.1. 查找总价格为目标值…

Intel 与 Yocto 项目的深度融合:全面解析与平台对比

在嵌入式 Linux 领域,Yocto 项目已成为构建定制化 Linux 发行版的事实标准,广泛应用于不同架构的 SoC 平台。Intel 作为 x86 架构的领导者,在 Yocto 生态中投入了大量资源,为其嵌入式处理器、FPGA 和 AI 加速硬件提供了完整的支持…

算法刷题Day29:BM67 不同路径的数目(一)

题目链接 描述 解题思路: 二维dp数组初始化。 dp[i][0] 1, dp[0][j] 1 。因为到达第一行第一列的每个格子只能有一条路。状态转移 dp[i][j] dp[i-1][j] dp[i][j-1] 代码: class Solution: def uniquePaths(self , m: int, n: int) -> int: #…

98,【6】 buuctf web [ISITDTU 2019]EasyPHP

进入靶场 代码 <?php // 高亮显示当前 PHP 文件的源代码&#xff0c;通常用于调试或展示代码&#xff0c;方便用户查看代码逻辑 highlight_file(__FILE__);// 从 GET 请求中获取名为 _ 的参数值&#xff0c;并赋值给变量 $_ // 符号用于抑制可能出现的错误信息&#xff…

C++中常用的十大排序方法之4——希尔排序

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C中常用的排序方法之4——希尔排序的相…

字节iOS面试经验分享:HTTP与网络编程

字节iOS面试经验分享&#xff1a;HTTP与网络编程 &#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 目录 字节iOS面试经验分享&#xff1a;HTT…

音视频入门基础:RTP专题(7)——RTP协议简介

一、引言 本文对RTP协议进行简介。在简介之前&#xff0c;请各位先下载RTP的官方文档《RFC 3550》和《RFC 3551》。《RFC 3550》总共有89页&#xff0c;《RFC 3551》总共有44页。本文下面所说的“页数”是指在pdf阅读器中显示的页数&#xff1a; 二、RTP协议简介 根据《RFC 35…

SQLGlot:用SQLGlot解析SQL

几十年来&#xff0c;结构化查询语言&#xff08;SQL&#xff09;一直是与数据库交互的实际语言。在一段时间内&#xff0c;不同的数据库在支持通用SQL语法的同时演变出了不同的SQL风格&#xff0c;也就是方言。这可能是SQL被广泛采用和流行的原因之一。 SQL解析是解构SQL查询…

Java 大视界 -- Java 大数据在智能电网中的应用与发展趋势(71)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

想表示消息返回值为Customer集合

道奈特(240***10) 14:34:55 EA中序列图。我想表示消息返回值为 Customer 集合。目前只有一个Customer实体类&#xff0c;我需要另外新建一个CustomerList 类吗&#xff1f; 潘加宇(35***47) 17:01:26 不需要。如果是分析&#xff0c;在类的操作中&#xff0c;定义一个参数&…

01.双Android容器解决方案

目录 写在前面 一&#xff0c;容器 1.1 容器的原理 1.1.1 Namespace 1.1.2 Cgroups&#xff08;Control Groups&#xff09; 1.1.3 联合文件系统&#xff08;Union File System&#xff09; 1.2 容器的应用 1.2.1 微服务架构 1.2.2 持续集成和持续部署&#xff08;CI/…

【Elasticsearch】硬件资源优化

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

2025-工具集合整理

科技趋势 github-rank &#x1f577;️Github China/Global User Ranking, Global Warehouse Star Ranking (Github Action is automatically updated daily). 科技爱好者周刊 制图工具 D2 D2 A modern diagram scripting language that turns text to diagrams 文档帮助 …

二叉树--链式存储

1我们之前学了二叉树的顺序存储&#xff08;这种顺序存储的二叉树被称为堆&#xff09;&#xff0c;我们今天来学习一下二叉树的链式存储&#xff1a; 我们使用链表来表示一颗二叉树&#xff1a; ⽤链表来表⽰⼀棵⼆叉树&#xff0c;即⽤链来指⽰元素的逻辑关系。通常的⽅法是…

Java 23新特性

文章目录 Java 23新特性一、引言二、Markdown文档注释&#xff08;JEP 467&#xff09;示例 三、ZGC&#xff1a;默认的分代模式&#xff08;JEP 474&#xff09;1. 为什么要引入分代模式2. 使用分代模式的优势3. 如何启用分代模式 四、隐式声明的类和实例主方法&#xff08;JE…

【数据结构】_链表经典算法OJ:复杂链表的复制

目录 1. 题目链接及描述 2. 解题思路 3. 程序 1. 题目链接及描述 题目链接&#xff1a;138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;…

Shell篇-字符串处理

目录 1.变量引用 2.获取字符串长度 3.字符串截取 4.删除子字符串 5.字符串替换 总结&#xff1a; Bash&#xff08;Shell 脚本&#xff09;中的字符串处理语法。以下是对其的介绍和总结&#xff1a;Bash 变量可以使用不同的语法来获取、修改和删除字符串的内容。图片中列…

STM32 TIM定时器配置

TIM简介 TIM&#xff08;Timer&#xff09;定时器 定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元&#xff0c;在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能&#xff…

Spring Security(maven项目) 3.0.2.9版本 --- 改

前言&#xff1a; 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往…