このパッケージは, ロボットアーム(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/CIT-Autonomous-Robot-Lab/crane_x7_simple_examples.git
※ただし,このパッケージはこのコードを雛形にして講義のパッケージを作成してほしいという意図の元作成されたので, このリポジトリをforkしてそちらをcloneすることを推奨します.
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
terminal 1:
ros2 launch crane_x7_gazebo crane_x7_with_table.launch.py
terminal 2:
ros2 launch crane_x7_simple_examples pick_and_move.launch.py use_sim_time:='true'
-
for real machine
terminal 1:
ros2 launch crane_x7_examples demo.launch.py port_name:=/dev/ttyUSB0
terminal 2:
ros2 launch crane_x7_simple_examples pick_and_move.launch.py
RGBDセンサを用いたピッキング(特定の色の物体を検知する・掴む・持ち上げる・運ぶ・置く)コードです.
このコードでは、青い物体の位置を検知し物体を掴みます.
Realsenseを接続し次のコマンドで実行できます.
-
for real machine
terminal 1:
ros2 launch crane_x7_examples demo.launch.py port_name:=/dev/ttyUSB0 use_d435:=true
terminal 2:
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対応のリポジトリが見つからない.
ブランチを変えるとあります. - 実行コマンドを叩いたのにパッケージが見つからないと出る.
実行コマンドで呼び出す名前とパッケージのものの名前が間違ってる可能性があります.
- 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から確認できます.