当前位置:   article > 正文

哇靠靠,这也行?零基础DIY无人驾驶小车(三)_无人驾驶小车怎么制作?

无人驾驶小车怎么制作?

原理:

之前在教程(一)中我们讨论了制作无人驾驶小车的方案,结论是当小车采集到图片之后,通过网络传给笔记本,然后笔记本通过深度学习推理,得出结果,反馈给小车。但是目前通过一些优秀的开源库,将cnn网络优化之后在手机或者树莓派这样的终端上面也有比较好的效果。所以这里真正开始实践的时候,我采用了树莓派的方式,摒弃了笔记本,直接通过树莓派进行图片的采集和深度学习推理,并实时的控制小车的运动。这样的话极大的扩展了无人驾驶小车的便携性。那么重新梳理一下我们无人驾驶小车的原理。

第一步:搭建一个带有摄像头功能的小车

第二步:使用手机或者电脑等进行手动遥控,在手动遥控的过程中,小车自动保存图像和指令

第三步:将小车保存的大量图像和指令导出到电脑上,使用深度学习网络进行训练

第四步:将训练好的深度学习网络导出到小车上,小车就可以实现无人驾驶了

 

小车搭建:

这里使用最普通的四驱亚克力小车底盘 树莓派3B+ 云台  摄像头 电压转换板 锂电池组装一辆小车。如下图所示:

 

编写代码:

首先需要编写小车端的代码(树莓派3B+上的程序)以及电脑端的控制程序

以上程序会开源上传到GITHUB上面。随后会贴出链接。

下面介绍一下程序的主题逻辑

RaspberryCar(小车端程序)

from socket import *
from tcp_package import TcpPackage
from car_control import *

HOST = '' #监听地址
PORT = 60000 #监听端口
ADDRESS = (HOST, PORT) 

def recv_data(socket):
    data = socket.recv(8)
    if data:
        package_recv = TcpPackage(data)
        cmd, value = package_recv.get_package()
        return cmd, value
    else:
        return None, None
        
def send_data(socket, cmd, value):
    package_send = TcpPackage()
    package_send.add_package(cmd, value)
    socket.send(package_send.package)

if __name__ == "__main__":
    car_init()
    print("car init.")
    
    tcp_server_socket = socket(AF_INET, SOCK_STREAM)
    tcp_server_socket.bind(ADDRESS)
    tcp_server_socket.listen(1)
    print("start server...")

    try:
        while True:
            print('waitint for client...')
            client_socket, client_address = tcp_server_socket.accept()
            try:
                while True:
                    cmd, value = recv_data(client_socket)
                    print("recv cmd:%d value:%d"%(cmd, value))
                    if cmd <= 4:
                        car_moving(cmd, value)
                        send_data(client_socket, cmd, value)
                        pass
                    else:
                        pass
            finally:
                client_socket.close()
    finally:
        tcp_server_socket.close()
        car_uninit()

效果展示:

手动控制小车

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1002082
推荐阅读
相关标签
  

闽ICP备14008679号