一起整俩ROS开源项目 智能音箱和无人驾驶

原文始发于:一起整俩ROS开源项目 智能音箱和无人驾驶

开发真的是进无止境,换句话说就是拖延起来Deadline只是写在白板上随便看看。今年年初定了两个小目标,计划年底完成,实际上想名字就花了三个月,分别是支持ROS的智能音箱Tianbot ROSECHO,以及无人竞速车TianRacer。软件是本来就准备开源,只是一年下来,各种事情牵扯精力,硬件改善较多但程序都没有想象中完善,终于有点想明白开源的真谛:不是一个人死磕秀代码,而要众人拾柴火焰高。

想想原来经常各地奔走呼喊,不单单要从开源社区汲取养分,还要懂得贡献。回头一看,自己就没有贡献个啥。这次是希望能够号召一下各路小伙伴,若有愿意参与这样的开源项目,大家能一同创建一个百星、千星的github项目。我们几个老程序员已经把架子搭起来了,虽然能跑,但问题也还很多,要完善的功能就更多。期望有更多的年轻朋友和我们一起成为社区的“贡献者”,和我们一起在开发过程中学习软件的版本控制、代码规范、团队协作,完成较复杂的机器人项目,实现成长和蜕变。

闲话少说,仔细介绍一下两个开源项目。大家也了解,机器人的开源软件需要配合相应的硬件使用,为了推进这次计划,我们准备给予首批开发者大大的优惠,也算是借双11这个降价热潮回馈下社区吧(也可以当我是给新产品打个广告呗)。我们准备首发都仅有各10个样品,在天之博特的淘宝店进行发售,开发者价格需要大家填表申请,合适的申请者我们会派发六折优惠券并赠送适配的ROS2GO,手握优惠券的朋友们先下单先得,售完即止。问卷星调查戳下面:

ROSECHO与TianRacer开发者优惠申请www.wjx.top一起整俩ROS开源项目 智能音箱和无人驾驶

智能音箱 Tianbot ROSECHO

github源码库,大家可以先star了再看。。此代码为BSD开源协议

tianbot/rosechogithub.com一起整俩ROS开源项目 智能音箱和无人驾驶

好些朋友见到我们做这个东东都满腔感慨的表示智能音箱都这么多了你们团队估计脑壳秀逗了才想着做智能音箱吧?好吧,故事的发展是这样的。。

2017年的时候我们要做一个大型展厅的讲解机器人,这个用当时流行的大多数Android系统的接待引导机器人,完成语音交互是没问题,但是还没有人能够集成cartographer在几千平米的展厅建图导航。我们就制定方案做一个完全基于ROS的讲解机器人。虽然市面上已经有各种各样的智能音箱,但是没有适合在ROS下进行二次开发的。。最终在科大讯飞一位大佬的介绍下,我们定下了使用AIUI的方案,虽然开发难度大,好在是高度定制化,非常适合我们这样有开发能力的团队。。。emmm。。。所以我们主要任务变成了开发一款能够在ROS下驱动的智能音箱,这也是ROSECHO的开端。

一起整俩ROS开源项目 智能音箱和无人驾驶
ROSECHO Prototype 原理样机

第一版智能音箱出来大概是18年4月,包含40W的两个大喇叭,6环麦,还有ROS的主控制器,下面控制了一个云迹科技的水滴底盘。了解过ROS星火计划进阶课程的朋友们大概知道,课程最后有一个语音命令移动机器人端茶倒水的大作业,我们相当于完成了一个加强版的大作业。

一起整俩ROS开源项目 智能音箱和无人驾驶
造价不菲的讲解机器人

2018年7月整个机器人做完,音箱就分散到了身体各个部分,环麦放在了头顶,喇叭置于身体两侧。其他传感器、执行机构、决策、定位导航全部基于ROS,定制了1000条特定问答,调试的在场馆中行走上下坡不抖动,定位不丢,7*24工作不死机,感觉ROS Master好像不是那么不堪用。

音箱在大机器人上使用效果还是非常不错,主要得力于讯飞的降噪和回声消除,使得远场对话与全双工的对话可以实现(就是不用每次说话都得唤醒,即使在放音乐)。社区很多小伙伴也用一些软核的解决方案,使用的环境限制比较大。于是乎,我们决定把这个音箱从大家伙改成普通智能音箱大小,通电就是个普通智能音箱,USB接入ROS后,只需要launch一下,就可以用Topic接收语音识别的结果,以及发送TTS的语料,还可以配置网络、接收唤醒角度等等。

这次就深刻体会到了做大容易做小难。过完春节到2019年8月ROS暑期夏令营,一共做了N款外壳,测试了M种喇叭,贴了P版外围电路,程序则改动不大。。主要是么有时间改进啊。

一起整俩ROS开源项目 智能音箱和无人驾驶
一些古董ROSECHO
一起整俩ROS开源项目 智能音箱和无人驾驶
首发的ROSECHO颜色一览,白色展示正面,橙色展示反面

样品都是纯手工制作。音质上来说,7w的喇叭配了一个无源辐射板,对于我这样从森海HD497入门就退烧的人来说,不要太挑剔啦,高音尖低音惨,又不是不能听。

之前想法中发过一个使用视频。大家可以看看运行的效果。

一起整俩ROS开源项目 智能音箱和无人驾驶借助讯飞云端分分钟可以垃圾分类https://www.zhihu.com/video/1175514026699894784

ROSECHO大致情况介绍完毕,如何开始呢?

从零开始:这个主要是推荐给因为项目需求手头已经有讯飞AIUI评估板的小伙伴,记住要是评估板而不是麦克风降噪板(外观比较像,简单区分就是讯飞官方售价评估板4999元,降噪板2599元),虽然降噪板也可以配合AIUI软核使用,但是和我们的开源程序就完全不对口。手头的评估板可以3.5mm的接头连接普通的电脑音箱,再准备一根USB转232的转换头就可以接评估板DB9的接头。后面需要根据实际的串口修改一下udev rules,应该就可以配合ROSECHO的软件使用了。这样硬件工作比较多,而且还没包含真要用到移动机器人上需要的机械设计加工电气改造等工作。好处是拥有AIUI的后台可以定制云端的语料和技能等等,但是这又是另一个领域的技能,也不是三下五除二能搞完的。

从ROSECHO开始:直接购买ROSECHO,首发的十台会附赠已经配好的ROS2GO,只需要插上自带的电源并用USB线连接电脑,需要在roslaunch中配置无线ssid和密码,然后就可以啦。连接方便,我们会维护云端的语料,人设是一个智能机器人管家。大家只要关心如何利用识别后的词句进行机器人控制和应答就好。云端的问答AIUI自己会处理,一些自定义的问答可以在本地的程序中处理,一定要联网,因为语音识别本身需要网络。具体的软件启动和简单demo请查看github软件库的说明。

然后做什么:要实现一个智能语音交互功能的移动机器人,需要对ROS中的actionlib非常熟悉。我们有自带简单的demo,可以控制机器人在turtlebot stage仿真环境中根据语音指令在两个点之间移动,也可以根据唤醒方位进行旋转,不过后面还要增加音箱的TF变换。

大机器人中我们自己的状态机是采用层次状态机(Hierarchical state machines),大概也是RPG游戏中最常用的状态机,个人感觉是非常适合移动机器人编程的,这个框架我们准备开源出来,方便大家开发自己的智能移动机器人策略。参考下面这个链接:

State · Design Patterns Revisited · Game Programming Patternsgameprogrammingpatterns.com一起整俩ROS开源项目 智能音箱和无人驾驶

希望深入了解也可以购买译本

 

肯定是比ROS By Example中用的Smach状态机更适合商用级产品开发。

还计划做一个简单的语音遥控指令集,机器人问答库,在iflyos中做个适合机器人的技能库。。不知道什么时候能做完,大家一起加油啊!

无人驾驶小车TianRacer

github源码库,大家可以先star了再看。。延续Hypha Racecar的GPLv3协议。

tianbot/tianracergithub.com一起整俩ROS开源项目 智能音箱和无人驾驶

这个是最近更新的详细使用手册。相比ROSECHO只做完了驱动来说,TianRacer的基本功能都是完善的。至少拿来玩个建图导航学学SLAM分分钟就可以了。

TianRacer · 看云doc.tianbot.com

 

TianRacer是一个准备了更长时间的开源项目。2017年从台湾小帅哥林浩鋕手里接过Hypha Racecar之后,就希望能把这个项目发扬光大。

一起整俩ROS开源项目 智能音箱和无人驾驶
2017年接过小林的车

这两年主要改进了软件框架、周边硬件、机械结构,增加了新的建图算法,不过还有很多工作要做。这两个月在知乎想法和微信朋友圈都发过这两年我们做车的过程,历经多次迭代,现在大致是分为入门、标准、高配三个版本。三个版本的软件是统一的,可以通过环境变量更改设置。

一起整俩ROS开源项目 智能音箱和无人驾驶
TianRacer入门版

最近整个项目从Tianbot Racecar更名为TianRacer,探索了这么长时间,终于实现了无人竞速车合理的传感器与处理器配置。相比Hypha Racecar,处理器从原先的Odroid XU4更换为NVIDIA在2019上半年推出的Jetson Nano,并且在车前方增加了一个广角摄像头,利用Nano的深度学习加速,可以接近实时的处理图像数据。相比较之前的单线激光,增加了广角的摄像头大大扩展了后续可实现的功能。

TianRacer基本全部采用Python编写,从底层驱动到遥控等,主要是为了方便大家学习和二次开发。同时集成了cartographer和vins-fusion的启动文件,可以尝试新的激光与视觉slam。基于Nano的深度学习物体识别等等也是可以直接运行的。不过我们还没有能够将所有功能有机整合起来。

从零开始搭建:TianRacer从零开始搭建可能难度略大,不仅需要一个RC竞速车的老玩家做机械电子的各种改装,还需要对ROS熟悉改写软件以进行适配,同时可能还要有个嵌入式的程序员。再加上我们自己对硬件的迭代还一直在继续,软件适配只能照顾到自主开发的车型。对于主要关心搭建的朋友,可以参考小林的Hypha Racecar和JetRacer Tamiya版本的搭建指南。

https://github.com/Hypha-ROS/hypha-racecar/blob/ver.1-release/document/Hypha-ROS-RaceCar-Tutorial_V1.1.pdfgithub.com

NVIDIA-AI-IOT/jetracergithub.com一起整俩ROS开源项目 智能音箱和无人驾驶

从TianRacer开始:这批开发版本的无人竞速车会附赠搭好环境的ROS2GO,TianRacer本身有开机自启,需要利用ROS2GO加上USB线对车体进行网络配置,然后就可以远程编程和调试了。仔细参考上面给出的TianRacer看云的文档(文档也在积极更新),大部分车体自带的功能都可以实现,包括却不限于建图、定位、导航、识别等等。

然后做什么:利用TianRacer除了可以学习无人车的基础框架,还可以通过JupyterLab学习Jetson Nano的一些深度学习算法。后续我们期望能够将交通标识符识别、行人和车辆检测、车道线检测等无人车的基础功能融合起来,但是不确定Jetson Nano的算力足够,不过我们还有装备Jetson TX2和Xavier处理器的车型。暂定的项目目标就是可以在校园内的教学楼操场道路等地方上进行低成本的无人车竞速比赛。期望能像CMU卡耐基梅隆大学举办的Mobot室外巡线比赛一样生命力顽强,到现在2019年已经举办了25届啦!

一起整俩ROS开源项目 智能音箱和无人驾驶CMU Mobot 25 Years 巡线车比赛https://www.zhihu.com/video/1176146027916271616

这个视频是搬运Youtube的。大家说这有什么啊我大学做恩智浦飞思卡尔比这个快多了。嗯,这个可以仔细了解一下什么叫做非结构环境下的导航。对于不清楚什么叫做结构化环境和非结构化环境的朋友,可以说CMU和恩智浦的比赛就完美诠释了二者的区别。

一起来玩耍吧

比较惭愧我们也是第一次组织开源社区协作,对于这样松散的协同开发没什么经验,希望参与或组织过大型开源项目的朋友加入我们一起努力,有意向的朋友可以留言或私信。

前几日和朋友们闲聊还回想起几年前高翔博士写一锅粥的时候(orb-ygz-slam)的时候赞助了1w块钱,因为也帮不上别的什么忙。这次真心希望可以实实在在的贡献点代码。需要硬件准备开始的朋友们,可以填表啦!

ROSECHO与TianRacer开发者优惠申请www.wjx.top一起整俩ROS开源项目 智能音箱和无人驾驶

发表评论

电子邮件地址不会被公开。 必填项已用*标注