用树莓派打造远程监视小车

作者: ymengyue | 来源:发表于2016-11-14 19:39 被阅读315次

    今年6月份时做了一份关于小车远程控制的教程,放在book.52robot.org上面。然后在我们的52Robot社区QQ群里面,有朋友想在小车的基础上实现远程监控。正好最近有时间,就把之前的小车代码进行了更新,让其实现远程监控。

    我们先看下客户端效果图:

    客户端

    实现原理

    • 小车服务端启动一个capture的线程,它负责每隔0.1s将摄像头的快照放到redis缓存里面。

    • 服务端里面加入一个新的路由 /video_feed,当客户端通过http协议访问此连接,服务端会将redis里面的摄像头快照返回给客户端。

    • ionic编写的客户端里面用js写了一个轮询的定时器,每隔0.1s去向服务端的/video_feed请求图片。

    难点和新功能

    现在回头看上面的这些感觉很容易,但是我在实际写代码的过程还是遇到了不少难点,下面总结下:

    • 摄像头调用:最初没用redis去做缓存,每次服务端被请求数据,都会去请求摄像头读取快照。这种设计发现会造成延迟大,而且频率高的情况下,由于http是异步的,会造成多个线程同时调用摄像头设备,从而造成阻塞。

    • ionic内图片的更新:由于地址是固定的,在ionic的js里面写好代码后进行测试时,发现图片是无法更新的,一直使用的最初的第一张图片。后来通过Google在stackoverflow.com上面找到答案,那就是在图片地址后面加个时间戳参数,这样就不会触发ionic的本地缓存机制了。

    小车的下一步改造

    大家看上图会发现有个自动避章功能,这个最初是我用声波测距模块通过硬编码,让小车发现左前方和右前方的障碍物距离实现避章。下一阶段的目标是通过人为操作小车采集测距模块的数据,然后交由机器学习的程序让小车实现自动避章。

    项目地址

    服务端github地址 | 客户端github地址

    关注我们了解更多原创文章

    52Robot社区-二维码.jpg

    相关文章

      网友评论

        本文标题:用树莓派打造远程监视小车

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