先鋒機器人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: 退出控制