当文書ではSEED Platform Robotsを用いて、 一連の作業(以下タスク)およびタスク群(以下シナリオ)を記述/実行するためのシステムSEED Grand Station(以下、SGS)について記述する。
まず、遠隔操作PC/クラウド側では、タスク記述用GUI"Task Editor"(開発中であり、未配布)を用いてロボットのタスクを記述する。
次に記述したタスク群を1つのシナリオとして、ロボット側へ転送する。
ロボット側は、遠隔操作PC/クラウド側から発せられるキューに応じてシナリオを実行する仕組みとなっている。
なお、ロボット自身および周囲の環境情報は常時、遠隔操作PC/クラウド側へ送られ、データ可視化ツール"Rviz"に表示される。
ロボット側にはソフトウェア群としてROSのパッケージである
seed_r7_ros_pkg
、seed_smartactuator_sdk
とtask_editor
が入っている。
seed_r7_ros_pkg
についてはGithubを参照することとし、
次節以降ではtask_editor
について記述する。
- ROS、seed_smartactuator_skd、seed_r7_ros_pkgのインストール
GithubのREADME.md通りにインストールし、UDEVルールの設定、動作確認まで行う - Realsenseドライバのインストール
下記は参考程度とし、必ず公式HPを確認してください
sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver $ hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
Ubuntu16の場合
sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u
Ubuntu18の場合
sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev librealsense2-dbg
Realsenseを接続し、 $ realsense-viewer
と入力して画像が表示されたら正常にインストールされている。
3. realsense-rosのインストール
sudo apt-get install ros-${ROS_DISTRO}-realsense2-* ros-${ROS_DISTRO}-ddynamic-reconfigure ros-${ROS_DISTRO}-rgbd-launch
- 各種ツールのインストール
sudo apt-get install emacs byobu openssh-server chrony expect setserial xterm
sudo apt-get install ros-${ROS_DISTRO}-jsk-common ros-${ROS_DISTRO}-teleop-twist-joy ros-${ROS_DISTRO}-uvc-camera ros-${ROS_DISTRO}-jsk-visualization
- task_editorのインストール
cd ~/ros/${ROS_DISTRO}/src
git clone https://github.com/y-shiigi/task_editor
cd ~/ros/${ROS_DISTRO}
rosdep install -y -r --from-paths src --ignore-src
catkin build task_editor
- (任意)フォルダ名を英語にする
LANG=C xdg-user-dirs-gtk-update
- (任意)電源ボタンを押したらシャットダウンさせる
sudo gedit /etc/acpi/events/powerbtn
上記powerbtn
のファイルにて、下記変更を加える
#action=/etc/acpi/powerbtn.sh
action=shutdown -h now
以下では1つのPCで作業する場合を記載する。
複数台PC(遠隔操作含む)で作業する場合は、下記を参考にすること。
ROS_環境設定
jsk_common(ROS環境設定の簡易化)
byobu(仮想ターミナル)
- ros_controller用のlaunchを起動する
roslaunch task_editor robot_bringup.launch
- GamePadの起動
Elecom製GamePadの場合、上部スイッチをD側にスライドし、LBボタンを押した状態で、SEED-Moverの車輪にサーボが入るまで待つ。
LBボタンを押したままジョイスティックを操作し、SEED-Moverが動く事を確認する。動かし方は下記を参照のこと。なお、LBの代わりにLTボタンを押すと移動速度がアップする。
・左ジョイスティック : 前後、旋回
・右ジョイスティック : 左右移動
SEED-Moverがガタガタと振動する場合、GamePadの連射モードがONになっている可能性があるため、マニュアルを参考に連射モードをOFFにすること。
- 地図作成用のlaunchを起動する
roslaunch task_editor make_map.launch
- RVizを表示する
roslaunch task_editor view.launch
- GamePadで動かして地図が作成できたら保存する
roslaunch task_editor map_saver.launch
地図は``/task_editor/config/maps"に保存される
- 地図利用のlaunchを起動する
roslaunch task_editor static_map.launch
このとき、robot_bringup.launch
は再起動した方が良い - 初期位置合わせをする
RViz上の“2D Pose Estimate”を選択し、画面上をクリック&ドラッグ&ドロップして現在位置を設定する。この時、保存した地図とLiDARの点がおおよそ重なるまで繰り返すこと。
- 自律移動させる
RViz上の“2D Nav Goal”ボタンを選択し、画面上をクリック&ドラッグ&ドロップして目標位置を設定する。ドロップした瞬間に、SEED-Moverは移動を開始する。
-
waypointsの登録
GamePadを使用して、下記ボタンにて登録/削除を行う。
登録 : “start”ボタン
参照 : “back”ボタン
削除 : “LB(L1) + LT(L2) + RB(R1) + RT(R2)”同時押し
ボタン名はElecomのHPを参照のこと
-
シナリオの編集
emacs ~/ros/${ROS_DISTRO}/src/task_editor/config/scenario.yaml
編集は任意のテキストエディタで問題ない
各タスク内容はAPI一覧参照のこと -
シナリオの実行
rosrun task_editor start.py
: scenario.yamlが実行される。
もし別のyamlファイルを実行したい場合、下記のようにすること。
rosrun task_editor start.py test.yaml
: test.yamlが実行される。
roslaunch task_editor ar_track_realsense.launch
カメラ前方にARマーカーをかざし、Rviz上にTF(ar_marker_*
)が出力されることを確認する。また、使用するRealsenseやマーカーによって、ar_track_realsense.launch
の下記パラメータを変更する。
- serial_no_camera : realsenseの固有シリアル番号
→realsense-viewer
で確認できます - marker_size : ARマーカーの1辺の長さ[cm]
その他設定はwikiを参照のこと
roslaunch task_editor realsense_laser.launch
Rviz上でSEED-Mover後方に黄色レーザーが出力される。出力されない場合、RealsenseのUSBを抜き差しするか、PCを再起動すること。
USBの通信帯域の問題で、現状は2台同時に起動できません!