このパッケージは, ロボットアーム(CRANE-X7)単独でのピッキングとRGBDセンサ(RealsenseD435)も併用したピッキングの2つだけをまとめたシンプルなROS 2パッケージです. 講義の参加者が, このパッケージを元にして製作を行うために作成されました.
この資料はUbuntu 22.04 LTSを元に書いています.
- ROS 2インストール
上田先生の動画及びインストールスクリプトを参照し, インストールを行ってください. - CRANE-X7及び関連パッケージのインストール
RT社公式リポジトリよりインストールできます. 以下にインストールコマンドを載せます.(https://github.com/rt-net/crane_x7_ros/tree/ros2/README.mdより転載)# Setup ROS environment $ source /opt/ros/humble/setup.bash # Download crane_x7 repositories $ mkdir -p ~/ros2_ws/src $ cd ~/ros2_ws/src $ git clone -b ros2 https://github.com/rt-net/crane_x7_ros.git $ git clone -b ros2 https://github.com/rt-net/crane_x7_description.git # Install dependencies $ rosdep install -r -y -i --from-paths . # Build & Install $ cd ~/ros2_ws $ colcon build --symlink-install $ source ~/ros2_ws/install/setup.bash
(#の行はコメント, $の行はshellのコマンドです)
また, インストールが完了したらパッケージに含まれるサンプルコードをシミュレータ(Gazebo)で試すことができます. 詳しくは こちらを参照してください. - USBポートの設定(実機のCRANE-X7を動かす際に必要となります)
# 一時的な付与の場合(上手くいかない時はUSBポートの名前を確認してください)
$ sudo chmod 666 /dev/ttyUSB0
# 永続的な付与の場合(再起動を伴います)
$ sudo usermod -aG dialout $USER
$ reboot
crane_x7_controlのREADMEに詳しく書いてあります.
IntelRealSenseのgithub を参照してください. 以下先ほどのページから引用
# Register the server's public key:
$ sudo mkdir -p /etc/apt/keyrings
$ curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
# Make sure apt HTTPS support is installed:
$ sudo apt-get install apt-transport-https
# Add the server to the list of repositories:
$ echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
$ sudo tee /etc/apt/sources.list.d/librealsense.list
$ sudo apt-get update
# Install the libraries (see section below if upgrading packages):
$ sudo apt-get install librealsense2-dkms
$ sudo apt-get install librealsense2-utils
# セットアップできているか確認(ビューワーの起動):
$ realsense-viewer
$ cd ~/ros2_ws/src
$ git clone https://github.com/cit22ros2/crane_x7_simple_examples.git
$ cd ~/ros2_ws
$ colcon build
$ source ~/ros2_ws/install/setup.bash
# 3行目のコマンドは、~/.bashrcに書いておくことを推奨します.
# 下のコマンドで.bashrcに追記できます.
$ echo 'source ~/ros2_ws/install/setup.bash' >> ~/.bachrc
# .bashrcに書いてあるとき下のコマンドが代わりにできます.
$ source ~/.bashrc
シミュレータ(Gazebo)あるいは実機で動かす際には、可視化ツール(RViz)とGazeboの両方を起動する必要があります. 詳しくはこちらを確認してください.
ピッキング(特定の場所にある物体を掴む・持ち上げる・運ぶ・置く)を行うコードです.
次のコマンドで実行できます.
- for Gazebo
ros2 launch crane_x7_simple_examples pick_and_move.launch.py use_sim_time:='true'
- for real machine
ros2 launch crane_x7_simple_examples pick_and_move.launch.py
RGBDセンサを用いたピッキング(特定の色の物体を検知する・掴む・持ち上げる・運ぶ・置く)コードです.
このコードでは、青い物体の位置を検知し物体を掴みます.
Realsenseを接続し次のコマンドで実行できます.
- for real machine
ros2 launch crane_x7_simple_examples camera_picking.launch.py
- 止め方がわからない
Ctrl + Cで止めることができます. - GazeboでCRANE-X7が動かない/動きが途中で止まる.
実行時にuse_sim_time:=trueが抜けていることが多いです. - RViz/Gazeboの画面が真っ黒
1度止めてもう一度立ち上げると大体解決します. - colcon buildが通らない.
- package名やコードの名前は統一されていますか?
- 依存関係の問題かもしれません次を試してみましょう.
$ rosdep update $ rosdep install -r -y --from-paths --ignore-src ./
- CRANE-X7のROS 2対応のリポジトリが見つからない.
ブランチを変えるとあります. - 実行コマンドを叩いたのにパッケージが見つからないと出る.
実行コマンドで呼び出す名前とパッケージのものの名前が間違ってる可能性があります. - なぜかアームの動きがスキップされる
MoveIt 2の制限に引っかかっている可能性があります.制限を緩和すると動きます.(ただし,ダイナミックに動くので周囲への注意が必要)
- Gazeboに自分で作成したモデルの導入
- Gazebo上でのRealSenseの動作
- Open CVのプログラム(color_detection.cpp)の変更
- 見つける色の変更
- 探すのに動きを組み合わせるなど
- 姿勢を維持したまま移動すること
(C) 2023 Keitaro Nakamura, Ryotaro Karikomi
このパッケージはRT Corporationの公開するパッケージのcrane_x7_examplesのlaunch/camera_picking.launch.py,pick_and_mvoe.launch.py,src/pick_and_move_tf.py,color_detection,CMakeList.txt,package.xmlは微小な, src/pick_and_move.cppは大幅な改変によって作成されました.
このパッケージはApache License, Version 2.0に基づき公開されています.
ライセンスの全文はLICENSEから確認できます.