基于深度学习的自动避障小车_6_避障

Introduction

尽管本专辑的大标题是“基于深度学习的XX”,但是由于深度学习模块不是我做的,在本专辑中不会详细说明,只在本文中简单带过。以后会逐渐发布自己学习深度学习的一些总结。本文主要说明了此项目中超级简陋的避障算法的设计。

raspberrypi基于深度学习的自动避障智能小车_目录

1. 运行

c_socket = ControlSocket(pi_ip)
# 通过socket控制小车的进程
socket_process = Process(target=socket_work, args=(c_socket,))
socket_process.start()
def socket_work(c_socket):
    global_direction = 0
    c_socket.get_pic('test.jpg')
    while 1:
        cmd, is_run = control_cmd(global_direction)
        print("cmd, is_run", cmd, is_run)
        if cmd == 'cannot':
            print('cannot move')
            break
        elif cmd == 'finish':
            print('We have finished')
            break
        else:
            c_socket.move(cmd)
            if cmd == 'left':
                global_direction -= 1
                if is_run:
                    c_socket.move('forward')
            elif cmd == 'right':
                global_direction += 1
                if is_run:
                    c_socket.move('forward')
            c_socket.get_pic('test.jpg')

单独的进程执行socket_work函数。

2. 调用外部深度学习框架

在函数control_cmd里,

    p = subprocess.check_output([darknet_path_root + '/darknet', 'yolo', 'test', darknet_path_root + '/tiny-yolo.cfg',
                                 darknet_path_root + '/tiny-yolo.weights', './test.jpg'])

通过单独的进程调用darknet框架,队友设置的输出结果是前两行为图片的宽度和高度,然后接下来,每行开始是识别出的物体类别,紧接着是这个物体在图片中的左右边界。

darknet做到的是识别出物体,并用长方体框出来。

在这个项目里,简单的设置了人作为目标物体,瓶子作为障碍物,(所以实际上如果视野中出现了多个人,是会影响判断的。。。)

3. 避障

将图片纵向划分成了三部分,以1/3 、2/3为中间的界,划分了三块,并依次编号为1,2,4。(本来初衷是想利用二进制处理,但是最后赶时间,也没有用二进制实现,实际上,还是用的大量if-ellse)

st=>start: 接收拍的照片
cond=>condition: 目标物体在视线里?
targ_is_7=>condition: 目标物体没有占满视线?
e=>end
rotate=>operation: 调整角度
judge1_if=>condition: 目标物体单独占了一个block?
judge1=>operation: judge_barriers_1函数
judge2=>operation: judge_barriers_2函数


st->cond->targ_is_7->judge1_if
cond(yes)->targ_is_7
cond(no)->rotate->e
targ_is_7(no)->e
targ_is_7(yes)->judge1_if
judge1_if(yes)->judge1->e
judge1_if(no)->judge2->e


避障代码比较丑陋而且比较长,自行调到github查阅源码吧。。主函数是control_cmd

避障部分代码

路漫漫其修远兮,吾将上下而求索

文章若未注明转载皆为原创,如需转载请注明出处FindHao博客及文章链接,文章markdown格式源码现已开放,欢迎转载。文章源码地址:

分享到:

You may like..(由于采用了谷歌的推荐系统,需要对本站关闭广告过滤~)

Find

新浪微博(FindSpace博客)QQ群:不安分的Coder(375670127) 不安分的Coder

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*