技術雜談 之 室內導航
這兩年AI很火熱,各種無人駕駛、機器人、無人機層出不窮,新零售也是AI的一個很熱的方向。AI與新零售的結合現在也有不少案例了,比如京東X無人超市、超嗨的智能購物車等等。在大型百貨商場或者超市,有一個很典型的場景就是室內導航,比如查詢一個你不知道具體位置的品牌店鋪、尋找一個不知道擺放在哪的商品。本篇就粗略的介紹一下這種室內導航所涉及的技術。
背景
在說室內導航之前,先來聊聊室外導航技術那些事。室外的導航現在已經用的很廣泛了,各種汽車導航、XX地圖、位置共享服務等等。主要使用的技術就是GNSS,Global Navigation Satellite System,全球導航衛星系統。這種系統比較知名的就是,美國的GPS,俄羅斯的GLONASS,歐盟的GALILEO 以及 我們自己的 北鬥,其他還有日本啊、印度啊之類的。那這麽多的衛星跟定位有啥關系呢?
簡單的來說,就是多個衛星同時向一個接收器發送信號,這個接收器通過計算接收信號的距離(算法有很多,比如通過接收的時間差來計算;或者信號角度計算)以及衛星的位置,來計算自己的位置。
但是這種定位方法常常受到一些障礙物的幹擾,比如深山老林或者高聳林立的大廈,都可能阻擋信號或者使信號減弱。可想而知,如果想進行室內的導航,首先是信號強度不夠,其次精度也無法達到米級別。
室內導航
定位技術
由於上面的背景,無法使用GNSS進行室內導航,大部分都采用了輕量級的導航技術,比如wifi、藍牙等等。
- WIFI現在用的很廣泛,家家戶戶都有,特點就是傳播速度很快、保密性好、範圍大約100米左右;
- 藍牙也是一種無線傳輸方法,但是相比於wifi功耗要低、傳輸質量差一些、範圍也只有10米左右,在智能手機之前的諾基亞時代,大家傳輸個小文件基本都用這個。
無論是WIFI還是藍牙,他們定位的方式都差不多,最簡單的就是三角定位,跟GNSS裏面的衛星定位差不多。
這裏當用戶收到ABC三個信號後,根據信號的衰減程度估算與設備的距離;再加上設備本身的位置信息,就能估算出用戶所在的位置了。由於信號容易收到幹擾,因此估算也存在一定的誤差。
其他的定位手段,可以參考下面的圖片,圖片來自知乎https://zhuanlan.zhihu.com/p/36370920
地圖繪制
有了定位,還差一個最主要的組件——地圖。跟室外不同的是,室內變化太快、並且有一定的私密性。室外可以開一個車大街小巷的街拍,但是室內就不同了。因此需要有一個專門的軟件來做地圖的繪制,繪畫出當前樓層的主要店鋪、位置、出入口、樓梯、窗戶等等。這裏有一個公司做了一款產品可以方便的畫出場景圖——http://sve.yongtoc.com/project/index.html。
路徑規劃
終於到了路徑規劃篇,按照我的理解室內導航技術可以用最簡單的柵格方法,把場景描繪成一個平面圖,每個放個有自己的地理位置坐標,這樣路徑規劃的問題就是從一個點如何到達另一個點的問題了。比如遊戲裏面的自動尋路、倉庫裏面的配送機器人等等。其他場景的路徑規劃側重的點則不太相同,比如掃地機器人、無人機避讓等等,這裏就不過多贅述了。
路徑規劃介紹一個最基本的A*算法,可以直接看下面這篇文章去理解算法的過程:
https://blog.csdn.net/hitwhylz/article/details/23089415
我這裏也做了一個Demo
有興趣的可以體驗一下。
參考
- ★★☆☆☆ 博客園——A*算法
- ★★☆☆☆ RRT路徑規劃算法
- ★★☆☆☆ 知乎——機器人路徑規劃算法優缺點
- ★★☆☆☆ 知乎——利用A*算法進行路徑規劃
- ★★★★☆ 知乎——室內定位技術的發展
- ★★★★☆ 知乎——動態窗口法
- ★★☆☆☆ 知乎——iBeacon室內定位原理解析
- ★★☆☆☆ 知乎——一篇關於室內定位技術的簡單分享
- ★★★★★ CSDN——A星算法詳解(個人認為最詳細,最通俗易懂的一個版本)
- ★★★★★ Github——PathFinding.js by qiao
技術雜談 之 室內導航