Skip to content

y-shiigi/task_editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

概要

当文書ではSEED Platform Robotsを用いて、 一連の作業(以下タスク)およびタスク群(以下シナリオ)を記述/実行するためのシステムSEED Grand Station(以下、SGS)について記述する。

システム構成

SGSの構成としては下図の通りである。

まず、遠隔操作PC/クラウド側では、タスク記述用GUI"Task Editor"(開発中であり、未配布)を用いてロボットのタスクを記述する。
次に記述したタスク群を1つのシナリオとして、ロボット側へ転送する。
ロボット側は、遠隔操作PC/クラウド側から発せられるキューに応じてシナリオを実行する仕組みとなっている。
なお、ロボット自身および周囲の環境情報は常時、遠隔操作PC/クラウド側へ送られ、データ可視化ツール"Rviz"に表示される。

ロボット側にはソフトウェア群としてROSのパッケージである seed_r7_ros_pkgseed_smartactuator_sdktask_editorが入っている。
seed_r7_ros_pkgについてはGithubを参照することとし、 次節以降ではtask_editorについて記述する。

環境構築

  1. ROS、seed_smartactuator_skd、seed_r7_ros_pkgのインストール
    GithubのREADME.md通りにインストールし、UDEVルールの設定、動作確認まで行う
  2. 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 
  1. 各種ツールのインストール
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
  1. 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
  1. (任意)フォルダ名を英語にする
LANG=C xdg-user-dirs-gtk-update
  1. (任意)電源ボタンを押したらシャットダウンさせる
sudo gedit /etc/acpi/events/powerbtn

上記powerbtnのファイルにて、下記変更を加える

#action=/etc/acpi/powerbtn.sh
action=shutdown -h now

操作方法

以下では1つのPCで作業する場合を記載する。 複数台PC(遠隔操作含む)で作業する場合は、下記を参考にすること。
 ROS_環境設定
 jsk_common(ROS環境設定の簡易化)
 byobu(仮想ターミナル)

メインコントローラの起動

  1. ros_controller用のlaunchを起動する
    roslaunch task_editor robot_bringup.launch
  2. GamePadの起動
    Elecom製GamePadの場合、上部スイッチをD側にスライドし、LBボタンを押した状態で、SEED-Moverの車輪にサーボが入るまで待つ。
    image
    LBボタンを押したままジョイスティックを操作し、SEED-Moverが動く事を確認する。動かし方は下記を参照のこと。なお、LBの代わりにLTボタンを押すと移動速度がアップする。
    image
    ・左ジョイスティック : 前後、旋回
    ・右ジョイスティック : 左右移動
    SEED-Moverがガタガタと振動する場合、GamePadの連射モードがONになっている可能性があるため、マニュアルを参考に連射モードをOFFにすること。

地図の作成と保存

  1. 地図作成用のlaunchを起動する
    roslaunch task_editor make_map.launch
  2. RVizを表示する
    roslaunch task_editor view.launch
  3. GamePadで動かして地図が作成できたら保存する
    roslaunch task_editor map_saver.launch
    image
    地図は``/task_editor/config/maps"に保存される

保存した地図を利用した自律移動

  1. 地図利用のlaunchを起動する
    roslaunch task_editor static_map.launch
    このとき、robot_bringup.launchは再起動した方が良い
  2. 初期位置合わせをする
    RViz上の“2D Pose Estimate”を選択し、画面上をクリック&ドラッグ&ドロップして現在位置を設定する。この時、保存した地図とLiDARの点がおおよそ重なるまで繰り返すこと。
    image
  3. 自律移動させる
    RViz上の“2D Nav Goal”ボタンを選択し、画面上をクリック&ドラッグ&ドロップして目標位置を設定する。ドロップした瞬間に、SEED-Moverは移動を開始する。
    image

シナリオの作成と実行方法

  1. waypointsの登録
    GamePadを使用して、下記ボタンにて登録/削除を行う。
     登録 : “start”ボタン
     参照 : “back”ボタン
     削除 : “LB(L1) + LT(L2) + RB(R1) + RT(R2)”同時押し
    ボタン名はElecomのHPを参照のこと
    image

  2. シナリオの編集
    emacs ~/ros/${ROS_DISTRO}/src/task_editor/config/scenario.yaml
    編集は任意のテキストエディタで問題ない
    各タスク内容はAPI一覧参照のこと

  3. シナリオの実行
    rosrun task_editor start.py : scenario.yamlが実行される。
    もし別のyamlファイルを実行したい場合、下記のようにすること。
    rosrun task_editor start.py test.yaml : test.yamlが実行される。

Realsenseの利用

ARマーカー検出として利用したい場合

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台同時に起動できません!