自动驾驶汽车硬件与软件技术介绍腾讯云开发者社区

概要:本文详细介绍了自动驾驶汽车的硬件和软件,以及所需要做的准备工作,每个研发者或者准备投身于无人驾驶领域的人都应该好好看一下。

全球有数不清的公司在忙着研发自动驾驶汽车,他们的产品也千奇百怪,不过基本思路和核心技术是类似的,本文详细介绍了自动驾驶汽车的硬件和软件,以及所需要做的准备工作,每个研发者或者准备投身于无人驾驶领域的人都应该好好看一下。

大家都知道智能车(Intelligent Vehicle)是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,它集中运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,是典型的高新技术综合体。

自动驾驶的关键技术依次可以分为环境感知、行为决策、路径规划和运动控制四大部分。

自动驾驶理论听上去很简单,四大关键技术,但到底如何实现的呢?Google 从 2009 年开始做自动驾驶,到现在已有 8 个年头。8 个年头的技术积累还无法将自动驾驶技术量产落地,可见自动驾驶技术并不简单。自动驾驶是一个庞大而且复杂的工程,涉及的技术很多,而且太过细致。我从硬件和软件两方面谈一谈自动驾驶汽车所涉及的技术。

硬件

离开硬件谈自动驾驶都是耍流氓。先看个图,下图基本包含了自动驾驶研究所需要的各种硬件。

然而,这么多传感器并不一定会同时出现在一辆车上。某种传感器存在与否,取决于这辆车需要完成什么样的任务。如果只需要完成高速公路的自动驾驶,类似 Tesla 的 AutoPilot 功能,那根本不需要使用到激光传感器;如果你需要完成城区路段的自动驾驶,没有激光传感器,仅靠视觉是很困难的。

自动驾驶系统工程师要以任务为导向,进行硬件的选择和成本控制。有点类似于组装一台计算机,给我一份需求,我就给你出一份配置单。

汽车

既然要做自动驾驶,汽车当然是必不可少的东西。从上汽做自动驾驶的经验来看,做开发时,能不选纯汽油车就别选。一方面是整个自动驾驶系统所消耗的电量巨大,混动和纯电动在这方面具有明显优势。另一方面是 发动机的底层控制算法相比于电机复杂太多,与其花大量时间在标定和调试底层上,不如直接选用电动车研究更高层的算法。

国内也有媒体专门就测试车辆的选择做过调研。「为什么谷歌、苹果不约而同的选择了雷克萨斯RX450h(混动汽车)?」「科技公司测试自己的自动驾驶技术时,对于测试车的选择又都有哪些讲究?」等问题。他们得出的结论是「电」和「空间」对无人车改装至关重要,其次从技术层面上对车的「熟悉程度」是另外一个因素,因为如果不和车企合作改装,需要「Hack(侵入)」某些控制系统。

控制器

在前期算法预研阶段,推荐使用工控机(Industrial PC,IPC)作为最直接的控制器解决方案。因为工控机相比于嵌入式设备更稳定、可靠,社区支持及配套的软件也更丰富。百度开源的 Apollo 推荐了一款包含 GPU 的工控机,型号为 Nuvo-5095GC,如下图。

Github ApolloAuto

当算法研究得较为成熟时,就可以将嵌入式系统作为控制器,比如 Audi 和 TTTech 共同研发的 zFAS,目前已经应用在最新款 Audi A8 上量产车上了。

CAN 卡

工控机与汽车底盘的交互必须通过专门的语言——CAN。从底盘获取当前车速及方向盘转角等信息,需要解析底盘发到 CAN 总线上的数据;工控机通过传感器的信息计算得到方向盘转角以及期望车速后,也要通过 CAN 卡将消息转码成底盘可以识别的信号,底盘进而做出响应。

CAN 卡可以直接安装在工控机中,然后通过外部接口与 CAN 总线相连。Apollo 使用的 CAN 卡,型号为 ESD CAN-PCIe/402,如下图。

全球定位系统(GPS)+惯性测量单元(IMU)

人类开车,从 A 点到 B 点,需要知道 A 点到 B 点的地图,以及自己当前所处的位置,这样才能知道行驶到下一个路口是右转还是直行。

无人驾驶系统也一样,依靠 GPS + IMU 就可以知道自己在哪(经纬度),在朝哪个方向开(航向),当然 IMU 还能提供诸如横摆角速度、角加速度等更丰富的信息,这些信息有助于自动驾驶汽车的定位和决策控制。

Apollo 的 GPS 型号为 NovAtel GPS-703-GGG-HV,IMU 型号为 NovAtel SPAN-IGM-A1。

感知传感器

相信大家对车载传感器都耳熟能详了。感知传感器分为很多种,包括视觉传感器、激光传感器、雷达传感器等。视觉传感器就是摄像头,摄像头分为单目视觉,双目(立体)视觉。比较知名的视觉传感器提供商有以色列的 Mobileye,加拿大的 PointGrey,德国的 Pike 等。

激光传感器分为单线,多线一直到 64 线。每多一线,成本上涨 1 万 RMB,当然相应的检测效果也更好。比较知名的激光传感器提供商有美国的 Velodyne 和 Quanergy,德国的 Ibeo 等,国内有速腾聚创。

雷达传感器是车厂 Tier1 的强项,因为雷达传感器已经在汽车上得到了广泛使用。知名的供应商当然 是博世、德尔福、电装等。

硬件部分总结

组装一套可以完成某项功能的自动驾驶系统需要及其丰富的经验,并且要对各传感器的性能边界及控制器计算能力了如指掌。优秀的系统工程师能在满足功能的要求下将成本控制在最低,使其量产、落地的可能性更大。

软件

软件包含四层:感知、融合、决策、控制。

各个层级之间都需要编写代码,去实现信息的转化,更细化的分类如下。

实现一个智能驾驶系统,会有几个层级:

感知层 → 融合层 → 规划层 → 控制层

更具体一点为:

传感器层 → 驱动层 → 信息融合层 → 决策规划层 → 底层控制层

各个层级之间都需要编写代码,去实现信息的转化。

最基本的层级有以下几类:采集及预处理、坐标转换、信息融合。

采集

传感器跟我们的 PC 或者嵌入式模块通信时,会有不同的传输方式。

比如我们采集来自摄像机的图像信息,有的是通过千兆网卡实现的通信,也有的是直接通过视频线进行通信的。再比如某些毫米波雷达是通过 CAN 总线给下游发送信息的,因此我们必须编写解析 CAN 信息的代码。

不同的传输介质,需要使用不同的协议去解析这些信息,这就是上文提到的「驱动层」。 通俗地讲就是把传感器采集到的信息全部拿到,并且编码成团队可以使用的数据。

预处理

传感器的信息拿到后会发现不是所有信息都是有用的。

传感器层将数据以一帧一帧、固定频率发送给下游,但下游是无法拿每一帧的数据去进行决策或者融合的。为什么?

因为传感器的状态不是 100% 有效的,如果仅根据某一帧的信号去判定前方是否有障碍物(有可能是传感器误检了),对下游决策来说是极不负责任的。因此上游需要对信息做预处理,以保证车辆前方的障碍物在时间维度上是一直存在的,而不是一闪而过。

这里就会使用到智能驾驶领域经常使用到的一个算法——卡尔曼滤波。

坐标转换

坐标转换在智能驾驶领域十分重要。

传感器是安装在不同地方的,比如毫米波(上图中紫色区域)是布置在车辆前方的;当车辆前方有一个障碍物,距离这个毫米波雷达有 50 米,那么我们就认为这个障碍物距离汽车有 50 米吗?

不是的!因为决策控制层做车辆运动规划时,是在车体坐标系下完成的(车体坐标系一般以后轴中心为 O 点),因此毫米波雷达检测到的 50 米,转换到自车坐标系下,还需要加上传感器到后轴的距离。

最终所有传感器的信息,都是需要转移到自车坐标系下的,这样所有传感器信息才能统一,供规划决策使用。

同理,摄像机一般安装在挡风玻璃下面,拿到的数据也是基于摄像机坐标系的,给下游的数据,同样需要转换到自车坐标系下。

自车坐标系:拿出你的右手,以大拇指 → 食指 → 中指 的顺序开始念 X、Y、Z。然后把手握成如下形状:

把三个轴的交点(食指根部)放在汽车后轴中心,Z 轴指向车顶,X 轴指向车辆前进方向。

各个团队可能定义的坐标系方向不一致,只要开发团队内部统一即可。

信息融合

信息融合是指把相同属性的信息进行多合一操作。

比如摄像机检测到了车辆正前方有一个障碍物,毫米波也检测到车辆前方有一个障碍物,激光雷达也检测到前方有一个障碍物,而实际上前方只有一个障碍物,所以我们要做的是把多传感器下这辆车的信息进行一次融合,以此告诉下游,前面有一辆车,而不是三辆车。

决策规划

这一层次主要设计的是拿到融合数据后,如何正确做规划。规划包含纵向控制和横向控制:纵向控制即速度控制,表现为什么时候加速,什么时候制动;横向控制即行为控制,表现为 什么时候换道,什么时候超车等。

软件长什么样子?

自动驾驶系统中的部分软件看起来和下面类似。

软件的名字反映了该软件的实际作用:

app_driver_camera:摄像机驱动

app_driver_hdmap:高精度地图驱动

app_driver_ins:惯导驱动

app_driver_lidar:激光传感器驱动

app_driver_mwr:毫米波传感器驱动

app_fusion_freespace:自由行驶区域融合

app_fusion_lane:车道线融合

app_fusion_obstacle:障碍物融合

app_planning&decision:规划决策

然而实际上攻城狮们会编写一些其他软件用于自己的调试工作,比如记录数据和回放数据的工具。

还有用于传感器信息显示的可视化程序,类似下图的效果。

掌握了软件的思路,那么我们来看你都要做哪些准备。

准备

操作系统安装

既然是做软件,首先得有个操作系统。常见的操作系统 Windows/Linux/Mac...(打...的操作系统我也没用过),考虑到社区支持、开发效率,推荐使用 Linux 作为无人驾驶研究的操作系统。

大部分做无人驾驶的团队都用的 Linux,跟着大趋势走,可以省很多事。

Linux 又分为很多版本,最常用且普及率很高的当属 Ubuntu 系列。虽然 Ubuntu 已更新至 17.04,但从稳定性上,推荐安装 14.04 版本。

Linux 基本指令

作为 Linux 的核心——命令行操作不仅对开发大有帮助,而且是装 X 利器。另一个好处是使用指令 apt-get install,可以快捷地完成很多软件的安装,不用像 Windows 那样,在网上四处寻觅适配的安装包。Linux 的指令很多,而且比较杂,使用起来需要多学,多用。

开发环境安装

开发环境会涉及很多实际使用的库,不同的程序员处理相同的问题,可能使用不同的库。下面通过安装我在工作和学习中经常使用到的库,抛砖引玉,将开发者「引进门」。

搭建环境所需安装包:

附:开发环境介绍

集成开发环境 IDE

前面安装了一款开源的 IDE qt,目前 qt 在 Linux 中的地位,就和 Visual Studio 在 Windows 中的地位一样。除非是不使用 IDE 开发的高玩,大部分在 Linux 下做开发的团队还是会选择用 qt 开发的。

qt 的主要作用是做交互式的界面,比如在界面中显示当前传感器采集到的各种信息。界面交互会明显加快开发者调试程序和标定参数的过程。

Tips:

熟悉 qt 可以网上找教程,我更推荐系统地学习,比如买一本 Qt 的书。

买书或者去图书馆借书,注意看写书的日期,越新越好,太老的书,相应的版本也很旧。

OpenCV

OpenCV 是一个非常强大的库,其中封装了大量的可应用于无人驾驶研究的函数,包括各种滤波器算法、特征点提取、矩阵运算、投影坐标转换、机器学习算法等。

当然最重要的是,它在计算机视觉领域的影响力,相机标定,目标检测、识别、跟踪的接口使用起来十分方便。使用 OpenCV 库完全可以做出这张图展现的效果。

Tips:

请至少购买版本为 2.4 以上的教程学习 OpenCV,但目前市面上买得到的 OpenCV 中文教程都讲的太浅,甚至连经典的 Kalman Filter 都不介绍。我推荐直接学习英文版的 Learning OpenCV3。

奉上电子版,讲解很详细,每次打印一章阅读,循序渐进。

libQGLViewer

libQGLViewer 是大名鼎鼎的 OpenGL 适配 qt 的一个库,编程接口及方法与 OpenGL 大同小异,我们经常在各大无人驾驶公司宣传画上看到的环境感知信息的显示,就完全可以用 QGL 做出来。

Tips:

学习 libQGLViewer 不需要购买任何教材,官网及压缩包内的 example 就是最好的老师,按照官网的tutorial,把每个例子实现一遍,就基本入门了。

官网链接:libQGLViewer Home Page

Boost

Boost 库是有着「C++准标准库」之称。这个库里面有大量的「轮子」,对于 C++ 开发者来说,方便直接调用,避免重造「轮子」。

Tips:

Boost 是基于标准 C++ 开发,其构造用尽精巧手法,不要贸然费时研读,找一份和 Boost 库相关的(电子或纸质)书,把目录读一遍,大致知道里面有哪些功能即可,需要时就某一个点,花时间做研究。

QCustomplot

除了上面提到的 libQGLViewer 外,还可以通过平面图的形式显示车载传感器的信息。鉴于 qt 内部只提供了基本的直线、圆等绘图工具,使用起来并不是很方便,因此 QCustomplot 诞生了。简单地调用 API,然后把想要显示的数据作为参数输入进去,就可以绘制出下面这些很棒的图形。而且可以很方便地拖动和缩放。

下面是我在实际开发过程中,使用 QCustomplot 显示的部分传感器信息。

Tips:

官网提供了该库的源码下载,你只需要在你的工程中导入 .cpp 和 .h 文件即可。跟着官网提供的 tutorials 学习,可以快速上手。对照着 example 中的例程写代码,可以快速把自己的数据变成可视化图像。

LCM(Lightweight Communications and Marshalling)

团队开发软件必然存在程序(多进程)的通信问题,多进程通信的方式很多,也各有优缺点,使用起来就见仁见智了。2014 年 12 月 MIT 公布了他们在美国 DARPA 机器人挑战赛中使用到的信号传输机制 LCM,出处:MIT releases LCM driver for MultiSense SL。

LCM 含多种语言如 java,c++ 等专门针对实时系统在高带宽和低的延迟的情况下进行消息发送和数据封送处理。它提供了一个发布/订阅消息模型、自动封装/解封代码生成工具含多种编程语言版本。这个模式和 ROS 现在节点间的通信方式很类似。

Tips:

LCM 两个进程间通信的 demo 官网上有源代码,按照官网上的 tutorial 就能快速建立属于你自己的 LCM 通信机制。

Git & Github

使用 Git 可以极大地提高多人开发的效率,而且版本管理规范,代码追溯起来十分方便。

Github 在软件开发领域如雷贯耳,需要某些代码时,直接上去搜索即可。

Tips:

目前世面上介绍 Git 的书,让人看起来十分吃力,而且对细枝末节的东西介绍地太过深入,让人无法快速上手。

于是我要强烈推荐 Git 入门的教程:廖雪峰的 Git 教程,浅显易懂,而且还配合图文+视频,简直良心。

以上基本介绍完了,掌握好这些东西,你就变成无人驾驶领域的老司机了。

THE END
0.消防安全宣传(三)几类常见灭火器的灭火原理和使用方法 一、二氧化碳灭火器灭火原理和使用方法是什么? 二氧化碳灭火剂是一种具有一百多年历史的灭火剂,价格低廉,获取、制备容易,其主要依靠窒息作用和部分冷却作用灭火。二氧化碳灭火器主要用于扑救贵重设备、档案资料、仪器仪表、600伏以下电气设备及油类的初起火灾。在使用时,应首先将jvzq<84yyy4489iqe0ipo8hqpvkov85;1383986513;789;a346:9@790unuou
1.汽车组成结构是怎样的?汽车基本组成结构详解二、底盘1、概述 汽车底盘是支撑和安装汽车发动机及其各种零部件和总成的零件。底盘一般是汽车动力相互作用的地方。它接收来自发动机的动力,通过底盘的部件传递给车轮,保证汽车的正常行驶。 2.底盘组成 底盘由传动系统、行驶系统、转向系统和制动系统四部分组成。形成了整车动力传输系统。 jvzquC41yy}/rlfwvq4dqv3ep1pyym45:9905A<5;6>30qyon
2.幼儿园中班社会教案乘坐公共汽车(精选17篇)师:小朋友,公共汽车来了,让我们一起坐着公共汽车出发吧! 师:坐车的时候要注意坐稳扶好哦!到站了,请小朋友找一个舒服的.位置坐下来吧。 二、基本部分:引导幼儿围绕公共汽车展开讨论,讲述自己认识的公共汽车。 1、说一说自己认识的公共汽车。 师:刚刚我们坐的是什么车过来的?公共汽车是什么样的?(鼓励幼儿大胆的jvzq<84gfw4zlk~u0eun1‚twlkgp|jtlkcu03<;9:34ivvq
3.制造技术实习报告5篇铸型:一般由上型、下型、型芯、浇注系统等几部分组成,浇注时容纳液态金属,冷去后形成铸件。 5、略 6、 7、右面铸件在不同生产批量时各应采取什么造型方法? 1)单件、小批采用 手工造型; 2)成批、大量采用 机器造型。 8、 9、写出铸件的分类缺陷: jvzquC41okv/qq6220ipo8f142822?454:>7293jvor
4.汽车维修工成果转化能力考核试卷含答案.docx1.汽车发动机的点火时机对发动机性能有重要影响,以下哪种情况下点火时机应提前?() A.发动机负荷较大时 B.发动机负荷较小时 C.发动机转速较低时 D.发动机转速较高时 2.在汽车维修中,下列哪个部件属于易损件?() A.发动机缸盖 B.发动机曲轴 C.发动机活塞环 D.发动机气门 3.汽车制动系统的主要作用是?() A.增jvzquC41yy}/tnstgpjpe7hqo1vbrnw16;794;5:40nuou
5.市场营销策划方案13篇产品策略直接影响和决定其他市场营销组合策略,对企业营销的成败和目标的实现起到巨大的作用,在现代市场经济条件下,每个企业应致力于产品质量的提高和组合结构的优化,更好的满足市场的需要,取得较好的经济效益。 1、资源整合,产品外包策略 某酒店在20xx年开业之初,依照自身的市场定位,为顾客提供了多种休闲度假的产品服务jvzquC41yy}/qq6220ipo8jkenbpp48;:<:2;3jvor
6.冬季交通安全教育主题班会案例(通用17篇)2、认识了红绿灯,我们还要知道自己应该走哪条路,这就要知道每条路的名称。孩子们,看看这个十字路口,你认识这些道路吗?(人行道、非机动车道、汽车道) (三)初步了解常见交通标志的作用(出示交通标志)在车辆穿梭的马路上,除了信号灯这个交通标志外,还有很多交通标志,这些交通标志都有什么用呢? jvzq<84yyy4vpsx0eqs0hjsygp}bpp4|knobq8:6;4860qyon
7.人教版美术教案第七册(全册)教师提问:这些车的主体形象有什么特点? (简笔画板书)汽车都是由车头车身和车轮组成 3游戏:组装汽车 教师提出要求:请小朋友以四人小组为单位,用几何图形纸片进行汽车组装竞赛,看哪个汽车厂设计的种类最多 小组汇报说说设计了哪几种汽车? (二)要点辅导(构思创意) 1教师:汽车给人们的生活带来了方便,但有利必有弊(jvzq<84yyy4489iqe0ipo8hqpvkov86512;1:86613657?84a4>4:@86474tj}rn
8.各个的行业内幕你知道多少?51.我给大家暴个超牛的, 红木家具 知道吧, 按照规定,红木家具是不能打钉子的,所有的红木家具都应是传统的契卯结构(就是古代那种不用钉子,尺寸完美对接那种),打钉子会使红木家具严重贬值。但现在家具城的红木家具大部分都是内部打过钉子的,我是专修家具的,这一点我很清楚,以后大家如果想买红木家具千万别听服务jvzq<84yyy4489iqe0ipo8hqpvkov8651272385;13;549=9a4;:6A=:764tj}rn
9.信息量超大!卢安平重磅发声股票巴菲特公募基金14、股票组合会分散投资到十几个不同的行业,但最后主要回报往往会集中在几个少数领域,买20只股票,主要盈利会来自于其中20%的股票,大概就3到5只股票,二八效应似乎在各行各业都存在。 15、成功的投资者可以理解透几个行业就够了,不需要也不可能理解所有的行业,关键是这几个行业的池子里要有大鱼。我们过去选基金jvzquC41yy}/3?80eqs0f‚4ctvodnn4KF6VFD?X2756ONL>0jvsm
10.村干部述职报告(15篇)我任职做得第一件事就是参与村级规范化建设,增强村党组织的领导核心作用,理顺村党组织与村委会的关系,强化村级工作的日常管理,加强对村级工作的监督与考评,增强党组织领导农村工作的能力和水平,加快全面建设小康社会和构建社。 三、深入村社,了解基本情况。 jvzq<84yyy4rwwqw0ipo8xjw|njdjticq523A7430nuou
11.美国实际利率持续为负之“谜”周期性因素:疫情和通胀的双重作用 由于实际利率是TIPS隐含收益率的这个特性,意味着实际利率会受到增长和通胀环境的双重影响。 1)增长:2020年3月疫情爆发后,几轮疫情的升级都对应着实际利率快速下行,例如2020年6月初-7月末、2020年11月初-2021年1月初、2021年6月中-2021年8月初等均是如此。 jvzquC41ycrmu}wggvio0lto1cxuklqgu19769636
12.脑筋急转弯5000题分享脑筋急转弯5000题目及答案盆里有6只馒头,6个小朋友每人分到1只,但盆里还留着1只,为什么? 答案:最终一个小朋友把盆子一齐拿走了 汽车在右转弯时,哪只轮胎不转? 答案:备用胎 茄子的外号是什么? 答案:蔬菜 请龟兔赛跑,请猪来当裁判,请问龟兔谁会赢? 答案: 不能说!说的人是猪。 请问世界上最小的岛是什么岛? 答案: 安全岛 请jvzquC41o0gmk;650pku1wjyu1mm4;551:666B<0jvsm
13.*铝燃料电池*收集TeacherJing实际上是一种在催化剂的催化作用下发生化学反应而产生电能的一种化学电源,是铝电解的逆过程。 实际发电电池是铝燃料电池与辅助电池(锂电池或镍氢电池)组成的混合系统,图1即为非常新能源有限公司的这样模式,其特点是:利用铝燃料电池比能量大的特点,以它作为能源包,贮存携带能量,恒功率输出,使用后整体更换;发挥镍-jvzquC41yy}/ewgnqiy/exr1Vggdjnw/Lkth1y4973?25B3jvor
14.别装了你家的电动车底盘也长这样!3.将部分电池置于车内座椅和地台下方 这样的做法确实能避免前面提到的问题,但必然也会挤压到乘员舱的空间,像理念VE-1,由缤智改造而来,后排乘坐和后备厢的空间表现,与缤智相比还是有较大差距。 理念VE-1后排乘坐空间 除了上面说的这些以外,燃油车底盘本身是按照原先的自重承受上限设计的,而电动车自身重量要比燃油车jvzquC41i0vdqwqkpg4dqv3ep1pyym4366803=9477<80qyon
15.通俗易懂的pid知识PID控制详解:原理应用与参数调整第一部分 啥是PID? PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。PID已经有107年的历史了。它并不是什么很神圣的东西,大家一定都见过PID的实际应用。比如四轴飞行器,再比如平衡小车还有汽车的定速巡航、3D打印机上的温度控制器就是类似于这种:需要将某一个jvzquC41dnuh0lxfp0tfv8yleyz32:61ctzjeuj1fgzbkux134?:3B993
16.大唐杯题库(300道)(一)大唐杯题目c,支持1各100M5G频宽和60M4G频宽 D.支持4个eCPRI接口 E.支持1个eCPRI接口和3个CPRI接口 5.305, 5G室分建设的特征的数字化指的是。 【多选题) A、网络结构数字化 B、运维数字化 c.业务数字化 D、建设数字化 6. 306, 5G系统中终端共有哪些状态? 【多选题] jvzquC41dnuh0lxfp0tfv8vsa6;74A;421gsvrhng1jfvjnnu1728?<4637
17.小学生超级简单的谜语(附答案)7、什么东西越热越爱出来? 答案:汗 8、汽车在右转弯时,哪一条轮胎不转? 答案:备用轮胎 9、用椰子和西瓜打头哪一个比较痛? 答案:头比较痛 10、孔子与孟子有何不同? 答案:孔子的子在左边,孟子的子在上边 小学生超级简单的谜语【篇2】 1、什么东西晚上才生出尾巴呢?(答案:流星) jvzquC41yy}/z~jzkng/exr1{w5nk‚z1e3>67A930jznn