作者:fly qq
上海交通大学|机器人所博士生
量子位 已获授权编辑发布
原本想编译完代码再评论的,但这段时间实在太忙,就先试着说说看。权当抛砖引玉。
首先,这个项目是基于
ROS
的,这可能有两个原因(自行二选一):
① 这个平台主要是面向研究机构的,使用ROS可以大大提高开发速度;
② 开发人员一时半会没法搞出一个「无人车操作系统」,所以就先用现有的ROS(机器人操作系统) 来替代,反正上面的人不懂。
其次,这个项目
整体框架
是比较合理的,无人车系统所需要的大多数关键模块都包含了,开发者也很容易就能将自己的算法整合到这个框架里。说明百度自己的无人车项目还是有一定技术积累的。
(我不是专业的码农,所以在代码角度没办法过多评论,但我看它代码时有一种看g2o代码既视感,所以应该是写得不错的)。
然而,
算法方面
就如 知乎网友@伊呼呼所说的那样不如人意了。似乎只公开了控制(control)与定位(localization)的代码,搭建无人车系统的另外两个关键模块(perception 和 planning)都没有公开:
定位 Localization:RTK GPS + IMU,没看到 Kalman Filter;
感知 Perception:这块应该是用来识别障碍物,车道线,交通灯等各种信息的模块,算是无人驾驶系统中非常关键的一块。这次百度并没有公开这个;
预测Prediction:这个主要是基于感知信息进行预测,所以也没有公开;
决策Decision:这个属于无人车系统最高层的决策系统,它的作用是基于现有的信息来判断下一步动作,没有感知,所以这部分也没公开;
规划Planning:这个应该是一般意义上的全局规划器,用途是找到可行路径,一般会采用各种各样的花式规划算法,然后这次 Apollo 中也没有提供这部分内容;
控制Control:这个其实就是局部规划器,用途是让无人车沿着规划的轨迹运行,这个项目中提供了基于 LQR 的算法,这部分还算可以。
由于这么多关键算法都没有公开,所以,就目前的情况来看,
想花三天时间用Apollo搭建自己的无人驾驶系统基本是不可能的
。
(虽然Apollo的文档里没有说用它就能搭建完整的无人车系统,但是百度这次的「开发者大会」着实有这样宣传的误导倾向,以致于不懂技术的媒体都跟风报道)
再者,就是所谓的
仿真系统
。百度「开发者大会」上,陆奇着重强调用他们的仿真系统,就可以大大减少实际车辆的实验时间。
当然,仿真环境在无人系统中的作用是不言而喻的。但是,从下面这个界面,我是看不出它能提供多少仿真信息。(如果之后有时间测试,我会补充修改)
另外,我想问,ROS中本来就有的gazebo,或者那么多其他仿真平台不好用么?做动力学控制,强化学习都是可以的:
总体上来说,我感觉Apollo项目作为一个定位为开放的「无人车操作系统」,实在是诚意不够,用我当时第一眼看到它代码后发的朋友圈来形容简直合适:
PS: 开发者大会上陆奇和李彦宏信心满满的态度让我不禁怀疑,百度高层似乎对这个情况不自知,这是最可怕的地方。
点击左下角“
阅读原文
”处,可以参与话题讨论
也可以解锁更多作者的回答~