03-數據融合-機器人定位教程1-傳感數據準備

robot_localization中的傳感數據準備

開始state estimation nodes 之前需要確保傳感數據已經準備完畢雁竞,傳感數據類型繁多嗡综,建議用戶在使用robot_localization之前閱讀本教程

更多信息參見2015 ROSC presentation 笔宿。

1. 遵循ROS規(guī)范

兩個重要的ROS規(guī)范:
REP-103 (Standard Units of Measure and Coordinate Conventions)
REP-105 (Coordinate Frame Conventions).

新手建議閱讀兩個規(guī)范,這會幫助準備傳感數據柒瓣。robot_localization盡可能使用這些標準扮匠,同樣可以看一下下面的ROS消息格式。
nav_msgs/Odometry
geometry_msgs/PoseWithCovarianceStamped
geometry_msgs/TwistWithCovarianceStamped
sensor_msgs/Imu

2. 坐標系與傳感數據變換

REP-103 指定三個基本坐標系: map, odom, and base_link. mapodom 坐標系是全局類的坐標系锋喜,與機器人起始位置相關些己, base_link 坐標系是機器本體固有坐標系豌鸡。在 robot_localization所有估計節(jié)點中, 數據融合過程中將所有傳感數據轉換到一個坐標系中進行融合段标。數據類型如下可見:

  • nav_msgs/Odometry -所有傳感信息從傳感器消息頭的ID坐標系轉換到全局內坐標系涯冠,通常是map 或者 odom。這個轉換使用與包含姿態(tài)數據的所有消息數據逼庞,而所有twist數據(線速度和角速度)將會轉換到 base_link坐標系蛇更。

  • geometry_msgs/PoseWithCovarianceStamped - 與Odometry數據類似,處理pose姿態(tài)數據

  • geometry_msgs/TwistWithCovarianceStamped - 與Odometry數據類似赛糟,處理twist速度數據

  • sensor_msgs/Imu - IMU 消息 定義有一些含糊派任,大部分IMU只是廣播世界坐標系的朝向角度,它的x朝地磁北極璧南,y朝向地磁東掌逛,與NED (North, East, Down)朝向類似。然而, REP-103 定義是 ENU (East, North, Up)坐標系作為室外導航穆咐。本文中假定所有IMU傳感器為ENU坐標系而不用NED. 這不是固定了颤诀,但是現在是按照此規(guī)則作坐標變換字旭。
    IMU也可以按照機器人某個方向做基準而不是使用‘參考’位置对湃。例如,用戶可以將IMU固定在邊上遗淳,或者旋轉使其與前進方向一致拍柒。這個偏移通常靜態(tài)的定義為base_link_frame到IMU傳感frame_id的坐標變換。狀態(tài)估計節(jié)點將自動校正傳感器方向使其與機器人坐標系一致屈暗。

2.1 Handling tf_prefix

在ros-indigo數據遷移到 tf2 中, robot_localization允許使用 tf_prefix前綴參數拆讯,但與 tf2一致,所有坐標系以 '/' 開頭

3.傳感器msg類型介紹

3.1 Odometry里程計

許多機器人平臺具有編碼器采集車輪轉速,再通過轉速估計位姿养叛,當生成里程計信息時种呐,注意下面的事項:

  • Velocities/Poses: robot_localization可以整合速度和位姿型號,實際上最好的方式是:當里程計型號提供位姿和線速度弃甥,融合線速度爽室。當里程計提供朝向和角速度,融合朝向淆攻。警告:當具有兩種類型的朝向數據時阔墩,需要小心融合,當兩個都產生精確的協(xié)方差矩陣時融合起來較為可靠瓶珊。然而啸箫,當其中一個信息不全,則融合其中較為精確的測量伞芹。對于其他傳感器忘苛,使用角速度融合朝向角,這時需要開啟 _differential模式。

  • frame_id: 見之前文章中關于坐標系和坐標變換的章節(jié)扎唾。

  • Covariance: 協(xié)方差值 robot_pose_ekf 將所有位姿融合在一個里程計信息里蜀肘。 它在ROS的狀態(tài)估計、融合工作包中廣泛使用稽屏,許多機器人驅動按照它的需要提供支持扮宠。這意味著當一個傳感器不產生某個變量 (e.g., 機器人不產生 Z 位姿), 唯一的生產 robot_pose_ekf的方式就是忽略它將協(xié)方差設置為非常大(10^3) 。故而變量被忽略狐榔。這種不是不是必要坛增,同時可以影響 robot_localization的表現,這個可以通過另一個傳感器采集數據來補償薄腻。
    參見 Best Practices for Sensor IntegrationMigration from robot_pose_ekf

  • Signs: 按照 REP-103收捣,需要確認 傳感器的 signs 是正確的*。例如庵楷,有一個平面機器人操作逆時針轉罢艾,這時yaw應該 增加,, yaw速度應該為 . 當前進時尽纽,x應該增加咐蚯,x的速度為正。

  • Transforms: 廣播 odom->base_link 變換.當世界坐標系設定為odom坐標系時, robot_localization的狀態(tài)估計節(jié)點輸出 nav_msgs/Odometry 的位姿估計和odom到base_link的坐標變換弄贿。然而春锋,一些機器人驅動也隨里程計變化廣播坐標變換, 如果要robot_localization的坐標變換具有較高置信度差凹,需要關閉驅動的廣播期奔。這個可以通過參數控制。

3.2 IMU

  • Adherence to specifications: 需要按照 REP-103sensor_msgs/Imu 格式發(fā)布危尿,同時確保frame_id正確呐萌。

  • Covariance:與里程計相似,確保協(xié)方差的正確谊娇。不要使用較大的協(xié)方差數字來忽略一個變量肺孤,而應該將變量設置為false.

  • Acceleration: 小心使用加速度信息,要考慮重力加速度的作用邮绿,z軸應該 +9.81
    當翻轉了90度渠旁,想相應朝向應該加上加速度。

3.3 PoseWithCovarianceStamped

見里程計章節(jié)

3.4 TwistWithCovarianceStamped

見里程計章節(jié)

4. 常見錯誤

  • 輸入數據不依照REP-103船逮。確保所有值方向為正向顾腊,這個在IMU中最為重要。

  • 錯誤的frame IDs挖胃。例如杂靶,GPS給出的UTM數據用 nav_msgs/Odometrymsg梆惯,那它的坐標系不能是base_link or base_footprint. 同樣速度信息不應該是base_link_frame,應該需要一個由速度坐標系到本體坐標系的轉換吗垮。這是第二大重點問題.

  • Inflated covariances協(xié)方差過大. 最好的忽略一個參數的方式是配odomN_config參數垛吗。

  • Missing covariances. 當融合一個傳感器到一個估計變量時,協(xié)方差(i.e., the covariance matrix value at position (i, i), where i is the index of that variable) 不應該是 0. 當協(xié)方差中出現0值烁登,程序會加一個極小的數(1e-6) 最好的解決方式就是合理配置協(xié)方差怯屉。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市饵沧,隨后出現的幾起案子锨络,更是在濱河造成了極大的恐慌,老刑警劉巖狼牺,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羡儿,死亡現場離奇詭異,居然都是意外死亡是钥,警方通過查閱死者的電腦和手機掠归,發(fā)現死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悄泥,“玉大人虏冻,你說我怎么就攤上這事÷肱ⅲ” “怎么了兄旬?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長余寥。 經常有香客問我,道長悯森,這世上最難降的妖魔是什么宋舷? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮瓢姻,結果婚禮上祝蝠,老公的妹妹穿的比我還像新娘。我一直安慰自己幻碱,他們只是感情好绎狭,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著褥傍,像睡著了一般儡嘶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恍风,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天蹦狂,我揣著相機與錄音誓篱,去河邊找鬼。 笑死凯楔,一個胖子當著我的面吹牛窜骄,可吹牛的內容都是我干的。 我是一名探鬼主播摆屯,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邻遏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了虐骑?” 一聲冷哼從身側響起党远,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎富弦,沒想到半個月后沟娱,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡腕柜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年济似,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盏缤。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡砰蠢,死狀恐怖,靈堂內的尸體忽然破棺而出唉铜,到底是詐尸還是另有隱情台舱,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布潭流,位于F島的核電站竞惋,受9級特大地震影響,放射性物質發(fā)生泄漏灰嫉。R本人自食惡果不足惜拆宛,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望讼撒。 院中可真熱鬧浑厚,春花似錦、人聲如沸根盒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炎滞。三九已至敢艰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厂榛,已是汗流浹背盖矫。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工丽惭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辈双。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓责掏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親湃望。 傳聞我的和親對象是個殘疾皇子换衬,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內容