1. 程式人生 > >先鋒機器人ROS入門——rosaria安裝、測試及學習

先鋒機器人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,輸入roscoreroslaunch rosaria_client rosaria_client_launcher.launch。也可不用launch檔案,在三個terminal中依次輸入roscorerosrun rosaria RosAriarosrun 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: 退出控制