目標
在ROS上調試使用Hokuyo激光雷達傳感器
配置情況
電腦使用Ubuntu 14.04版本,ROS為 Indigo,激光雷達為Hokuyo(型號UST-10LX,網口型接口)
如果使用的是USB類插頭的,可以按照ROS網站上提供的教程:
http://wiki.ros.org/hokuyo_node/Tutorials/UsingTheHokuyoNode
以下介紹的是激光雷達在ROS上的配置:
首先拿到激光雷達要看其是什么接口類型的,一般分USB型和網口型,兩種配置方法不一樣,USB型的可以參照上面的教程配置使用,網口型就是下面介紹的方法。為什么要配置呢?直接插上去用不可以嗎?答案是不可以的,類似我們日常使用的電腦,當你插上U盤時候,電腦首先會對U盤安裝驅動,因為沒有驅動使用不了U盤。所以類似的,配置過程就是電腦識別激光雷達,獲取其數據的過程。當激光雷達上電時候,它就開始轉動,開始獲取數據了。
拿到的UST-10LX激光雷達有兩個頭,一個是電源接口,自己換上接口插到turtlebot上使用19V電源供電(因為turtlebot2正常供電范圍是12V-24V,另外按照紅正黑負的原則選擇接口,插到turtlebot之前使用萬用表直流檔檢測正負接口,切記不要接反);另一個是網線插口,插到你的電腦網口出處。
這時候電源接好了,插上了turtlebot的19V電源處,激光雷達開始轉動(會發出聲音),網口插口也插上了電腦那,那接下來怎么使用它?
看到網口我們想到的是IP地址,對,其實就是網口類插口與電腦之間使用的是IP地址通訊。那重要的一件事是,知道你的激光雷達的初始IP地址,如果忘記了,使用可以查看IP地址的軟件去找出你的激光雷達的IP地址。當知道激光雷達的IP地址后事情就很容易解決了,我使用的激光雷達地址為192.168.1.181(每個人的IP不一樣的,這個是自己設置的)。查閱資料顯示Hokuyo激光雷達的固定IP地址為“192.168.1.10”(出廠設置為“192.168.0.10”)具體為多少,需要自己去查看相關資料。
有了激光雷達的IP地址,那電腦怎么與它進行通訊?
那就要設置電腦的IP頻段,前面3個與其相同,即電腦的IP設置為192.168.1.XXX(隨便你設置,但是不要和雷達的IP地址一樣),掩碼設置都是255.255.255.0。那接下來的問題就是怎么設置電腦的靜態IP地址了,有兩種方法,下面分別介紹。
1、修改ubuntu系統上管理IP地址的文件,添加一個靜態IP地址,位置在/etc/network/interfaces
sudo gedit /etc/network/interfaces
運行命令顯示以下窗口
在iface lo inet loopback下面添加下面代碼
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
address即添加的電腦靜態IP地址,netmask為掩碼
2、直接在顯示網絡那里配置
在網絡圖標那右鍵選擇Edit Connections
在Ethernet(即以太網)點擊Add專門為激光雷達配置一個連接,然后點擊IPv4設置地址,在Address添加上面設置的IP地址
至此兩種配置電腦靜態IP地址方法介紹完了,只要選用其中一種即可,下面就是測試:
ping 192.168.1.181
當你激光雷達IP地址沒錯時,即可獲取到上面的數據。接下來設置在ROS上獲取激光雷達的數據,ROS上獲取數據主要靠調用節點來獲取,那首先要安裝網口類激光雷達的節點包
sudo apt-get install ros-indigo-urg-node
然后將激光雷達接在電腦上,執行以下命令:
roscore
rosrun urg_node urg_node _ip_address:=192.168.1.10
當顯示上面情況時,即可以在ROS上獲取激光雷達數據。另外可以使用以下命令查看激光雷達檢測到的數據:
rostopic echo /scan
在rviz中查看激光數據:
#依次運行下面命令
roscore
rosrun urg_node urg_node _ip_address:=192.168.1.181
rosrun rviz rviz

點擊左下角的Add按鈕,依次添加LaserScan和話題/scan下的LaserScan,然后在左邊Displays下修改Fix Frame值為laser