【轉載】最強干貨|ROS與RPLIDAR結合使用說明及問題匯總

ROS作為機器人軟件平臺,能為異質計算機集群提供類似操作系統的功能,在研究機器人行走等方面起著重要的作用。Llidar作為機器人定位導航的核心傳感器,在機器人自主行走、定位導航方面扮演著重要角色。兩者的結合使用,使得機器人自主定位導航效果更佳。

1. RPLIDAR 產品簡介:

RPLIDAR是SLAMTEC—思嵐科技自主研發的激光雷達,目前有A1和A2兩款成熟的商業激光雷達產品。兩款產品均可從官網獲取相應的SDK和開發指導文檔。

RPLIDARA1

A1的測距范圍為0.2~6米,360°全角度測量,每秒掃描2K個點,掃描頻率5~10hz可調。

RPLIDARA2

A2的測距范圍為0.15~8米,360°全角度測量,每秒掃描4K個點,掃描頻率5~15 hz可調。

官方針對rplidar雷達,給出的SDK中提供了相應的frame_grabe可視化測試界面。具體操作流程如下:

(1)設備管理器找到對應串口

(2)打開frame_grabe,選擇對應端口查看

(3)frame_grabber界面

詳細資料請參閱思嵐科技官網,包括:

簡介與規格書(Datasheet)、開發套裝使用手冊、通訊接口協議與應用手冊、SDK 用戶手冊。

2. rplidar的ROS

package rplidar_ros介紹:

rplidar_ros是國內第一款面向全球ROS開發者推出相應package的激光雷達,其低廉的價格大大推動了激光雷達在ROS中的使用,為國內服務機器人的移動導航和避障相關技術的發展和人才儲備起了很大的推動作用。

ROS之所以能夠很好的在開發者中間推廣起來,就是它建立了一套通用的通訊框架,不同的開發者只需要按照一定的通訊協議,關注相應的數據接口,完成每個模塊的功能就OK,大大避免了機器人重復造輪子的繁瑣過程。

任何一個ROS生態里面的package,往往只需找到相應的wiki和github頁面,就可以清楚的了解其數據接口和內部的實現。

2.1rplidar_roswiki

wiki主要包含對應rplidar產品功能和package接口和參數的說明和相應的使用流程介紹,以及當前ros生態支持的版本信息。

2.2rplidar_ros github

rplidar_ros的github主要包含package對應的源碼和package的版本管理和開發者問題對話。

issue(open|closed): 里面主要包含開發者關于rplidar_ros使用的相關問題的對話,如果開發者在使用某個package遇到問題都可以現在此搜索是否有相關問題的解釋與解決方法;

pull request:相關使用者針對原有代碼的改進,希望加入到本倉庫,以提高或增強相應的功能;

wiki: 包含更加具體的說明和使用介紹;commit、branch、release、contributors是rplidar_ros開發迭代的記錄。

2.3 rplidar_ros消息機制

rplidar_ros的在ROS里面的通訊接口,主要有1個話題(topic) /scan和2個服務(service)stop_motor和start_motor.。/scan主要用于向外部發送雷達數距消息(message),消息格式采用的是sensor_msgs/LaserScan,像避障或slam功能模塊對應的ROS package就需要調用這個話題的雷達數據完成建圖或避障的功能。stop_motor和start_motor主要是用于客戶端調用服務器端關閉和啟動雷達的接口,使系統可以依據需要選擇關閉和開啟雷達。

rplidar_ros給出的rplidar.launch,實際使用中依據具體的使用往往關注的參數有 端口號(serial_port)、坐標系名稱(frame_id)、正反裝(inverted)。

2.4 rplidar_ros坐標系說明:

rplidar是按照順時針旋轉,SDK數據輸出是帶距離和角度信息的左手系數據,rplidar_ros輸出已經將其轉化為右手坐標系輸出。雷達數據坐標系參照雷達數據線的位置(A2)/形狀(A1)和下面的圖示判斷。

2.5 rplidar_ros啟動說明:

首先要查看插上rplidar后對應端口權限(每次插拔都要賦予一次權限):

ls -l /dev |grep ttyUSB

sudo chmod 666 /dev/ttyUSB0

如果沒有讀寫權限,需要添加其讀寫權限(每次插拔都要賦予一次權限):

sudo chmod 666 /dev/ttyUSB0

每次這樣插拔都要添加權限很麻煩,可以試試添加設備的udev規則,賦予符合相應規則的設備端口固定權限和端口名稱的映射。執行相應的rplidar端口映射的腳本:

./scripts/create_udev_rules.sh

啟動rplidar_ros節點,并在rviz中顯示出雷達數據:

$ roslaunch rplidar_ros view_rplidar.launch

matlab2016版本當前還提供了ROS的功能接口,我們也可以通過matlab參看激光數據。

3. 搭建帶rplidar的機器人系統:

前面詳細介紹了rplidar_ros

package的相應功能,如果我要在一臺機器人本體上使用激光雷達需要怎么設置呢?其實在ROS里利用已有package搭建系統實現基本功能你只需要關注好topic/service和TF frame是否協調起來。TF是ROS里面主要的概念,它維護著每個數據對應坐標系之間的位姿變換關系。要搭建帶rplidar的機器人ROS系統,

你就需要依據實際安裝信息統一好rplidar坐標系與機器人本體base坐標系的變換關系。實現這種變換關系主要有三種:

3.1 通過模型的URDF文件的方式:

在已知的機器人模型的URDF中添加描述雷達的joint和描述在機器人本體上的link。下面是曾在turtlebot仿真模型添加rplidar模型的urdf設置。

3.2 TF靜態變換static_transform_publisher方式:

在機器人啟動的launch文件添加靜態TF變換的信息即可,

type="static_transform_publisher" args="0.07 0 0 0 0 0 1

/base_link /laser 50"/>

3.3 通過rqt/tf_echo查看TF tree的構建情況:

4. 利用RPLIDAR在ROS環境建圖:

4.1 當前開源的2D激光雷達slam的ROS package主要有:

gmapping

ros-perception/slam_gmappingros-perception/openslam_gmapping

Hector

tu-darmstadt-ros-pkg/hector_slam

karto

ros-perception/slam_kartoros-perception/open_kartoskasperski/navigation_2d

cartographer

googlecartographer/cartographer

googlecartographer/cartographer_ros

4.2 TF tree(gmapping為例)

4.3 rqt_graph(gmapping為例)

4.4 slam建圖效果:

搭建系統取決統一好topic/service和tf的接口名稱,系統運行效果就取決于里面的算法實現,可能變現在具體的啟動配置文件的參數設置和內部算法實現,那就需要查看相應論文和代碼中涉及的算法原理和算法實現。

5. rplidar相關問題匯總與說明:

5.1 樹莓派等單板系統出現雷達無法啟動,請檢查是否是供電不足導致的問題。

5.2 rplidar_ros啟動前需要設置端口權限

5.3 rplidar原始數據輸出是非固定角度增量的輸出形式,rplidar_ros輸出是修正式固定角度增量輸出的數據格式;

5.4 當前版本的rplidar_ros發出的激光數據中的ntenstity數據是fake的無效數據,不建議在實際中使用。

5.5 rplidar_ros 是360全角度輸出的rplidar驅動,如有固定角度需求,請自行添加角度濾波的節點。

5.6 使用過程中如有問題,先自行檢查端口權限,tf_tree和rqt_graph是否正常,如還是有問題,返回windows系統檢查官方驅動是否有問題;

如上述自檢均沒發現問題,但仍運行不正常,可附上檢查的信息以及難點一起發送至support@slamtec.com郵箱,我們將及時為各位小伙伴們解答!

機器人操作平臺 (ROS)光學雷達(Lidar)同時定位和地圖構建(SLAM)

原文鏈接:https://zhuanlan.zhihu.com/p/29246697

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,237評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,957評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,248評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,356評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,081評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,485評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,534評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,720評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,263評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,025評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,204評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,787評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,461評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,874評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,105評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,945評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,205評論 2 375

推薦閱讀更多精彩內容

  • 2017年無人駕駛還處于積極研發和普及期,民用的測試和技術探索也主要在小型汽車方面,各大巨頭都將2020年作為一個...
    方弟閱讀 7,129評論 1 16
  • ROS的全名是Robot Operating System,即機器人操作系統。雖然名字里有個“操作系統”,但它并不...
    秋紉閱讀 5,435評論 3 20
  • 這一章要學習的是怎么控制一個差分輪機器人 1 單位和坐標系統 ROS使用的坐標系統是右手坐標系。 旋轉依據的是右手...
    Savior2016閱讀 5,826評論 0 5
  • 作者:劉少山,李文超,唐潔責編:何永燦,歡迎人工智能領域技術投稿、約稿、給文章糾錯,請發送郵件至heyc@csdn...
    十人言末閱讀 1,294評論 0 4
  • 你有一個人去電影院看電影過嗎? 我以前總覺得一個人去電影院看電影是多么了不得的事情。我是喜歡看電影的,特別...
    南方樹閱讀 1,172評論 1 3