点上方计算机视觉联盟获取更多干货

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:新智元

AI博士笔记系列推荐

周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接

B站又出「神车」!近日,华为天才少年稚晖君发布了一款「无人驾驶」自行车,静态站立、自动避障、路径识别统统可以。网友评论:又一辆自行车成精了!

自行车什么时候能实现「自己行走」呢?

自行车属于欠驱动系统,如果不进行控制就无法实现稳定站立

最近,B站野生技术协会野生钢铁侠、「华为天才少年计划」入选者、AI算法工程师稚晖君发布了一个「自动驾驶」自行车项目,自行车化身「自动行走」的车!

视频讲解详细,网友直呼:666666

那么,稚晖君是如何打造自动驾驶「自行车」的呢?

第一步当然是最基本的让车子跑起来,这就需要硬件改造,加入自动控制系统。

第二步要去掉驾驶员工具人,这就需要给车子搭载一整套传感器组成的网络,还需要一个算力足够的芯片,而这个芯片也是整个自行车的「大脑」。

最后,在前面的硬件基础上实现感知和控制算法,也就是给这台车「注入灵魂」。

改造「死飞」

介绍完步骤,我们具体来看:

改造的对象是一辆「死飞」(Fixed Gear),结构简单,没有刹车,靠反向蹬车减速。

像钢铁侠造机器人那样,这台自动驾驶的自行车也需要用计算机辅助工具CAD来建模,得到一辆虚拟自行车,或者叫做自行车的数字孪生。

有了车体模型,所有的改造工作都可以在计算机上完成,只需加上「亿点点」的细节,最终的改造方案就出来了:

先给车子安装两个巨大的无刷电机。

以及一个控制龙头的舵机。

传感器方面搭载了一个RGBD的深度相机,加速度计和陀螺仪,以及一个激光雷达。

而电池使用的是6S的航模动力锂电池,续航大约有2-3小时。

主控计算模块被安置在了座椅的后方。

驱动结构方面,控制龙头的旋转舵机,前后方向的平衡靠两个轮子的支撑和地面摩擦力。

那么左右平衡呢?当在骑行状态下,可以靠着左右调节龙头来获得转向加速度以此来抵消重力的影响。

那么静止状态下呢?

这就要靠角动量守恒,学过大学物理的同学都知道角动量守恒定律是自然界中最普遍的守恒定律之一。

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

实际上这也是在太空中卫星在没有摩擦力的情况下调整自身姿态的一样的原理。

而后面的无刷电机就是靠摩擦力驱动后轮,让车子整体前后运动。

关于零件,其中一部分零件可以用3D打印来制作,不过由于这次所需零件比较硬核,3D打印塑料的硬度和刚性都不太适合作为核心的结构件,因此用于固定电机的零件,稚晖君还是选择用金属来加工。

此处就要感叹一下,有一个家里有厂,可以直接开模做零件的朋友也很重要!

安装机器大脑

在所有的零件安装完成后,就需要安装电力系统了 ,也就是主控模块和AI计算单元。

和人类一样,将计算单元分为小脑和大脑,小脑包括低算力、低时延、运行实时系统,大脑包括高算力、高时延、运行非实时操作系统,用于感知、思考和决策。

而在这个项目中,小脑用的是HoloCubic里面的MCU,ESP32,大脑则应用了昇腾边缘计算机芯片昇腾310  AI处理器,搭载的达芬奇core可以提供高达22TOPS的算力。

然后,稚晖君设计一个载板,将这两个计算单元整合到一起,板子的结构为四层设计。

PCB打样之后再手工焊接一下,这也是传统艺能环节。

之后通过总线把大脑和小脑相连,在软件上实现一套RPC框架,让它们可以方便地通信。

其中小脑的框架基于FreeRtos,主要是实现传感器的数据处理,以及电机的控制算法。

简单分为三个任务:闭环控制线程、电机通信线程、以及屏幕刷新线程。

大脑的软件框架要复杂很多。

除了基于昇腾的整个AI栈之外,还在系统中使用了一个做机器人常用的框架—— ROS,本质上是一个高性能的通信中间件。

到这里,电路方面已经有了脑子,还缺一个很重要的模块,那就是心脏,也就是此前稚晖君设计的Ctrl-FOC驱动器。

作为Ctrl的二代作品,它的表现还是非常的猛的,在很小的体积之下, 实现了两路共100安 的无刷电机FOC控制,同时还顺便  驱动了前面60Kg的舵机,以及一个散热风扇。

到这里自动驾驶自行车就整合完成了。

稚晖君简单做了一个总结:

机器人是一个复杂的系统,设计的时候,科学的方法是将机器人进行理论上的分析,也就是运用运动学和动力学的建模,通过数学模型知道哪些事情是相对 容易的哪些是复杂的。

例如,这辆车子的控制代码中,有超过50个重要参数:控制周期、反馈矩阵、PID增益、滤波器截止频率等。

这些魔法数字要全部得到合理的设置,才能使系统进入稳定且快速收敛的状态。

而一些物理参数的设置,如电机功率应该选多大的?飞轮质量应该选多少?

重心的分布应该怎样设置才比较合理?也都需要准确的数学模型进行指导才行。

在得到模型之后, 为了进一步验证理论的准确性,一般要在计算机中进行仿真,这里稚晖君使用的是游戏引擎Unity——先在游戏引擎中构建一个虚拟的物理环境,赋给小车真实的的质量和重力,接着将控制算法的计算结果可视化呈现出来。

这一步验证完成之后 ,还有一个sim2real的过程,也就是把仿真结果迁移到现实环境中。

其实这是一个很复杂的过程,因为现实中有更多的不确定性因素,很多情况下机器人往往在仿真中重拳出击,而在现实中「唯唯诺诺」秒变智障,这里视频中举了一个DARPA参赛作品的例子。

同理,这台车在调试的过程中也是非常艰辛的。

在这套系统中在姿态控制中,稚晖君使用的LQR控制器,方向控制使用了经典的PID算法,传感器则是对加速度计和陀螺仪数据使用了二阶的巴特沃斯滤波器之后再通过卡尔曼滤波器进行数据融合,最终得到车身姿态。

经过漫长的参数整定,终于得到了一台成熟的「自动驾驶」自行车。

那么,自动驾驶效果到底如何呢?

静态站立非常稳!

戳它也一副「我自岿然不动」的样子

突然在一侧增加重物仍然能保持平衡

甚至可以来点杂技动作

前进、倒退也是一如既往的稳

实现自动驾驶功能

至此,能动的基本目标已经达成。

接下来就是引入AI,实现「一定程度」的自动驾驶。

由于这个车子搭载了深度相机,在电脑上就可以看到车子WIFI实时的RGB图传画面,再结合一些AI算法即可实现一些有趣的功能,比如说自动避障、运动识别跟随。

另外,还有自动驾驶少不了的路径规划,此时车子搭载的激光雷达就排上了用场。

激光雷达通过测量激光发射到反射所需时间,再乘以光速就可以获得目标的距离位置。

由此360°成像的结果可获取摄像头更加可靠的深度信息,将这些数据用于SLAM图与路径规划,最后就可以实现让自行车自主探索了。

稚晖君表示这只是「非常基础」的自动驾驶设计,还有很多地方需要改进。

比如龙头的传统结构设计不太合理,如果换成谐波减速伺服电机直驱,那么行驶的稳定性将大幅度提升。

另外受限于整车功率,这套系统目前还无法载人,就只能真·无人驾驶了,但是如果换成电动车可能就不一样了。

稚晖君给这辆自动驾驶自行车取名XUAN(eXtremely Unnatural Auto-Navigation),同时也是「轩」的意思,因为「轩」在古代是车子的意思。

目前该项目已经在GitHub上开源,感兴趣的朋友可以前往下载。

https://github.com/peng-zhihui?tab=repositories

并非第一辆「成精」的自行车

以后如果你在晚上看到一辆自行车「鬼鬼祟祟」,不要惊慌,那只不过是一辆「成精」的自行车。

而这其实并不是第一辆成精的自行车。

2019年8月1日,《自然》封面文章介绍了清华大学在通用人工智能上的新尝试:一款名为「天机」的全新芯片架构,结合类脑计算和人工智能算法,展示了一辆由新型人工智能芯片驱动的自动驾驶自行车。

试验中,无人自行车不仅可以识别语音指令、自动控制平衡,还能对前方行人进行探测和跟踪,并自动避开障碍。

没错,不仅能自动避障,还在追赶目标,这速度也是相当快了。

参考资料:

https://www.bilibili.com/video/BV1fV411x72a

-------------------

END

--------------------

我是王博Kings,985AI博士,华为云专家、CSDN博客专家(人工智能领域优质作者)。单个AI开源项目现在已经获得了2100+标星。现在在做AI相关内容,欢迎一起交流学习、生活各方面的问题,一起加油进步!

我们微信交流群涵盖以下方向(但并不局限于以下内容):人工智能,计算机视觉,自然语言处理,目标检测,语义分割,自动驾驶,GAN,强化学习,SLAM,人脸检测,最新算法,最新论文,OpenCV,TensorFlow,PyTorch,开源框架,学习方法...

这是我的私人微信,位置有限,一起进步!

王博的公众号,欢迎关注,干货多多

王博Kings的系列手推笔记(附高清PDF下载):

博士笔记 | 周志华《机器学习》手推笔记第一章思维导图

博士笔记 | 周志华《机器学习》手推笔记第二章“模型评估与选择”

博士笔记 | 周志华《机器学习》手推笔记第三章“线性模型”

博士笔记 | 周志华《机器学习》手推笔记第四章“决策树”

博士笔记 | 周志华《机器学习》手推笔记第五章“神经网络”

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(上)

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(下)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(上)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(下)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(上)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(下)

博士笔记 | 周志华《机器学习》手推笔记第九章聚类

博士笔记 | 周志华《机器学习》手推笔记第十章降维与度量学习

博士笔记 | 周志华《机器学习》手推笔记第十一章稀疏学习

博士笔记 | 周志华《机器学习》手推笔记第十二章计算学习理论

博士笔记 | 周志华《机器学习》手推笔记第十三章半监督学习

博士笔记 | 周志华《机器学习》手推笔记第十四章概率图模型

点分享

点收藏

点点赞

点在看

华为天才少年一人打造自动驾驶!相关推荐

  1. 打车平台Lyft获Magna 2亿美元投资,携手打造自动驾驶汽车

    Root 编译整理 量子位 出品 | 公众号 QbitAI 目前,汽车共享出行的里程数,占所有汽车行驶总里程数的比例还不到1%. "如果要增加到80%,"打车平台Lyft CEO ...

  2. 华为自动驾驶视频曝光 | 解读华为“ADS高阶自动驾驶全栈解决方案”

    华为自动驾驶方案来了!自诩比特斯拉还牛逼! 徐直军多次强调华为不造车的中心思想 "华为不造车,但我们聚焦ICT技术,帮助车企造好车".这是出自2018年的华为董事常委会所颁布决议之 ...

  3. 百度智能云数据众包,更安全、更优质的数据能力,打造自动驾驶超智“双眼”...

    自动驾驶技术近年来倍受资本和行业市场关注,越来越多的车企.零部件供应商和解决方案供应商投身其中.在资金和政策的双向加持下,行业发展迅猛,几成燎原之势. 而其中最大的技术瓶颈无疑是在感知能力上,除了算法 ...

  4. 福特打造自动驾驶汽车,你的专属安全智能护卫

    福特开启无人驾驶汽车夜间测试项目,自动驾驶汽车成为可能. 人们对科技的需求和创新是永无止境的,无人机之后,人们以相同的概念引入了无人驾驶汽车,开车的人都知道,开车时的注意力需要高度集中,时间长了不仅仅 ...

  5. 深度解析,教你如何打造自动驾驶的数据闭环

    最近自动驾驶和数据闭环结合在一起,原因是自动驾驶工程已经被认可是一个解决数据分布"长尾问题"的任务,时而出现的corner case(极端情况)是对数据驱动的算法模型进行升级的来源 ...

  6. 又走一人 苹果自动驾驶系统工程项目经理已离职

    1月24日消息,据国外媒体报道,全球电池开发主管Soonho Ahn跳槽大众,雷达总工程师埃里克·罗杰斯(Eric Rogers)加入飞行出租车初创公司Joby Aviation之后,苹果汽车项目团队 ...

  7. 北京正研究“车路协同”模式,将打造自动驾驶测试专用道路

    据透露,第一条自动驾驶测试专用道路将落地亦庄. 今天上午,北京市交通委相关负责人在一档节目中透露,为了推广自动驾驶技术,北京将在未来对道路设置进行改造,实现"车路协同",而第一条自 ...

  8. 华为2021实验室招聘自动驾驶等相关方向工程师 / 博士后

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 工作地点: 上海/杭州/深圳 任选 招聘岗位汇总 1.自动驾驶感知算 ...

  9. 2021/7/22 华为笔试复盘 1.自动驾驶出租车订单分配

    这个写出来的人脑子太强了 代码: #include <iostream> #include <algorithm> using namespace std; int n, k; ...

最新文章

  1. SQLAdvisor美团SQL索引优化建议工具
  2. 百兆以太网传输距离_罗森伯格陪你做车载——汽车以太网(三)
  3. badboy 不支持html5,html5_iframe.htm
  4. css禁止双击dom节点被选中user-select:none
  5. sniffer 和 debug flow
  6. 《Pro/ENGINEER野火版5.0从入门到精通》——2.5 设置零件单位
  7. 抗疫进展:多家科研机构联合筛选出五种可能有效的抗病毒药物
  8. 3个表的连接需要 个关联条件。_购物篮分析(关联商品销售分析)
  9. 购物车及商品php代码_简单的php购物车代码
  10. 代码中的时间格式问题究竟该如何处理?
  11. github本地库及clone常用命令
  12. js获取post请求参数_SpringMVC请求参数获取时,有这六种方式值得学习
  13. 设计师学python还是processing_人人都能学会的processing创意编程能实现什么?
  14. 谷歌地球(Google Earth) 7.3.2.5776
  15. Live800:如何拯救客服的烦恼,让服务和营销更简单?
  16. vue项目的目录结构图及目录详解
  17. 性能测试平台搭建及简单使用(jmeter分布式+influxdb2.0+grafana)附性能测试报告
  18. 《计算机网络面试题目总结》
  19. 点云前视图与俯视图生成
  20. matlab中strcmp函数的使用

热门文章

  1. mysql插入日期_初识MySQL
  2. java sqlite 操作_Java SQLite 数据库操作
  3. phoenix的元数据一般存在哪里_ElasticSearch文档元数据(Metadata)
  4. nginx正向代理https,zabbix内网实现企业微信告警
  5. python群发邮件1000人-python读取excel群发邮件(一)
  6. 华硕服务器安装完系统起不来,w10安装后启动不起来的具体处理办法【图文】
  7. 师范生计算机硬件技能怎么填,浅析对师范生教育技术能力培养与发展问题的思考的论文...
  8. jdk jenkins 配置ant_Jenkins流水线实践课程
  9. 上学是穷人的出路吗?
  10. CentOS 恢复 rm -rf * 误删数据(转)