這兩年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
有興趣的可以體驗一下。