笔者之前参与过基于 ROS1 的机器人开发, 但是如大多数创业公司一样, 这些系统也都仅仅限于demo 阶段。失败的原因一方面是市场的因素, 一方面也是当前的机器人系统并不成熟, 开发者必须在及其有限的资源下 板载 CPU,内存等资源开发一个感知决策系统,但在当前 ROS1 的状况下总是无法做到稳定,接下来是我的讨论,欢迎大家评论中留言。
自动驾驶系统中的数据量越来越大
自动驾驶中用到的传感器很多,每种都有自己的劣势,但也都存在自己的盲区。
- 3D 激光雷达, 只能对三维空间进行稀疏的采样, 线束越多采样点越密集但数据量也加大, 对玻璃无效
- 2D 激光雷达, 只能探测水平面的物体, 无法感知立体,对玻璃等透明物体无效
- RGB 摄像头, 空间感知较差,但纹理丰富,能够对近距离物体实现 分类和识别(机器学习算法), 远距离无效
- odom 轮式里程计, 误差较大
- IMU 惯性测量单元,累计误差较大。
目前的趋势是3D激光线束越来越密集了,探测距离也越来越远,但是数据量也爆炸式的上升, 海量的数据处理对于一个实时操作系统是一个很现实的问题。但这也是目前 鲁棒性较高的方式之一。【 所以稠密点云处理是方向之一?】
所以如此庞大的数据量,需要实时的处理,对系统处理能力和稳定性 要求很高 , 好奇当前成熟的自动驾驶系统处理如此庞大数据量的策略。
ROS1 的缺点
- ROS因为将功能分布在各个节点之中,节点间基于消息机制通信,通讯部分消耗了很多系统资源。尤其是当所有节点位于同一个处理器时,ROS仍然一直执行相应的消息分发,节点间的数据传递通过内存复制,大量的系统资源都浪费在通讯上,使得系统必须选用高性能的处理器和存储系统以弥补损耗。换句话说,利用ROS来实现SLAM,需要配备性能优越的硬件设备,这对于一些小型化嵌入式平台,尤其是实际的机器人产品里,其对计算