[ロボ実験記録] ROS2でロボットアーム(CRANE-X7)の動作テスト

概要

  • ROS2 (robot operating system)を使って、ロボットアームを動かします

  • ロボットアーム(CRANE-X7)を使います

    • 日本の会社が開発しており、サンプルコードやドキュメントが多々あるのが嬉しい点です

    • 実機は99万円しますが、シミュレータは無料です。

セットアップ

はじめに、前回の記事などを参考に、ubuntuにros2を入れておきます。
次に、gitを参考にcrane-x7のモジュールを入れます(ROS2のbranchを選ぶこと)。

関連app関連

sudo apt install git
sudo apt install python3-rosdep
sudo apt install colcon 

パッケージのダウンロード

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

依存関係のあるパッケージの追加

git clone -b humble https://github.com/ros-controls/gz_ros2_control.git
rosdep install -r -y -i --from-paths .

ビルド

cd ../
colcon build --symlink-install

インストール (~/.bashrcに追加した方が楽かもしれません)

source ~/ros2_ws/install/setup.bash

動作テスト

モデルの表示

ros2 launch crane_x7_description display.launch.py
こんな画面が表示されるはずです


3Dシミュレータ(Gazebo)上での動作確認

まずはGazeboを起動しておきます。

ros2 launch crane_x7_gazebo crane_x7_with_table.launch.py


起動画面の様子

この状態で、アーム制御プログラムを走らせてみます(こちらにサンプルコード集)。

グリッパの開閉

ros2 launch crane_x7_examples example.launch.py example:='gripper_control' use_sim_time:='true'

アームの上下

ros2 launch crane_x7_examples example.launch.py example:='pose_groupstate' use_sim_time:='true'

ピックアンドプレース

ros2 launch crane_x7_examples example.launch.py example:='pick_and_place' use_sim_time:='true'

以下のような感じに動けばOKなようです。

実機の利用

実機もわりと簡単に動かせました。
アームをusb接続した後、ポートを調べます。

ls /dev/ttyUSB*

「ttyUSB0」などと表示されるはずです。
次に、このポートの権限を変更します。

sudo chmod 666 /dev/ttyUSB0

あとはROSを動かすだけです。

通信の待機(起動したままにする)

ros2 launch crane_x7_examples demo.launch.py port_name:=/dev/ttyUSB0

ピックアンドプレース(別のターミナルで実行)

ros2 launch crane_x7_examples example.launch.py example:='pick_and_place'


サンプルでは、深度カメラ(realsense)をつかったプログラムもあります。

深度カメラ付きの時の待機コマンド

ros2 launch crane_x7_examples demo.launch.py port_name:=/dev/ttyUSB0 use_d435:=true

物体検出をしてpick and place ※

ros2 launch crane_x7_examples camera_example.launch.py example:='point_cloud_detection'

深度カメラのマウンタがあるので、これを3Dプリンタで印刷して取り付ける必要があります(取り付けが結構、大変そうです。試行錯誤中)。

適当に両面テープで固定したら、諸々失敗しました。


この記事が気に入ったらサポートをしてみませんか?