基于OPenWrt的移动机器人设计

描述

OpenWrt 可以被描述为一个嵌入式的 Linux 发行版,(主流路由器固件有 dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。

近年来随着人工智能技术、计算机技术等相关技术的发展,对移动机器人的研究越来越广泛。本设计是采用OpenWrt操作系统的移动机器人,它可实现多种不同功能,如探测险情、巡视、图像采集、定位、无线通信等。它还可以作为各种智能控制方法(包括动态避障、路径规划、群体协作策略)的良好载体,开展研究。

1 系统方案

采用2层架构。上层以ARM处理器64位ARMCortex-A72核心,选用ls1046处理器作为上层的主板,负责图像采集,并将图像通过Wi-Fi方式发送给远端的PC机。Wi-Fi无线通信是利用PC机与无线路由器搭建环境平台共同实现的。

下层是以51单片机为核心的单片机控制板,由51单片机及外围电路组成。下层主要负责机器人移动控制,传感器数据处理。51单片机通过I/O口输出PWM信号控制直流电机的转速和转向,实现机器人的前进、停止、左转和右转。单片机接口电路上挂接了1个超声波测距模块、1个人体红外感应模块、1个步进电机模块。超声波测距模块用来实现机器人避障。在嵌入式智能的前端安装了一个步进电机,而超声波测距模块安置在步进电机的转轴上,步进电机不停地来回转动,超声波测距模块也随之转动。这样用1个超声波测距模块就可实现多方位测距,从而减少了超声波测距模块的数量。

机器人主要由硬件系统和软件系统构成。硬件系统主要包括:ARM处理器、单片机、外围接口电路、机器人底盘以及电源等。其中ARM处理器是上层的核心,51单片机是下层的核心。软件包括:嵌入式Linux操作系统、外设驱动程序、Linux应用程序以及单片机应用程序等。系统没有选用通常的嵌入式Linux版本,而是另辟蹊径,选用一种独特的嵌入式Linux发行版之一OpenWrt作为操作系统。OpenWrt提供了一个完全可写的文件系统及软件包管理,它通过简单易用的方式,降低了嵌入式Linux开发的门槛,提高了系统软件开发的效率。

嵌入式智能移动机器人的工作流程为:传感器模块实时采集周围环境信息,将此数据信息传输到机器人控制系统中,单片机通过数据分析获取有效数据,从而获知机器人与障碍物的相对位置,然后根据此位置信息产生控制信号;单片机产生PWM信号控制直流电机来控制机器人转向,从而达到机器人自主“行走”的目的。下层的单片机与上层的ARM处理器通过串口来通信,ARM主板可将下层单片机控制板的工作数据通过无线Wi-Fi的方式传输到远端的PC机。ARM主板可以不间断地将USB摄像头采集的清晰现场图片发给远端的PC控制终端。

对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。

Linux世界很大,大到无从谈起。OpenWrt仅仅是一个嵌入式的Linux发行版。

2004年生长出来了OpenWrt。2005年到2007年,最初的稳定版叫WhiteRussian,之后的Kamikaze延续到2010年,Backfire到2013年,随后AtTItude Adjustment发布,而最新版的Barrier Breaker也已经在持续开发中,据称将很快发布。它的前身的前身,是UNIX,一步步发展过来,慢慢觉醒……是不是有种“天网”要粗线的感觉!

OpenWrt 上有哪些好玩的 App ?

首先,openWRT能实现的一些稍微比较主流的功能上来说吧。

无线审计

脱机下载

无线音响

影印共享

部署服务器(博客社区等)

特殊拨号(锐捷,H3C,等一些奇葩认证)

无线监控

翻越长城

无线打印共享

当然还有一些灰主流的玩法,比如广告过滤,部署KMS激活微软的产品,驱蚊器,WEB计费认证;还有进阶型的WRTnode,遥控智能小车之类的。

插件(也就是你说的APP):

一,无线审计

airodump-ng

reaver

tcpdump

port-mirroring

(这个需要一块额外的硬件如传说中RTL8187L USB无线网卡 )

二,脱机下载

thunder-xware(迅雷下载)

transmission

Aria2

三,无线音响

kmod-usb-audio

install alsa-uTIls

shairport

MPDroid

(额外需要一张USB声卡)

四,影印共享

xmlrpc

dlna

Airplay

samba36-server

五,部署服务器

vsftpd

lighttpd

php5-mod-apc

mysql-server

六:特殊拨号

MentoHUST

H3C 802.1x Client

sxplugin

nwan

七,无线监控

webcam

kmod-uѕb2

kmod-video-uvc

kmod-nlѕ-base

kmod-usb-core

kmod-i2c-core

kmod-video-core

kmod-input-core

kmod-usb-ohci

kmod-usb-video

libjpeg

librt

libpthread

八,翻越长城(估计大家对这个的需求要更为迫切一些)

GoAgent [需要先安装python]

openvpn

shadowsocks

dnsmasq

九,无线打印共享

kmod-usb-printer

install luci-app-p910nd

OpenWRT用途

怎么说呢,提起它,或许大家可能还有点陌生,但提起它的兄弟Android来,大概无人不知了吧。作为对比:“OpenWrt具有比肩桌面级Linux和现代移动操作系统(Android)的用户体验,完全回避了传统嵌入式Linux的磨叽和枯燥,使一个小小的路由器真正成为完整的、现代的、开放的计算系统,降低了入门门槛,产生了大量非嵌入式专业的爱好者群体。OpenWrt框架的奠定者们和广泛的代码贡献者们,在桌面级和现代操作系统的理念下,也使OpenWrt成为嵌入式Linux领域个性十足而广受追捧的佼佼者”。

具体点说,凡是路由器能做到的功能OpenWRT都能做到[市面上路由器除了官方固件,第三方固件中主要有OpenWRT(功能最给力)、TT(稳定性不错)和DD(以“中继”出名些)]。OpenWRT进阶的功能:做USB摄像头、挂载移动硬盘/U盘、BT下载、3G上网卡(好吧,这点官方固件也勉强可行了)、单号多拨(这点是否有效要看当地ISP)、绑定域名远程控制、Samba/DLNA家庭NAS共享、私有云同步、FTP、个人网站/服务器等;

高阶的玩法,可改出口IP(你懂的吧,想想出门在外,有个带此功能的便携路由)、阻止DNS污染(还有反过来的玩法)、做编程器、智能机器人的“大脑”(吸取上次投稿失败的经验,不该写的一律不写,嘿嘿)……OpenWrt社区的组织者Gregers Petersen在一次采访中提到,“除了传统的路由器用途,在智能家居主控设备、机器人、飞行器、工业控制设备、voIP设备等很多领域,都有爱好者和商业项目在使用OpenWrt,甚至有爱好者已经完整移植了Android系统并且真正打通了电话。而嫁接到OpenWrt上的Arduino Yun,使大家意识到Linux与物理世界交互一种非常简单的可能性,这赋予了OpenWrt更大的想象空间。在新型智能设备和机器人的热潮中,OpenWrt的价值也越来越得到人们的重视。相比Android系统,OpenWrt被认为是更加适应智能设备和机器人的平台,其直接的原生二进制代码具有更高的计算效率”。

在路由器上安装模块化的Linux发行版,如果这个主意一丁点儿没让你感到兴奋的话,你可能读错了文章。除了可以作路由器,我现在就列出OpenWrt其他一些比较酷的功能。

原文标题:基于OPenWrt的移动机器人系统设计!

文章出处:【微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分