1. 程式人生 > >小豆包的學習之旅:開發記錄

小豆包的學習之旅:開發記錄

宣告:軟體截圖為個人所有,嚴禁用於商業目的和其他盈利行為。

雲臺控制和鐳射點雲獲取軟體

第一階段:三維點雲採集視覺化

第二階段:MoblieSim模擬資料接入,sim_lms1xx_1鐳射。Gmapping建圖實現效果圖,感覺效果一般,估計有的引數還是要調整一下。

進一步工作: (1)當前真實軌跡,當前pose;<Done> (2)目前建圖過程延遲很厲害,因為加入佇列的資料RangeReading數目太多,需要進行控制;   思路:減速增加佇列中的無效資料(不進行掃描匹配);機器人處於停止狀態不讀取鐳射資料;時間間隔控制; (3)圖的大小不是實際的座標值,需要對應上;<Done>
(4)ArServerModelGoto中的速度控制模式,控制執行到位置;<Done>

 

  

第三階段:滑鼠控制初步(沒有區域性避障和路徑規劃)

今天在機器人上真實環境測試了一下,首先滑鼠控制和運動到位置的服務都是可用的。問題:運動過程中老是撞到障礙,有室內太擁擠的原因,因此急需增加區域性避障功能。

同時考慮是不是機器人里程計提供的位姿飄的太厲害了,我看著地圖控制怎麼會撞呢?

機器人啟動之後即產生位姿(世界,機器人原點),當開始建圖時的機器人位姿(相對於機器人原點)已經不為0。但是建圖用的地圖原點產生了一個新的座標系。

第四階段:實現了VFF區域性避障演算法(Done 2017/6/6

第五階段:邊界探索 (初步完成,很多問題 2017/6/8

  完成一個簡單版本的自主探索,目前還有很多問題:

1.根據True Pose進行運算而非里程計 (Done)
2.控制根據True Pose相對方向運動 (Done,思考該方法是有問題的!)
3.自主探索開口點提取的太粗糙,需要精化 (未完成)

實際環境測試,出現問題:像木馬一樣震顫(2017/6/20)

可能原因: (1)VFF演算法區域性避障需要延時,建議值1s (Done) (2)鐳射的5m範圍內存在過小的值,無效值1mm (Done) (3)伺服器端需要增加配置檔案,控制鐳射不連線 (Done) (4)按鈕實現的速度控制需要限制前進速度 (5)優化服務端,尤其是旋轉的速度要控制的低速旋轉
(Done,目前+-15度以內速度不控制,以外按照Heading方向10度間隔旋轉) 反饋: 修改了(1)(2)(3)之後,實際環境中滑鼠算是可以控制了。

 第六階段:服務優化,演算法優化

   (1)$t1$完成掃描匹配,得到真實位姿$T_{1}$,用$t1$時刻的真實位姿和里程計來更新$t_{2}, t_{3}, ... , t_{10}$時刻的里程計。則$t_{10}$時刻有,$T_{10}=T_{1}*Odom_{1}^{-1}*(Odom_{10})$

  (2)伺服器端的旋轉都按照Heading方向相對運動,因為里程計偏差太大。根據TruePose計算的Map座標系下的目標方向,和Odometry中相差太大。

  (1)(2)兩點都歸結為相對執行,相對於機器人前一時刻的Heading進行旋轉。

 

2017/6/26室外測試,沒有問題,只是走廊地板的摩擦力好大,旋轉不流暢,阻力很大!

2017/8/4修改:旋轉角度很大時,採用勻速旋轉;角度比較小時則採用旋轉到角度。

視訊地址:

相關推薦

豆包學習開發記錄

宣告:軟體截圖為個人所有,嚴禁用於商業目的和其他盈利行為。 雲臺控制和鐳射點雲獲取軟體 第一階段:三維點雲採集視覺化 第二階段:MoblieSim模擬資料接入,sim_lms1xx_1鐳射。Gmapping建圖實現效果圖,感覺效果一般,估計有的引數還是要調整一下。 進一步工作: (1)當前真實軌

豆包學習里程計運動模型

星球大戰裡面有2個非常出色的機器人一個是3PO,一個是R2。我的機器人呢就叫小豆包啦,代號FR2,不許侵犯它的署名哦。   常見的機器人運動模型包括:速度計運動模型,里程計運動模型和慣導運動模型。概率運動模型是對機器人運動的一種概率描述。   里程計是比較常見的一種型別。嚴格來說,里程計是一種感測

豆包學習入門篇

  人總是對未知充滿了好奇,人的一生是不斷髮現,不斷探索未知的過程。哥倫布發現新大陸,月球探索,火星探索,人類的腳步將永不停止。探索是一個充滿未知的旅程,人類根據自身的知識,藉助外部工具,利用自己的智慧,發現或者發明新的事物,這是一個非常有意思的過程。   不識廬山真面目,只緣身在此山中,如何克服認知的侷限

豆包學習機器人定位

  《概率機器人》一書用兩章介紹了幾種定位方法,一種是基於馬爾科夫決策,另外一章是柵格和蒙特卡羅方法。 1.馬爾科夫定位 2.EKF定位 3.柵格定位 4.MCL蒙特卡羅定位   這裡主要學習一下蒙特卡羅定位。機器人定位問題可以描述為:如何確定機器人在關聯的已知環境地圖中的位姿pose。拋開SLAM

豆包學習佔用概率柵格地圖和cost-map

  接下來將製圖和定位問題分別進行介紹。這兩個問題可以視為SLAM過程中兩個相互聯絡的子問題,但是也可以視為兩個單獨的問題。雖然說SLAM問題是雞和蛋的問題,但是在實際處理過程中總是有先後的。為了簡化問題,首先將兩者視為單獨的問題進行分析,在處理這兩個獨立的問題的時候需要設定一些約束。   描述機器人制圖M

豆包學習感測器觀測模型

  感測器觀測模型,主要針對鐳射測距感測器進行說明。 1.Beam Model 測量光束模型   鐳射測量光束模型是對鐳射測量過程的近似物理描述,鐳射測距儀沿鐳射發出的光束測量周圍物體的距離。該模型將一條沿光束進行的測量$p(z_{t}|x_{t},m)$表達為四種概率密度的混合。認為存在四種類型的測量誤

Python學習用Python製作一個打字訓練工具

一、寫在前面   說道程式設計師,你會想到什麼呢?有人認為程式設計師象徵著高薪,有人認為程式設計師都是死肥宅,還有人想到的則是996和 ICU。      別人眼中的程式設計師:飛快的敲擊鍵盤、酷炫的切換螢幕、各種看不懂的字元程式碼。   然而現實中的程式設計師呢?對於很多程式設計師來說,沒有百度和

程式學習----open-data web-view 以及 canvas、map

<open-data type="userAvatarUrl"></open-data> <open-data type="userGender" lang="zh_CN"></open-data> <view></view>

程式學習----圖片image媒體元件camera、audio、video、live-player、live-pusher

<!--pages/image/image.wxml--> <text>這是一個image元件</text> <!-- <image src='../../images/0.jpg'></image> <image src='

程式學習---表單元件 picker picker-view 實現日期 區域 聯動選擇

Page({ /** * 頁面的初始資料 */ data: { cityList: ['北京', '上海', '深圳', '廣州'], cityIndex: 1, time: '17:01', date: '2018-6-28',

程式學習----表單元件 button checkbox form input label radio slider switch textarea 獲取表單資料

<view class='input'> <input placeholder="請輸入內容1" confirm-type="done" type='text' focus="true" bindinput='doInput'/> </view> <

程式學習----基礎內容元件icon 、text 、rich-text、progress

Page({ data: { motto: 'Hello World', nodes: [{ name: 'h2', attrs: { class: 'h2_class', style: 'line-height: 60p

程式學習----覆蓋物元件

<view class='video_box'> <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f02016904

程式學習----上拉重新整理例項

Page({ /** * 頁面的初始資料 */ data: { list: [], windowHeight: '400', page: 1, flag: true }, /** * 生命週期函式--監聽頁面載入 */

程式學習----slot 子元件呼叫父元件的方法、父元件呼叫子元件的方法

slot子元件 <!--pages/user/user.wxml--> <header title='{{title}}'></header> {{title}} <footer> <button>我是footer子元件裡的按鈕&l

程式學習----自定義元件toast例項

components目錄下新建資料夾toast,新建component,之後修改toast.js和toast.wxml <!--components/toast/toast.wxml--> <view class='wx_toast_container' hidden="{{!

程式學習----基礎知識

<view wx:if="{{flag}}"> <text> view 當作div text 當作span 繫結資料--{{message}} 繫結物件--{{obj.name}} 條件判斷wx:if='{{

程式學習---wxs模組自定義方法

// pages/user/user.js Page({ /** * 頁面的初始資料 */ data: { d: '1500000000000' }, goShop () { wx.navigateTo({ url:

Spring Boot學習(四)springboot 整合 fastjson

springboot 預設使用的 jackson 但是聽說某寶的fastjson 效能很好,而且平時用的習慣,所以來整合一下。 首先在pom 中匯入依賴 <dependency> <groupId>

程式學習注意事項統計

這篇文章記載在小程式的一些注意事項和遇到的bug,包括解決方案 子控制元件點選事件和父控制元件之間的傳遞 當一個view裡面包裹了了一個子view(如text控制元件),然後兩個控制元件都新增點選事件,如何讓點選text的時候父view的點選事件不觸發呢?  在點選事件t