ロボット(robots)/Roomba
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
] [
Japanese
/
English
]
Research
research overview
papers
media
Members
professors
graduates
undergraduates
alumni
Links
Links
Classes
Computer Programming Basic II
Special Lecture of Mechanical Intelligent System Engineering I
Start:
[[ロボット(robots)]]
#contents
*Roomba Open Interface (ROI)[#xf019442]
-&ref(Roomba500-ROI.pdf);
*Modes [#efab0cdf]
**概要 [#ta0bb332]
Roombaは,Off,Passive,Safe,Fullの4つのモードを備えてい...
※Roombaのデフォルトの通信速度は115200
**モード [#l292ab48]
:off |
Roombaの電源が落ちている状態.Roomba上のボタンを押すか,...
:passive |
Startコマンドかクリーンモードコマンド(Spot,Clean,Seek ...
OIはPassiveモードに入る.
Passiveモードのときは,センサコマンドを使うことによってセ...
しかし,アクチュエータ(モータ,スピーカ,ライト)のパラ...
(変えるなら,SafeまたはFullモードで)
Roomba上のボタンは正常に使える.
このモードは,Roombaの行動を検討するのに使える.
//※センサコマンドはPassive,Safe,Fullモードで使用可能.
: safe |
Safeコマンドを送ることで,RoombaはSafeモードになる.
SafeモードではRoombaを以下のような条件を除いて,完全に操...
-前進中に崖を探知した場合(または,小さい旋回半径での後進...
-車輪が接地していない場合
-充電中の場合
上記のどれかになった場合,Roombaはすべてのモータを停止し...
もし,Safeモードの時に何もコマンド送らなかったら,Roomba...
ボタンを押しても,センサに何か入力されても何も反応しない.
(Roomba上のボタンはSafeモード中は無効)
Safeモードにすると,充電が中断されることに注意すること.
: full |
Fullコマンドを送ることで,RoombaはFullモードになる.
Fullモードでは,Safeモード時のような安全機能はなく,完全...
Safeモードに戻したい場合は,Safeコマンドを送る.
もし,Fullモードの時に何もコマンド送らなかったら,Roomba...
ボタンを押しても,センサに何か入力されても何も反応しない.
(Roomba上のボタンはFullモード中は無効)
Fullモードにすると,充電が中断されることに注意すること.
: 注意 |
ROIモードを変えるコマンドを送るときは,最低20[msec]の間隔...
*Roombaを動かす [#q35b6e37]
シリアル通信用の端子が付いているのでコンピュータで制御で...
-接続できるもの
--有線:[[Roo232>http://www.protechrobotics.com/proddetai...
RS-232CでRoombaと通信&br;
PC(USB)->RS-232C->Roombaと接続していく&br;
--無線:[[RooTooth>http://www.unipos.net/find/product_ite...
BlueToothでRoombaと通信&br;
-チェックアウト・コンパイル
cd ~/prog (どこでもいい)
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp/home/svn/prog/r...
cd ./roomba/roomba_test
make
-アクセス権を出すして実行
出さないとUSBは見えてるし通信できるのに動かないというこ...
--有線で操縦
sudo chmod a+rw /dev/ttyUSB0
./move_test /dev/ttyUSB0
--無線で操縦(アクセス権を出す)
sudo chmod a+rw /dev/rfcomm0
./move_test /dev/rfcomm0
-デバイスファイルへのアクセス権限を与える
以下を実行
sudo gpasswd -a ユーザ名 dialout
dialout グループにユーザ名を追加するというコマンドである。
cat /etc/group
で追加されていることを確認.デバイスファイル /dev/ttyUSB0...
前者はUSBシリアルを抜き差しするとリセットされてしまう...
-ROSで動かす&br;
catkin_ws/srcに以下の2つをチェックアウトしてコンパイル
git clone https://github.com/NetBUG/roomba_500_series
git clone https://github.com/NetBUG/cereal_port
--新しい端末でroscoreを実行。
$ roscore
--次にプログラム中のデバイスファイルを確認する。
$ emacs ~/catkin_ws/src/roomba_500_series/src/roomba500...
でプログラムを開いて、78行目を見ると以下のようになってい...
n.param<std::string>("roomba/port", port, "/dev/ttyUSB0");
有線で動かしたい場合はそのままで,無線で動かしたい場合は
n.param<std::string>("roomba/port", port, "/dev/rfcomm0");
のように書き換え、catkin_wsでcatkin_make。 &br;
--新しい端末で
$ rosrun roomba_500_series roomba500_light_node
ドライバノードを起動。下記のようなメッセージが出れば接続...
[ INFO] [1365212678.543347802]: Roomba for ROS 2.01
[ INFO] [1365212678.822329509]: Connected to Roomba.
roombaの電源ランプが消えている(Fullモード)ことを確認。
テストが終わったらCTRL+Cで終了.
(終了後ボタンを押してroombaのランプ点灯をしないとroomba...
--テスト
新たな端末を開いて下記のコマンドでテストする.
---このコマンドで前に0.1m/secで3秒走行し停止
$ rostopic pub -1 cmd_vel geometry_msgs/Twist '[0.1, 0, ...
3秒はrostopic pubでメッセージの掲示期間のデフォルト値。
---3秒左に0.1radian/secで旋回
$ rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]...
*Commands [#b0ea8cb1]
各コマンドは1バイトのopcode※から始まる.
いくつかのコマンドはそのopcodeの後にデータバイトが付く.
データバイト必要とするコマンドを送るときは,そのコマンド...
プロセッサは残りのデータバイトが送られるまで“待ち”の状態...
※opcode・・・動作の種類を表す「オペコード(opcode,あるい...
**コマンドの種類 [#tf96a0b6]
: Getting Start Commands |
OIを起動し,使用可能状態にする.
: Mode Commands |
RoombaのOIモード(Off,Passive,Safe,Full)の変更を行う.
: Cleaning Commands |
掃除開始と,時計とスケジュールのセット.
: Actuator Commands |
アクチュエータ(ホイール,ブラシ,吸気,スピーカ,LED,ボ...
: Input Commands |
Roombaに内蔵されているセンサの値や,内部の状態を見ること...
詳細:[[ROI Commands]]
*Sensors [#aa8fbcec]
-Bump sensors(left,right)
-Cliff sensors(left,right,left-front,right-front)
-Wall sensor
-Dirt sensors(left,right)
-Wheel drop sensors(left,right,caster)
-Button press sensors(spot,clean,dock,schedule,clock)
-Infrared sensor(virtual wall,home base,and remote contro...
詳細:[[ROI Sensors]]
*サンプルプログラム [#e3c7a736]
-
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp/home/svn/prog/r...
-joypadでRoombaを操縦
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp/home/svn/prog/r...
--実行方法
./roomba_joypad_test /dev/ttyUSB0 /dev/input/js0
*RooToothで無線接続 [#r188ee02]
**BlueToothでRoombaと通信する設定 [#j3f4e853]
-RooToothのMACアドレスを調べる(FireFly-E5BFという名前のは...
hcitool scan
-/etc/bluetooth/rfcomm.conf に以下を追加。MACアドレスを書...
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:06:66:01:E5:BF;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Roomba";
}
-そして以下を実行
sudo /etc/init.d/bluetooth stop
sudo /etc/init.d/bluetooth start
sudo rfcomm bind hci0 //パスワードは1234
(できない場合は、sudo rfcomm bind 0 “MACアドレス”)
sudo chmod a+rw /dev/rfcomm0
-すると、/dev/rfcomm0をopenすることが出来るようになる。あ...
--sudo rfcomm bind hci0はリブートすると元に戻ることがある...
--already in use のようなエラーは出ても問題ない。
**RooToothを使う上での注意事項 [#edbc2616]
-プログラム実行後は、必ずcloseすること。
--closeせずにロボットを持ち上げるなどすると、RooToothに繋...
---そうしてしまった場合は、RooToothをRoombaから抜き、Room...
**うまく動かない場合 [#i4c92413]
-移動させようとすると掃除を始める、音を鳴らそうとすると何...
--これは、RoombaとRooToothのデフォルトのボーレートが合っ...
-RooToothのボーレートを115200に変更する場合、以下のように...
sudo screen /dev/rfcomm0
すると、RooToothとインタラクティブに送受信できる画面が現...
$$$
--[$$$]コマンドは、Bluetoothデバイスのコンフィギュレーシ...
-
D
--[D]コマンドは、Bluetoothデバイスの設定を表示するために...
-
SU, 115k
--RooToothのボーレートを115200に変更
-
---
-- ---コマンドは、Bluetoothデバイスのコンフィギュレーショ...
-参考サイト
--http://www.robotappstore.com/Knowledge-Base/Serial-Port...
--http://hbot.benou.fr/doku.php?id=rootooth_howto
*参考資料 [#a7d3bb38]
-&ref(Xu-ICRA2009.pdf); dustpan end-effector の話 (ICRAと...
-[[つぶやき集]]のRoombaの話題:[[つぶやき集#Roomba-Pacman...
-[[ウェブサイト]]のRoomba関係:[[ウェブサイト#Roomba]]
-&ref(Roomba-Tabata-jikken-all.mpg); ←2009年度田端君卒業...
-[[Roombaのバンパセンサ修理>http://www.schneordesign.com/...
End:
[[ロボット(robots)]]
#contents
*Roomba Open Interface (ROI)[#xf019442]
-&ref(Roomba500-ROI.pdf);
*Modes [#efab0cdf]
**概要 [#ta0bb332]
Roombaは,Off,Passive,Safe,Fullの4つのモードを備えてい...
※Roombaのデフォルトの通信速度は115200
**モード [#l292ab48]
:off |
Roombaの電源が落ちている状態.Roomba上のボタンを押すか,...
:passive |
Startコマンドかクリーンモードコマンド(Spot,Clean,Seek ...
OIはPassiveモードに入る.
Passiveモードのときは,センサコマンドを使うことによってセ...
しかし,アクチュエータ(モータ,スピーカ,ライト)のパラ...
(変えるなら,SafeまたはFullモードで)
Roomba上のボタンは正常に使える.
このモードは,Roombaの行動を検討するのに使える.
//※センサコマンドはPassive,Safe,Fullモードで使用可能.
: safe |
Safeコマンドを送ることで,RoombaはSafeモードになる.
SafeモードではRoombaを以下のような条件を除いて,完全に操...
-前進中に崖を探知した場合(または,小さい旋回半径での後進...
-車輪が接地していない場合
-充電中の場合
上記のどれかになった場合,Roombaはすべてのモータを停止し...
もし,Safeモードの時に何もコマンド送らなかったら,Roomba...
ボタンを押しても,センサに何か入力されても何も反応しない.
(Roomba上のボタンはSafeモード中は無効)
Safeモードにすると,充電が中断されることに注意すること.
: full |
Fullコマンドを送ることで,RoombaはFullモードになる.
Fullモードでは,Safeモード時のような安全機能はなく,完全...
Safeモードに戻したい場合は,Safeコマンドを送る.
もし,Fullモードの時に何もコマンド送らなかったら,Roomba...
ボタンを押しても,センサに何か入力されても何も反応しない.
(Roomba上のボタンはFullモード中は無効)
Fullモードにすると,充電が中断されることに注意すること.
: 注意 |
ROIモードを変えるコマンドを送るときは,最低20[msec]の間隔...
*Roombaを動かす [#q35b6e37]
シリアル通信用の端子が付いているのでコンピュータで制御で...
-接続できるもの
--有線:[[Roo232>http://www.protechrobotics.com/proddetai...
RS-232CでRoombaと通信&br;
PC(USB)->RS-232C->Roombaと接続していく&br;
--無線:[[RooTooth>http://www.unipos.net/find/product_ite...
BlueToothでRoombaと通信&br;
-チェックアウト・コンパイル
cd ~/prog (どこでもいい)
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp/home/svn/prog/r...
cd ./roomba/roomba_test
make
-アクセス権を出すして実行
出さないとUSBは見えてるし通信できるのに動かないというこ...
--有線で操縦
sudo chmod a+rw /dev/ttyUSB0
./move_test /dev/ttyUSB0
--無線で操縦(アクセス権を出す)
sudo chmod a+rw /dev/rfcomm0
./move_test /dev/rfcomm0
-デバイスファイルへのアクセス権限を与える
以下を実行
sudo gpasswd -a ユーザ名 dialout
dialout グループにユーザ名を追加するというコマンドである。
cat /etc/group
で追加されていることを確認.デバイスファイル /dev/ttyUSB0...
前者はUSBシリアルを抜き差しするとリセットされてしまう...
-ROSで動かす&br;
catkin_ws/srcに以下の2つをチェックアウトしてコンパイル
git clone https://github.com/NetBUG/roomba_500_series
git clone https://github.com/NetBUG/cereal_port
--新しい端末でroscoreを実行。
$ roscore
--次にプログラム中のデバイスファイルを確認する。
$ emacs ~/catkin_ws/src/roomba_500_series/src/roomba500...
でプログラムを開いて、78行目を見ると以下のようになってい...
n.param<std::string>("roomba/port", port, "/dev/ttyUSB0");
有線で動かしたい場合はそのままで,無線で動かしたい場合は
n.param<std::string>("roomba/port", port, "/dev/rfcomm0");
のように書き換え、catkin_wsでcatkin_make。 &br;
--新しい端末で
$ rosrun roomba_500_series roomba500_light_node
ドライバノードを起動。下記のようなメッセージが出れば接続...
[ INFO] [1365212678.543347802]: Roomba for ROS 2.01
[ INFO] [1365212678.822329509]: Connected to Roomba.
roombaの電源ランプが消えている(Fullモード)ことを確認。
テストが終わったらCTRL+Cで終了.
(終了後ボタンを押してroombaのランプ点灯をしないとroomba...
--テスト
新たな端末を開いて下記のコマンドでテストする.
---このコマンドで前に0.1m/secで3秒走行し停止
$ rostopic pub -1 cmd_vel geometry_msgs/Twist '[0.1, 0, ...
3秒はrostopic pubでメッセージの掲示期間のデフォルト値。
---3秒左に0.1radian/secで旋回
$ rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]...
*Commands [#b0ea8cb1]
各コマンドは1バイトのopcode※から始まる.
いくつかのコマンドはそのopcodeの後にデータバイトが付く.
データバイト必要とするコマンドを送るときは,そのコマンド...
プロセッサは残りのデータバイトが送られるまで“待ち”の状態...
※opcode・・・動作の種類を表す「オペコード(opcode,あるい...
**コマンドの種類 [#tf96a0b6]
: Getting Start Commands |
OIを起動し,使用可能状態にする.
: Mode Commands |
RoombaのOIモード(Off,Passive,Safe,Full)の変更を行う.
: Cleaning Commands |
掃除開始と,時計とスケジュールのセット.
: Actuator Commands |
アクチュエータ(ホイール,ブラシ,吸気,スピーカ,LED,ボ...
: Input Commands |
Roombaに内蔵されているセンサの値や,内部の状態を見ること...
詳細:[[ROI Commands]]
*Sensors [#aa8fbcec]
-Bump sensors(left,right)
-Cliff sensors(left,right,left-front,right-front)
-Wall sensor
-Dirt sensors(left,right)
-Wheel drop sensors(left,right,caster)
-Button press sensors(spot,clean,dock,schedule,clock)
-Infrared sensor(virtual wall,home base,and remote contro...
詳細:[[ROI Sensors]]
*サンプルプログラム [#e3c7a736]
-
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp/home/svn/prog/r...
-joypadでRoombaを操縦
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp/home/svn/prog/r...
--実行方法
./roomba_joypad_test /dev/ttyUSB0 /dev/input/js0
*RooToothで無線接続 [#r188ee02]
**BlueToothでRoombaと通信する設定 [#j3f4e853]
-RooToothのMACアドレスを調べる(FireFly-E5BFという名前のは...
hcitool scan
-/etc/bluetooth/rfcomm.conf に以下を追加。MACアドレスを書...
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:06:66:01:E5:BF;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Roomba";
}
-そして以下を実行
sudo /etc/init.d/bluetooth stop
sudo /etc/init.d/bluetooth start
sudo rfcomm bind hci0 //パスワードは1234
(できない場合は、sudo rfcomm bind 0 “MACアドレス”)
sudo chmod a+rw /dev/rfcomm0
-すると、/dev/rfcomm0をopenすることが出来るようになる。あ...
--sudo rfcomm bind hci0はリブートすると元に戻ることがある...
--already in use のようなエラーは出ても問題ない。
**RooToothを使う上での注意事項 [#edbc2616]
-プログラム実行後は、必ずcloseすること。
--closeせずにロボットを持ち上げるなどすると、RooToothに繋...
---そうしてしまった場合は、RooToothをRoombaから抜き、Room...
**うまく動かない場合 [#i4c92413]
-移動させようとすると掃除を始める、音を鳴らそうとすると何...
--これは、RoombaとRooToothのデフォルトのボーレートが合っ...
-RooToothのボーレートを115200に変更する場合、以下のように...
sudo screen /dev/rfcomm0
すると、RooToothとインタラクティブに送受信できる画面が現...
$$$
--[$$$]コマンドは、Bluetoothデバイスのコンフィギュレーシ...
-
D
--[D]コマンドは、Bluetoothデバイスの設定を表示するために...
-
SU, 115k
--RooToothのボーレートを115200に変更
-
---
-- ---コマンドは、Bluetoothデバイスのコンフィギュレーショ...
-参考サイト
--http://www.robotappstore.com/Knowledge-Base/Serial-Port...
--http://hbot.benou.fr/doku.php?id=rootooth_howto
*参考資料 [#a7d3bb38]
-&ref(Xu-ICRA2009.pdf); dustpan end-effector の話 (ICRAと...
-[[つぶやき集]]のRoombaの話題:[[つぶやき集#Roomba-Pacman...
-[[ウェブサイト]]のRoomba関係:[[ウェブサイト#Roomba]]
-&ref(Roomba-Tabata-jikken-all.mpg); ←2009年度田端君卒業...
-[[Roombaのバンパセンサ修理>http://www.schneordesign.com/...
Page: