先鋒機器人ROS入門——rosaria安裝、測試及學習
1.安裝MobileSim
MobileSim是一個移動機器人模擬軟體,即啟動之後,在不連線實體機器人的情況下,執行rosaria不會報錯,即是連線上了一個虛擬的機器人主機。進入MobileSim下載選擇下載 mobilesim_0.9.8+ubuntu12_i386.deb,通過Ubuntu Software Center或者通過指令dpkg -i進行安裝。
2.安裝rosaria
2.1先建立工作空間
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace cd ~/catkin_ws catkin_make echo “source ~/catkin_ws/devel/setup.bash” >> ~/.bashrc
2.2clone ROSARIA到工作空間
cd ~/catkin_ws/src
git clone https://github.com/amor-ros-pkg/rosaria.git
2.3下載安裝MobileRobots ARIA Ubuntu Package
網址: http://robots.mobilerobots.com/wiki/Aria
安裝: sudo dpkg -i libaria_2.9.1+ubuntu12_i386.deb
返回工作空間編譯時catkin_make,出現 libAria.so
類的報錯:
skipping incompatible /usr/local/Aria/lib/libAria.so when searching for -lAria/usr/bin/ld: cannot find -lAria /usr/bin/ld: cannot find -lAria
解決辦法是重新編譯Aria:
cd /usr/local/Aria
make clean #清除原有的編譯
make -j4 #重新編譯
那麼,返回工作空間再進行編譯即可。
再進行編譯,如果編譯報錯,嘗試 catkin_make –force-cmake
(此處顯示有問題,不是簡寫是兩個-)
3.測試
首先開啟mobilesim
然後roscore
然後 rosrun rosaria Rosaria
輸出轉態訊息:rostopic echo /RosAria/pose
則會有資料輸出,資料型別為nav_msgs/Odometry
輸出話題:rostopic list
輸出結果為:
/RosAria/battery_recharge_state /RosAria/battery_state_of_charge /RosAria/battery_voltage /RosAria/bumper_state /RosAria/cmd_vel /RosAria/motors_state /RosAria/parameter_descriptions /RosAria/parameter_updates /RosAria/pose /RosAria/sonar /RosAria/sonar_pointcloud2 /rosout /rosout_agg /tf
4.相關的話題
4.1 訂閱的話題
cmd_vel
對於速度的控制為:rostopic pub -1 /RosAria/cmd_vel geometry_msgs/Twist '[0.1, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
4.2 釋出的話題
- pose 能夠釋出里程計的資訊,通常是10HZ更新一次
- bumper_state能夠釋出緩衝的狀態 sonar能夠讀出聲吶的狀態,出來的資料是二維的x,y,Z始終是0
- battery_state_of_charge 電池的狀態的百分比(取值範圍0~1)
- battery_voltage 電壓
- battery_recharge_state充電的狀態
- motors_state 發動機的狀態
4.3 服務service
- enable_motors 控制電機的啟動
- disable_motors 禁止電機運動
4.4 引數說明
- trans_accel (float, default: none, use robot controller
- firmware configuration) 平移的加速度控制,可以動態設定
- trans_decel (float, default: none, use robot controller firmware configuration) 平移的減速度控制,可以動態設定
- rot_accel (float, default: none, use robot controller firmware configuration) 旋轉的加速度控制,可以動態設定
- rot_decel (float, default: none, use robot controller firmware configuration) 旋轉的減速度控制,可以動態設定
- cmd_vel_timeout (float, default: 0.6 sec) 速度指令等待時間
- odom_frame (string, default: odom) 釋出機器人里程狀態的frame
- base_link_frame (string, default: base_link) 釋出base_link tf
5.ROSARIA示例學習
cd ~/catkin_ws/src
git clone https://github.com/pengtang/rosaria_client.git
cd ..
catkin_make
source devel/setup.bash
step1 連線機器人
case1 連線真實的機器人
先開啟機器人,然後配置引數
sudo usermod -a -G dialout $USER
dialout 是linux 預設自帶的使用者群組,在/erc/groups
資料夾中即可看到,而裝置檔案如下面的tty就屬於該群組,所以將使用者名稱新增到該群組才能對裝置檔案進行讀寫。
sudo chmod a+rw /dev/ttyUSB0 //賦予埠許可權
或者命令sudo chmod 777 /dev/ttyUSB0
case2 Mobilesim模擬機器人
開啟mobilesim,在一個新建的terminal中輸入MobileSim
啟動
step2 啟動rosaria
依次開啟terminal,輸入roscore
,roslaunch rosaria_client rosaria_client_launcher.launch
。也可不用launch檔案,在三個terminal中依次輸入roscore
,rosrun rosaria RosAria
,rosrun rosaria_client interface
。
對於真實的機器人:rosrun rosaria RosAria
改為rosrun rosaria RosAria _port:=/dev/ttyUSB0
。
step3 根據程式輸出的指示進行操作
指令說明:
- Up Arrow: 前進
- Down Arrow: 後退
- Left Arrow: 逆時針轉
- Right Arrow: 順時針轉
- Spacebar: 停止運動
- A: 增加線速度
- Z: 減少線速度
- S: 增加角速度
- X: 減少角速度
- Q: 退出控制