-
 

Package Summary

Tags No category tags.
Version 2.0.0
License Apache License 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/rt-net/crane_x7_ros.git
VCS Type git
VCS Version master
Last Updated 2023-09-29
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

examples of CRANE-X7 ROS package

Additional Links

No additional links.

Maintainers

  • RT Corporation

Authors

  • Daisuke Sato
  • Hiroyuki Nomura
English 日本語

crane_x7_examples

CRANE-X7のためのパッケージ、 crane_x7 で用いるサンプルをまとめたパッケージです。

システムの起動方法

CRANE-X7の制御信号ケーブルを制御用パソコンへ接続します。 Terminalを開き、crane_x7_bringupdemo.launchを起動します。 このlaunchファイルには次のオプションが用意されています。

  • fake_execution (default: true)

実機を使用する/使用しない

簡易シミュレータを使う場合

実機無しで動作を確認する場合、 制御信号ケーブルを接続しない状態で次のコマンドを実行します。

roslaunch crane_x7_bringup demo.launch fake_execution:=true

物理演算やセンサを含めたシミュレーションは、 後述の「Gazeboを使う場合」の手順に従ってください。

実機を使う場合

実機で動作を確認する場合、 制御信号ケーブルを接続した状態で次のコマンドを実行します。

roslaunch crane_x7_bringup demo.launch fake_execution:=false

ケーブルの接続ポート名はデフォルトで/dev/ttyUSB0です。 別のポート名(例: /dev/ttyUSB1)を使う場合は次のコマンドを実行します。

roslaunch crane_x7_bringup demo.launch fake_execution:=false port:=/dev/ttyUSB1

Gazeboを使う場合

次のコマンドで起動します。実機との接続やcrane_x7_bringupの実行は必要ありません。

roslaunch crane_x7_gazebo crane_x7_with_table.launch

Run Examples

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


gripper_action_example

ハンドを開閉させるコード例です。 このサンプルは実機動作のみに対応しています。

次のコマンドで45度まで開いて閉じる動作を実行します。

rosrun crane_x7_examples gripper_action_example.py

<img src=https://rt-net.github.io/images/crane-x7/gazebo_gripper_example.gif width=500px />

back to example list


pose_groupstate_example

group_stateを使うコード例です。

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

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

rosrun crane_x7_examples pose_groupstate_example.py

<img src=https://rt-net.github.io/images/crane-x7/gazebo_pose_groupstate.gif width=500px />

back to example list


joint_values_example

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

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

rosrun crane_x7_examples joint_values_example.py

<img src= https://rt-net.github.io/images/crane-x7/gazebo_joint_values_example.gif width = 500px />

back to example list


cartesian_path_example

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

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

rosrun crane_x7_examples cartesian_path_example.py

Videos

back to example list


crane_x7_pick_and_place_demo

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

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

rosrun crane_x7_examples crane_x7_pick_and_place_demo.py

<img src = https://rt-net.github.io/images/crane-x7/bringup_rviz.gif width = 500px />

実機を使う場合

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

<img src = https://rt-net.github.io/images/crane-x7/bringup.jpg width = 500px />

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

Videos

crane_x7_pick_and_place_demo

back to example list


preset_pid_gain_example

crane_x7_controlpreset_reconfigureを使うコード例です。 サーボモータのPIDゲインを一斉に変更できます。

プリセットはcrane_x7_control/scripts/preset_reconfigure.py にて編集できます。

次のコマンドを実行すると、preset_reconfigure.pypreset_pid_gain_example.pyのノードを起動します。

roslaunch crane_x7_examples preset_pid_gain_example.launch

Videos

preset_pid_gain_example

back to example list


teaching_example

ティーチングのコード例です。X7のPIDゲインを小さくすることでダイレクトティーチングができます。

次のコマンドでノードを起動します。

roslaunch crane_x7_examples teaching_example.launch

以下のキー割当を参考に、キーボードから操作してください。

Teaching Mode

起動時のモードです。トルクOFF*状態です。

キー 機能
s / S 現在の姿勢を保存
d / D これまでに保存した姿勢を削除
m / M Action Modeへ遷移
q / Q シャットダウン

Action Mode

Teaching Modeから遷移します。トルクON*状態です。

キー 機能
p / P 保存した姿勢を1つずつ再生
a / A 保存した姿勢のすべてを連続再生
l / L ループ再生 ON / OFF
m / M Teaching Modeへ遷移
q / Q シャットダウン
  • トルクのON / OFFはサーボモータのPIDゲインに小さい値をプリセットすることで実現しています。

Videos

teaching_example

back to example list


joystick_example

ジョイスティックでX7を動かすコード例です。 手先の位置・姿勢の変更、グリッパーの開閉、PIDゲインのプリセット、ティーチングができます。

ジョイスティックをPCに接続し、/dev/input/js0が存在することを確認してください。

次のコマンドでノードを起動します。

実機を使う場合

roslaunch crane_x7_examples joystick_example.launch

シミュレータを使う場合

シミュレータを使う場合は、エラーを防ぐためsimオプションを追加してください。

roslaunch crane_x7_examples joystick_example.launch sim:=true

キー割り当ての変更

デフォルトのキー割り当てはこちらです。ジョイスティックは Logicool Wireless Gamepad F710 を使っています。

<img src= https://rt-net.github.io/images/crane-x7/joystick_example_key_config.png width = 900px />

crane_x7_example/launch/joystick_example.launch のキー番号を編集することで、キー割り当てを変更できます。

 <node name="joystick_example" pkg="crane_x7_examples" type="joystick_example.py" required="true" output="screen">
    <!-- 使用するジョイスティックコントローラに合わせてvalueを変更してください -->
    <!-- ひとつのボタンに複数の機能を割り当てています -->
    <param name="button_shutdown_1" value="8" type="int" />
    <param name="button_shutdown_2" value="9" type="int" />

    <param name="button_name_enable" value="7" type="int" />
    <param name="button_name_home"  value="8" type="int" />

    <param name="button_preset_enable" value="7" type="int" />
    <param name="button_preset_no1" value="9" type="int" />

デフォルトのキー番号はこちらです。

<img src = https://rt-net.github.io/images/crane-x7/joystick_example_key_numbers.png width = 900px />

ジョイスティックのキー番号はトピック/joyで確認できます。

# ノードを起動する
roslaunch crane_x7_examples joystick_example.launch sim:=true

# 別のターミナルでコマンドを入力
rostopic echo /joy

# ジョイスティックのボタンを押す
header: 
  seq: 1
  stamp: 
    secs: 1549359364
    nsecs: 214800952
  frame_id: ''
axes: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
buttons: [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
---

Videos

joystick_example

back to example list


obstacle_avoidance_example

ROSのServiceを使って、障害物の追加と障害物回避をするコード例です。

次のコマンドでノードを起動します。

roslaunch crane_x7_examples obstacle_avoidance_example.launch

このサンプルでは目標姿勢と障害物の大きさ・姿勢を定義したサービスファイルを使用します。

目標姿勢と障害物の大きさ・姿勢は crane_x7_examples/scripts/obstacle_client.pyを編集することで変更できます。 デフォルトでは、直方体の箱を障害物として設定しています。

    # 障害物を設定
    obstacle_name = "box"
    obstacle_size = Vector3(0.28, 0.16, 0.14)
    obstacle_pose_stamped = PoseStamped()
    obstacle_pose_stamped.header.frame_id = "/base_link"
    obstacle_pose_stamped.pose.position.x = 0.35
    obstacle_pose_stamped.pose.position.z = obstacle_size.z/2.0

安全のため障害物として床を設置しています。 不要であればcrane_x7_examples/scripts/obstacle_avoidance_example.py を編集してください。

    # 安全のため床を障害物として生成する
    floor_name = "floor"
    floor_size = (2.0, 2.0, 0.01)
    floor_pose = PoseStamped()
    floor_pose.header.frame_id = "/base_link"
    floor_pose.pose.position.z = -floor_size[2]/2.0
    scene.add_box(floor_name, floor_pose, floor_size)
    rospy.sleep(SLEEP_TIME)

moveitが障害物回避のパスを生成できない場合、X7は動作せず、次の目標位置に対するパスを計算します。 この場合、サーバからの返答はresult=Falseとなります。

<img src = https://rt-net.github.io/images/crane-x7/gazebo_obstacle_avoidance.gif width = 500px />

back to example list


servo_info_example

サーボモータ(joint)の情報を取得するコード例です。

次のコマンドでノードを起動します。

rosrun crane_x7_examples servo_info_example.py

このサンプルではグリッパーのモータcrane_x7_gripper_finger_a_jointのトピックを取得しています。

実行するとターミナル画面にモータの電流・位置・温度が表示されます。

# 表示例
 current [mA]: 0.0     dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 2.69    dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 0.0     dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 0.0     dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 2.69    dxl_position: 2634    temp [deg C]: 42.0
 ...

また、電流が一定値を超えるとグリッパーを開く(閉じる)処理を入れてます。 これにより、手でグリッパーを開く(閉じる)ことができます。

トピックの詳細については、crane_x7_control/README.mdを確認してください。

back to example list


pick_and_place_in_gazebo_example

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

gripperをEffortControllerで制御するため、オプションを追加してGazeboを起動します。

roslaunch crane_x7_gazebo crane_x7_with_table.launch use_effort_gripper:=true

Gazebo起動後、次のコマンドでサンプルを実行します。

rosrun crane_x7_examples pick_and_place_in_gazebo_example.py

<img src = https://rt-net.github.io/images/crane-x7/gazebo_pick_and_place.gif width = 500px />

Videos

pick_and_place_in_gazebo

back to example list

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
crane_x7

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged crane_x7_examples at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.0.0
License Apache License 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/rt-net/crane_x7_ros.git
VCS Type git
VCS Version master
Last Updated 2023-09-29
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

examples of CRANE-X7 ROS package

Additional Links

No additional links.

Maintainers

  • RT Corporation

Authors

  • Daisuke Sato
  • Hiroyuki Nomura
English 日本語

crane_x7_examples

CRANE-X7のためのパッケージ、 crane_x7 で用いるサンプルをまとめたパッケージです。

システムの起動方法

CRANE-X7の制御信号ケーブルを制御用パソコンへ接続します。 Terminalを開き、crane_x7_bringupdemo.launchを起動します。 このlaunchファイルには次のオプションが用意されています。

  • fake_execution (default: true)

実機を使用する/使用しない

簡易シミュレータを使う場合

実機無しで動作を確認する場合、 制御信号ケーブルを接続しない状態で次のコマンドを実行します。

roslaunch crane_x7_bringup demo.launch fake_execution:=true

物理演算やセンサを含めたシミュレーションは、 後述の「Gazeboを使う場合」の手順に従ってください。

実機を使う場合

実機で動作を確認する場合、 制御信号ケーブルを接続した状態で次のコマンドを実行します。

roslaunch crane_x7_bringup demo.launch fake_execution:=false

ケーブルの接続ポート名はデフォルトで/dev/ttyUSB0です。 別のポート名(例: /dev/ttyUSB1)を使う場合は次のコマンドを実行します。

roslaunch crane_x7_bringup demo.launch fake_execution:=false port:=/dev/ttyUSB1

Gazeboを使う場合

次のコマンドで起動します。実機との接続やcrane_x7_bringupの実行は必要ありません。

roslaunch crane_x7_gazebo crane_x7_with_table.launch

Run Examples

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


gripper_action_example

ハンドを開閉させるコード例です。 このサンプルは実機動作のみに対応しています。

次のコマンドで45度まで開いて閉じる動作を実行します。

rosrun crane_x7_examples gripper_action_example.py

<img src=https://rt-net.github.io/images/crane-x7/gazebo_gripper_example.gif width=500px />

back to example list


pose_groupstate_example

group_stateを使うコード例です。

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

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

rosrun crane_x7_examples pose_groupstate_example.py

<img src=https://rt-net.github.io/images/crane-x7/gazebo_pose_groupstate.gif width=500px />

back to example list


joint_values_example

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

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

rosrun crane_x7_examples joint_values_example.py

<img src= https://rt-net.github.io/images/crane-x7/gazebo_joint_values_example.gif width = 500px />

back to example list


cartesian_path_example

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

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

rosrun crane_x7_examples cartesian_path_example.py

Videos

back to example list


crane_x7_pick_and_place_demo

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

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

rosrun crane_x7_examples crane_x7_pick_and_place_demo.py

<img src = https://rt-net.github.io/images/crane-x7/bringup_rviz.gif width = 500px />

実機を使う場合

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

<img src = https://rt-net.github.io/images/crane-x7/bringup.jpg width = 500px />

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

Videos

crane_x7_pick_and_place_demo

back to example list


preset_pid_gain_example

crane_x7_controlpreset_reconfigureを使うコード例です。 サーボモータのPIDゲインを一斉に変更できます。

プリセットはcrane_x7_control/scripts/preset_reconfigure.py にて編集できます。

次のコマンドを実行すると、preset_reconfigure.pypreset_pid_gain_example.pyのノードを起動します。

roslaunch crane_x7_examples preset_pid_gain_example.launch

Videos

preset_pid_gain_example

back to example list


teaching_example

ティーチングのコード例です。X7のPIDゲインを小さくすることでダイレクトティーチングができます。

次のコマンドでノードを起動します。

roslaunch crane_x7_examples teaching_example.launch

以下のキー割当を参考に、キーボードから操作してください。

Teaching Mode

起動時のモードです。トルクOFF*状態です。

キー 機能
s / S 現在の姿勢を保存
d / D これまでに保存した姿勢を削除
m / M Action Modeへ遷移
q / Q シャットダウン

Action Mode

Teaching Modeから遷移します。トルクON*状態です。

キー 機能
p / P 保存した姿勢を1つずつ再生
a / A 保存した姿勢のすべてを連続再生
l / L ループ再生 ON / OFF
m / M Teaching Modeへ遷移
q / Q シャットダウン
  • トルクのON / OFFはサーボモータのPIDゲインに小さい値をプリセットすることで実現しています。

Videos

teaching_example

back to example list


joystick_example

ジョイスティックでX7を動かすコード例です。 手先の位置・姿勢の変更、グリッパーの開閉、PIDゲインのプリセット、ティーチングができます。

ジョイスティックをPCに接続し、/dev/input/js0が存在することを確認してください。

次のコマンドでノードを起動します。

実機を使う場合

roslaunch crane_x7_examples joystick_example.launch

シミュレータを使う場合

シミュレータを使う場合は、エラーを防ぐためsimオプションを追加してください。

roslaunch crane_x7_examples joystick_example.launch sim:=true

キー割り当ての変更

デフォルトのキー割り当てはこちらです。ジョイスティックは Logicool Wireless Gamepad F710 を使っています。

<img src= https://rt-net.github.io/images/crane-x7/joystick_example_key_config.png width = 900px />

crane_x7_example/launch/joystick_example.launch のキー番号を編集することで、キー割り当てを変更できます。

 <node name="joystick_example" pkg="crane_x7_examples" type="joystick_example.py" required="true" output="screen">
    <!-- 使用するジョイスティックコントローラに合わせてvalueを変更してください -->
    <!-- ひとつのボタンに複数の機能を割り当てています -->
    <param name="button_shutdown_1" value="8" type="int" />
    <param name="button_shutdown_2" value="9" type="int" />

    <param name="button_name_enable" value="7" type="int" />
    <param name="button_name_home"  value="8" type="int" />

    <param name="button_preset_enable" value="7" type="int" />
    <param name="button_preset_no1" value="9" type="int" />

デフォルトのキー番号はこちらです。

<img src = https://rt-net.github.io/images/crane-x7/joystick_example_key_numbers.png width = 900px />

ジョイスティックのキー番号はトピック/joyで確認できます。

# ノードを起動する
roslaunch crane_x7_examples joystick_example.launch sim:=true

# 別のターミナルでコマンドを入力
rostopic echo /joy

# ジョイスティックのボタンを押す
header: 
  seq: 1
  stamp: 
    secs: 1549359364
    nsecs: 214800952
  frame_id: ''
axes: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
buttons: [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
---

Videos

joystick_example

back to example list


obstacle_avoidance_example

ROSのServiceを使って、障害物の追加と障害物回避をするコード例です。

次のコマンドでノードを起動します。

roslaunch crane_x7_examples obstacle_avoidance_example.launch

このサンプルでは目標姿勢と障害物の大きさ・姿勢を定義したサービスファイルを使用します。

目標姿勢と障害物の大きさ・姿勢は crane_x7_examples/scripts/obstacle_client.pyを編集することで変更できます。 デフォルトでは、直方体の箱を障害物として設定しています。

    # 障害物を設定
    obstacle_name = "box"
    obstacle_size = Vector3(0.28, 0.16, 0.14)
    obstacle_pose_stamped = PoseStamped()
    obstacle_pose_stamped.header.frame_id = "/base_link"
    obstacle_pose_stamped.pose.position.x = 0.35
    obstacle_pose_stamped.pose.position.z = obstacle_size.z/2.0

安全のため障害物として床を設置しています。 不要であればcrane_x7_examples/scripts/obstacle_avoidance_example.py を編集してください。

    # 安全のため床を障害物として生成する
    floor_name = "floor"
    floor_size = (2.0, 2.0, 0.01)
    floor_pose = PoseStamped()
    floor_pose.header.frame_id = "/base_link"
    floor_pose.pose.position.z = -floor_size[2]/2.0
    scene.add_box(floor_name, floor_pose, floor_size)
    rospy.sleep(SLEEP_TIME)

moveitが障害物回避のパスを生成できない場合、X7は動作せず、次の目標位置に対するパスを計算します。 この場合、サーバからの返答はresult=Falseとなります。

<img src = https://rt-net.github.io/images/crane-x7/gazebo_obstacle_avoidance.gif width = 500px />

back to example list


servo_info_example

サーボモータ(joint)の情報を取得するコード例です。

次のコマンドでノードを起動します。

rosrun crane_x7_examples servo_info_example.py

このサンプルではグリッパーのモータcrane_x7_gripper_finger_a_jointのトピックを取得しています。

実行するとターミナル画面にモータの電流・位置・温度が表示されます。

# 表示例
 current [mA]: 0.0     dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 2.69    dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 0.0     dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 0.0     dxl_position: 2634    temp [deg C]: 42.0  
 current [mA]: 2.69    dxl_position: 2634    temp [deg C]: 42.0
 ...

また、電流が一定値を超えるとグリッパーを開く(閉じる)処理を入れてます。 これにより、手でグリッパーを開く(閉じる)ことができます。

トピックの詳細については、crane_x7_control/README.mdを確認してください。

back to example list


pick_and_place_in_gazebo_example

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

gripperをEffortControllerで制御するため、オプションを追加してGazeboを起動します。

roslaunch crane_x7_gazebo crane_x7_with_table.launch use_effort_gripper:=true

Gazebo起動後、次のコマンドでサンプルを実行します。

rosrun crane_x7_examples pick_and_place_in_gazebo_example.py

<img src = https://rt-net.github.io/images/crane-x7/gazebo_pick_and_place.gif width = 500px />

Videos

pick_and_place_in_gazebo

back to example list

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
crane_x7

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged crane_x7_examples at Robotics Stack Exchange