美文网首页
Udacity-datasheet of self-drivin

Udacity-datasheet of self-drivin

作者: Drogo_1b5b | 来源:发表于2018-09-11 23:06 被阅读0次

    (还存在图片上传失败的问题,暂时先懒得管了emmm)
    最近在实验室在做基于深度学习的无人机的自主飞行控制,建立的神经网络模型需要一些数据集训练,所以就找到了Udacity开源的无人驾驶数据集(既然都是自动运行的系统,所以可以有通用性)

    环境:ubuntu16.04

    数据集地址:

    https://github.com/udacity/self-driving-car

    这个数据集是rosbag的格式,解析rosbag也是一个挺难的东西吧(反正我没搞出来),以下是几种方法

    一、使用ros中自带的lunch工具

    二、使用matlab

    以上两部分先占个坑,暂时还不想写(反正此路不通)

    然后进入正题,善良的(划掉)Udacity给我们提供了一个用于解析这个ros包的脚本,名为udacity-driving-reader,我去好感动(划掉)是不是,好贴心还给了我们脚本!(见以下链接)

    https://github.com/rwightman/udacity-driving-reader

    天真的人类 ----不知道出自谁

    接下来仔细讲一下这个的配置过程以及其中的坑:

    三、进入正题

    step1:“reader”的官方文件以及docker的安装

    在github的README中,对于这个包的使用方式是这样的:

    [图片上传失败...(image-b91e53-1536678333895)]

    这是个什么意思呢,简而言之就是要想解析rosbag包必须在ros环境里面(理论上说matlab也是可以的),因此这个大佬在docker容器中虚拟的ros环境以及配置该文件所需的其他环境(PS:不知道docker为何物的移步:[https://blog.csdn.net/abcdocker/article/details/53158210])

    我假定你看了这个链接以后已经知道如何安装docker了(事实上也并不难,我在这一步并没有遇到什么问题,真正的挑战还在后面(吐血))

    step2:真正开始运行指令

    docker配置好以后,cdbuild.sh路径之下,就可以开心的运行下面的代码:

    ./build.sh

    我在这一步遇到了如下问题:

    [图片上传失败...(image-17ad66-1536678333895)]

    查了之后是没有给docker命令root权限,在前面加一个sudo就好了,即:

    sudo ./build.sh

    然后会出现如下结果,这是在配置docker环境(实际上这个过程极慢,要执行如图所示的六步,只不过是我之前执行过):

    [图片上传失败...(image-cfe3b2-1536678333895)]

    这样一个用于运行该脚本的docker容器就搞定了。

    好戏还在后头

    step3:shall we begin?

    (PS:这部分的begin是为了本次配置最大的bug而致敬,顺便致敬龙妈(有人知道这句台词吗2333))

    如github所示,要想得到图像集以及其标注,需要运行这个代码:

    ./run-bagdump.sh -i /data -o /output

    ok,那我们开开心心运行一下吧!

    等会,这个命令的参数是啥??

    这个在另一个github项目中(也是Udacity的github(只不过我暂时找不到了))有解释:

    /data 是rosbag文件在计算机里的绝对路径(注意这个路径下面有且只能有一个bag文件)

    /output是你想要输出的结果的绝对路径

    妥~这个问题搞定了,接下来我们运行代码(记得还是要加sudo

    报错

    [图片上传失败...(image-f63ea0-1536678333894)]

    好吧这不是大问题,我之前配置的时候也没有遇到,是为了写博客重新跑了一遍代码,不小心搞错了(这个图片不直观,这个的意思是只运行了代码,没有输出任何结果(没有遇到这个问题的自行忽略!!))。

    出现这个的原因是路径不对,没有相应的文件夹。

    虚惊一场

    改正错误以后,继续运行代码

    报错

    [图片上传失败...(image-4478d1-1536678333894)]

    唔这个问题的出现,代表着你遇到了一个坏消息,一个好消息:

    好消息是你之前的配置都是对的;坏消息是这个问题很棘手(好吧其实找到方法以后也很简单)

    step4:处理问题

    我不知道熟悉python的人遇到这个问题怎么搞,总之我这个小白最先想到的是这个dateutil的版本对不对,好吧不管对不对吧,先下载一个他要求的版本再说:

    pip install python-dateutil==2.5.0

    安装好并没有什么用....错误依然,所以怎么办呢,看看这个run-bagdump.sh里面的代码:

    [图片上传失败...(image-554cc8-1536678333894)]

    可以看到,这个是要调用一个叫bagdump.py的python脚本,所以我们尝试从源代码方向解决问题。

    (我才不会告诉你我把pandas给注释掉了)

    事实证明这个办法是有点用的,把pandas注释掉以后,这个脚本可以运行一半——图片提取出来了,但是标注提取不出来

    (废话,源代码的重要的一个库被注释掉了,怎么可能能搞定!)

    我们看一下代码:

    [图片上传失败...(image-a39c78-1536678333894)]

    这里pandas的作用是将标注提取出来,并输出到CSV——(我有一个想法,是否能用numpy实现这个功能,显然我没有实现....(哪位大佬要是搞定了给我说说哇))

    step5:搞定了!

    以上这些过程我用了三天你敢信?

    我们继续回到这个github,在issue里面有这样一个问题:

    [图片上传失败...(image-554a76-1536678333894)]

    哇塞这不就是我的问题?!

    解决方案是:

    在dockfile中加入如下代码:

    #update pandas RUN pip install python-dateutil==2.5.0

    显而易见了,这是要在docker环境里面构建dateutil的2.5.0版本,改了以后重新build,会发现在之前build的基础上确实install了一个dateutil 2.5.0

    重新执行run,执行成功,如下图所示:

    [图片上传失败...(image-fae8c2-1536678333894)]

    [图片上传失败...(image-82d6e3-1536678333894)]

    当出现这两个图片的时候,就意味着这个reader终于运行成功了,rosbag包终于解析出来了!

    贴图

    [图片上传失败...(image-44d5b4-1536678333894)]

    最后

    其实不是什么大问题了,但还是写出来吧:

    这个是只读的文件,要运行如下命令才能去掉上面那个锁子:

    [图片上传失败...(image-534156-1536678333894)]

    相关文章

      网友评论

          本文标题:Udacity-datasheet of self-drivin

          本文链接:https://www.haomeiwen.com/subject/jqipgftx.html