Skip to content

Latest commit

 

History

History
320 lines (213 loc) · 11.6 KB

README.md

File metadata and controls

320 lines (213 loc) · 11.6 KB

crane_x7_examples

このパッケージはCRANE-X7 ROS 2パッケージのサンプルコード集です。

準備(実機を使う場合)

crane_x7

1. CRANE-X7本体をPCに接続する

CRANE-X7本体をPCに接続します。 接続方法は製品マニュアルを参照してください。

※CRANE-X7本体が接触しないように、十分なスペースを確保してください。

2. USB通信ポートの接続を確認する

USB通信ポートの設定についてはcrane_x7_controlREADME を参照してください。

正しく設定できていない場合、CRANE-X7が動作しないので注意してください

3. move_groupとcontrollerを起動する

標準のCRANE-X7を使用する場合

次のコマンドでmove_group (crane_x7_moveit_config)と controller (crane_x7_control)を起動します。

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

RealSense D435マウンタ搭載モデルを使用する場合

RealSense D435マウンタを搭載している場合は次のコマンドを実行します。RealSense D435が起動し、camera_linkがロボットモデルに追加されます。

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

準備 (Gazeboを使う場合)

crane_x7_gazebo

1. move_groupとGazeboを起動する

次のコマンドでmove_group (crane_x7_moveit_config)と Gazeboを起動します。

ros2 launch crane_x7_gazebo crane_x7_with_table.launch.py

準備(Mock Componentsを使う場合)

1. move_groupとcontrollerを起動する

次のコマンドでmove_group (crane_x7_moveit_config)と controller (crane_x7_control)を起動します。

ros2 launch crane_x7_examples demo.launch.py use_mock_components:=true

Mock Componentsではカメラを使ったサンプルを実行することはできません。

サンプルプログラムを実行する

準備ができたらサンプルプログラムを実行します。 例えばグリッパを開閉するサンプルは次のコマンドで実行できます。

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

終了するときはCtrl+cを入力します。

Gazeboでサンプルプログラムを実行する場合

Gazeboでサンプルプログラムを実行する場合はuse_sim_timeオプションを付けます。

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

Examples

demo.launchを実行している状態で各サンプルを実行できます。

実行できるサンプルの一覧は、example.launch.pyにオプション-sを付けて実行することで表示できます。

$ ros2 launch crane_x7_examples example.launch.py -s
Arguments (pass arguments as '<name>:=<value>'):

    'example':
        Set an example executable name: [gripper_control, pose_groupstate, joint_values,pick_and_place, cartesian_path]
        (default: 'pose_groupstate')

gripper_control

ハンドを開閉させるコード例です。

次のコマンドを実行します。

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

Videos

crane_x7_gripper_control_demo

back to example list


pose_groupstate

group_stateを使うコード例です。

SRDFファイルcrane_x7_moveit_config/config/crane_x7.srdf に記載されているhomeverticalの姿勢に移行します。

次のコマンドを実行します。

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

Videos

crane_x7_pose_groupstate_demo

back to example list


joint_values

アームのジョイント角度を1つずつ変更させるコード例です。

次のコマンドを実行します。

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

Videos

crane_x7_joint_values_demo

back to example list


cartesian_path

Cartesian Path を生成し、手先で円を描くコード例です。

次のコマンドを実行します。

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

Videos

crane_x7_cartesian_path_demo

back to example list


pick_and_place

モノを掴む・持ち上げる・運ぶ・置くコード例です。

次のコマンドを実行します。

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

実機を使う場合

CRANE-X7から20cm離れた位置にピッキング対象を設置します。

サンプルで使用しているこのオレンジ色のソフトボールはRT ROBOT SHOPのこちらのページから入手することができます。

Videos

crane_x7_pick_and_place_demo

back to example list

Camera Examples

RealSense D435マウンタ搭載モデルのカメラを使用したサンプルコードです。

「RealSense D435マウンタ搭載モデルを使用する場合」の手順に従ってdemo.launchを実行している状態で各サンプルを実行できます。

実行できるサンプルの一覧は、camera_example.launch.pyにオプション-sを付けて実行することで表示できます。

$ ros2 launch crane_x7_examples camera_example.launch.py -s
Arguments (pass arguments as '<name>:=<value>'):

    'example':
        Set an example executable name: [aruco_detection, point_cloud_detection]
        (default: 'aruco_detection')

aruco_detection

モノに取り付けたArUcoマーカをカメラで検出し、マーカ位置に合わせて掴むコード例です。 マーカはaruco_markers.pdfをA4紙に印刷し、一辺50mmの立方体に取り付けて使用します。

検出されたマーカの位置姿勢はtfのフレームとして配信されます。 tfのframe_idはマーカIDごとに異なりID0のマーカのframe_idtarget_0になります。掴む対象はtarget_0に設定されています。マーカ検出にはOpenCVを使用しています。

次のコマンドを実行します

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

Videos

crane_x7_aruco_detection_demo

back to camera example list


color_detection

特定の色の物体を検出して掴むコード例です。

デフォルトでは青い物体の位置をtfのフレームとして配信します。 tfのframe_idtarget_0です。 色の検出にはOpenCVを使用しています。 検出した物体の距離は深度画像から取得します。

次のコマンドを実行します

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

Videos

crane_x7_color_detection_demo

back to camera example list


point_cloud_detection

点群から物体を検出して掴むコード例です。

検出された物体位置はtfのフレームとして配信されます。 tfのframe_idは検出された順にtarget_0target_1target_2…に設定されます。掴む対象はtarget_0に設定されています。 物体検出にはPoint Cloud Libraryを使用しています。

次のコマンドを実行します

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

Videos

crane_x7_point_cloud_detection_demo

back to camera example list