查看原文
其他

Apollo问答丨DAG文件对component的划分基于什么原则?

阿波君 Apollo开发者社区 2022-07-29


自Apollo开发者社区小程序上线以来,我们每一天都会在「社区问答」板块收到许多开发者的技术提问。


每周,可爱的Apollo小姐姐都会精选出被采纳的社区问答进行整理汇总,并统一对大家进行答复。


让我们一起看看本周的精选问答吧~~若你有更好的回答或建议,欢迎留言或加入开发者交流社群一起讨论分享!各位技术大牛也可以到小程序回答问题获得相应积分,参加社区布道师评选。



  ENJOY THE FOLLOWING  




Q:

Apollo编译的时候一直报错,重装了cuda也没有用。


A:

参考链接:

https://forums.developer.nvidia.com/t/cublas-for-10-1-is-missing/71015/6
sudo ln-s /usr/lib/x86_64-linux-gnu/libcublas.so.10.1 /usr/local/cuda-10.1/lib64/libcublas.so.10.1 




Q:

虚拟机下安装的18.04,然后装的Apollo 5.5,最近发现该磁盘空间占用了133G,每加载一次就多了很多缓存,请问怎么清理?试过clean命令,没有作用。

A:

①看一下data里面的log文件夹是不是占了很多空间,是的话清空一下。可以试试通过命令行把data/log这个文件夹清空一下,文件路径是apollo/modules/data/log


②还有data/core里是一些程序中断的核心转储,可以删掉。




Q:

DAG文件对component的划分基于什么原则?在Cyber RT中,同一进程的task是否运算更快?

A:

①基于功能来的。比如说感知DAG里面,有segmentation, recognition和fusion, 他们的运行有紧密的前后依赖关系。同一个DAG 不同component 之间,可以通过共享内存来传递数据。不同DAG就是不同process了吧,就不能共享内存了。


②补充下,DAG只是作为加载的配置文件,至于每个模块的任务优先级是在compute_sched_classic.conf中定义的。共享内存本来就是作为线程间通信的,比如定位和感知模块就是通过共享内存来传递消息的。综上dag只是作为标记划分功能模块,并且记录配置信息的文件。同时还可以用来描述消息的拓扑图结构。




Q:

想用Cyber RT的消息把RTK信息发布出去,怎么设置消息内容?是用API吗?

A:

可以用Python API 也可以写一个Cyber component。Create一个writer。




Q:

想买一些相机传感器,大概13个相机,6个激光雷达,6个毫米波雷达,然后想装在车上,搭载Apollo系统,进行数据采集,如果可以的话后面还想训练模型,在车上实际跑下模型,现在第一步采集的问题,想知道用Apollo适配自己的传感器这个需要怎么做?

A:

首先跟传感器厂家要来Linux的驱动,然后改Apollo的driver,摄像头usb接口一般用usb_cam就可以;激光雷达需要把厂家驱动做一下适配,主要是输出点云要用proto格式输出,参照其他模块继承component类初始化和调度。毫米波一般是can传输,接到can卡就行。



Q:

bash Apollo.sh build的时候加载的package一直是0,什么原因?

A:

检查下网络,“WORKSPACE.in”中的库是否可以下载。




自社区推出问答积分赛活动来,Apollo小哥哥每天在社区交流群中分享开发者的提问,并收到了很多热心的解答,大家互帮互助的精神非常赞!


为了奖励为社区作出贡献的开发者,Apollo小哥哥每周将选出积分榜第一名,送出Apollo定制周边一份~

 

本周积分榜前10名新鲜出炉,快看看自己有没有上榜吧,第一名记得找小哥哥领奖哦~


开发者在使用Apollo平台过程中,如果遇到任何的技术难题,都可以在社区小程序或开发者交流群寻求大神的解答,欢迎大家积极交流!





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存