crane_x7_control package from crane_x7 repocrane_x7 crane_x7_bringup crane_x7_control crane_x7_examples crane_x7_gazebo crane_x7_moveit_config crane_x7_msgs |
|
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
Additional Links
Maintainers
- RT Corporation
Authors
- Hiroyuki Nomura
- Geoffrey Biggs
crane_x7_control
CRANE-X7のためのパッケージ、 crane_x7_ros
のcontrolパッケージです。
通信ポートの設定
crane_x7_control
はU2D2(USB-RS485変換ケーブル)を使用してCRANE-X7のモータ制御を行います。
U2D2はLinuxに接続すると/dev/ttyUSB0
として認識されるので、次のコマンドでアクセス権限を変更します。
sudo chmod 666 /dev/ttyUSB0
ケーブルの接続ポート名はデフォルトで/dev/ttyUSB0
です。 別のポート名(例: /dev/ttyUSB1
)を使う場合は次のコマンドを実行します。
roslaunch crane_x7_control crane_x7_control.launch port:=/dev/ttyUSB1
制御周期の変更
crane_x7_control
はデフォルト200Hz周期で制御しています。
制御周期を変更する場合はcrane_x7_control/src/hardware.cpp
を編集してください。
#define CONTROL_HZ (200)
実際に動作している制御周期は次のようにトピックから確認できます。
$ rostopic hz /crane_x7/crane_x7_control/crane_x7_gripper_finger_a_joint/current
subscribed to [/crane_x7/crane_x7_control/crane_x7_gripper_finger_a_joint/current]
average rate: 199.928
min: 0.002s max: 0.008s std dev: 0.00055s window: 190
average rate: 198.470
min: 0.001s max: 0.014s std dev: 0.00099s window: 387
実際の制御周期が200Hzに達せず、100Hz程度に低くなってしまう場合、USB通信ポートのlatency_timer
を変更してください。
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
16
# echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
参考資料:https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#usb-latency-setting
ネームスペースとトピック
crane_x7_control
は/crane_x7
をルートとするネームスペースにパラメータやトピックを定義します。
各jointについて次のトピックを配信します。
current:電流値[mA]
dxl_position:現在角度[360/4096度]
temp:温度[度]
dynamic_reconfigure
crane_x7_control
はdynamic_reconfigure
に対応しています。次のコマンドでrqt_reconfigure
を起動してアクセスすると各Jointのサーボパラメータを変更することができます。
rosrun rqt_reconfigure rqt_reconfigure
各パラメータの詳細についてはROBOTIS公式のXM430およびXM540のサーボマニュアルを参照して下さい。
制御モード設定
CRANE-X7は位置制御モードと電流制御モードに対応しています。基本設定は位置制御モードになっていますが、複数箇所の設定変更を行うことで電流制御モードへ切り替えることが可能です。
ハンドの設定を位置制御モードから電流制御モードへ変更する手順を紹介します。
-
サーボの設定変更
- サーボモータの
Operating Mode
(Address:11)を3:位置制御モード
から0:電流制御モード
へ設定変更する- Dynamixel Wizard 2.0を使用するとモードを変更できます。
- サーボモータの
-
crane_x7_control
の設定変更-
crane_x7_control/config/crane_x7_control.yaml
のハンド部分について次のように変更する
-
gripper_controller:
- type: "position_controllers/GripperActionController"
+ type: "effort_controllers/GripperActionController"
publish_rate: 250
joint: crane_x7_gripper_finger_a_joint
+ gains:
+ crane_x7_gripper_finger_a_joint: { p: 1.0, i: 0.01, d: 0.1 }
action_monitor_rate: 10
state_publish_rate: 100
stall_velocity_threshold: 0.01
goal_tolerance: 0.2
stall_timeout: 0.3
dynamixel_port:
port_name: "/dev/ttyUSB0"
baud_rate: 3000000
joints:
- crane_x7_shoulder_fixed_part_pan_joint
- crane_x7_shoulder_revolute_part_tilt_joint
- crane_x7_upper_arm_revolute_part_twist_joint
- crane_x7_upper_arm_revolute_part_rotate_joint
- crane_x7_lower_arm_fixed_part_joint
- crane_x7_lower_arm_revolute_part_joint
- crane_x7_wrist_joint
- crane_x7_gripper_finger_a_joint
crane_x7_shoulder_fixed_part_pan_joint: {id: 2, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_shoulder_revolute_part_tilt_joint: {id: 3, center: 2048, home: 2048, effort_const: 2.79, mode: 3 }
crane_x7_upper_arm_revolute_part_twist_joint: {id: 4, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_upper_arm_revolute_part_rotate_joint: {id: 5, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_lower_arm_fixed_part_joint: {id: 6, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_lower_arm_revolute_part_joint: {id: 7, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_wrist_joint: {id: 8, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
- crane_x7_gripper_finger_a_joint: {id: 9, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
+ crane_x7_gripper_finger_a_joint: {id: 9, center: 2048, home: 2048, effort_const: 1.79, mode: 0 }
PIDの設定値はCRANE-X7を制御するROS環境によって特性が異なる可能性があります。
【電流モードに関する注意】
電流制御モードは、位置制御モードと異なり、サーボに設定された角度リミットが無効になります。
ユーザー自身で作成されたプログラムに適切な制限動作が備わっていない場合、本体の損傷や、本体が周囲や作業者に接触、あるいは衝突し、失明や打撲による死亡といった思わぬ重大事故が発生する危険があります。
ユーザーの責任において十分に安全に注意した上でご使用下さい。
当該製品および当ソフトウェアの使用中に生じたいかなる損害も株式会社アールティでは一切の責任を負いかねます。
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
crane_x7 | |
crane_x7_gazebo |
Launch files
- launch/crane_x7_control.launch
-
- port [default: /dev/ttyUSB0]
- launch/crane_x7_fake_control.launch
-
- use_effort_gripper [default: false]
Messages
Services
Plugins
Recent questions tagged crane_x7_control at Robotics Stack Exchange
crane_x7_control package from crane_x7 repocrane_x7 crane_x7_bringup crane_x7_control crane_x7_examples crane_x7_gazebo crane_x7_moveit_config crane_x7_msgs |
|
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
Additional Links
Maintainers
- RT Corporation
Authors
- Hiroyuki Nomura
- Geoffrey Biggs
crane_x7_control
CRANE-X7のためのパッケージ、 crane_x7_ros
のcontrolパッケージです。
通信ポートの設定
crane_x7_control
はU2D2(USB-RS485変換ケーブル)を使用してCRANE-X7のモータ制御を行います。
U2D2はLinuxに接続すると/dev/ttyUSB0
として認識されるので、次のコマンドでアクセス権限を変更します。
sudo chmod 666 /dev/ttyUSB0
ケーブルの接続ポート名はデフォルトで/dev/ttyUSB0
です。 別のポート名(例: /dev/ttyUSB1
)を使う場合は次のコマンドを実行します。
roslaunch crane_x7_control crane_x7_control.launch port:=/dev/ttyUSB1
制御周期の変更
crane_x7_control
はデフォルト200Hz周期で制御しています。
制御周期を変更する場合はcrane_x7_control/src/hardware.cpp
を編集してください。
#define CONTROL_HZ (200)
実際に動作している制御周期は次のようにトピックから確認できます。
$ rostopic hz /crane_x7/crane_x7_control/crane_x7_gripper_finger_a_joint/current
subscribed to [/crane_x7/crane_x7_control/crane_x7_gripper_finger_a_joint/current]
average rate: 199.928
min: 0.002s max: 0.008s std dev: 0.00055s window: 190
average rate: 198.470
min: 0.001s max: 0.014s std dev: 0.00099s window: 387
実際の制御周期が200Hzに達せず、100Hz程度に低くなってしまう場合、USB通信ポートのlatency_timer
を変更してください。
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
16
# echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
参考資料:https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#usb-latency-setting
ネームスペースとトピック
crane_x7_control
は/crane_x7
をルートとするネームスペースにパラメータやトピックを定義します。
各jointについて次のトピックを配信します。
current:電流値[mA]
dxl_position:現在角度[360/4096度]
temp:温度[度]
dynamic_reconfigure
crane_x7_control
はdynamic_reconfigure
に対応しています。次のコマンドでrqt_reconfigure
を起動してアクセスすると各Jointのサーボパラメータを変更することができます。
rosrun rqt_reconfigure rqt_reconfigure
各パラメータの詳細についてはROBOTIS公式のXM430およびXM540のサーボマニュアルを参照して下さい。
制御モード設定
CRANE-X7は位置制御モードと電流制御モードに対応しています。基本設定は位置制御モードになっていますが、複数箇所の設定変更を行うことで電流制御モードへ切り替えることが可能です。
ハンドの設定を位置制御モードから電流制御モードへ変更する手順を紹介します。
-
サーボの設定変更
- サーボモータの
Operating Mode
(Address:11)を3:位置制御モード
から0:電流制御モード
へ設定変更する- Dynamixel Wizard 2.0を使用するとモードを変更できます。
- サーボモータの
-
crane_x7_control
の設定変更-
crane_x7_control/config/crane_x7_control.yaml
のハンド部分について次のように変更する
-
gripper_controller:
- type: "position_controllers/GripperActionController"
+ type: "effort_controllers/GripperActionController"
publish_rate: 250
joint: crane_x7_gripper_finger_a_joint
+ gains:
+ crane_x7_gripper_finger_a_joint: { p: 1.0, i: 0.01, d: 0.1 }
action_monitor_rate: 10
state_publish_rate: 100
stall_velocity_threshold: 0.01
goal_tolerance: 0.2
stall_timeout: 0.3
dynamixel_port:
port_name: "/dev/ttyUSB0"
baud_rate: 3000000
joints:
- crane_x7_shoulder_fixed_part_pan_joint
- crane_x7_shoulder_revolute_part_tilt_joint
- crane_x7_upper_arm_revolute_part_twist_joint
- crane_x7_upper_arm_revolute_part_rotate_joint
- crane_x7_lower_arm_fixed_part_joint
- crane_x7_lower_arm_revolute_part_joint
- crane_x7_wrist_joint
- crane_x7_gripper_finger_a_joint
crane_x7_shoulder_fixed_part_pan_joint: {id: 2, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_shoulder_revolute_part_tilt_joint: {id: 3, center: 2048, home: 2048, effort_const: 2.79, mode: 3 }
crane_x7_upper_arm_revolute_part_twist_joint: {id: 4, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_upper_arm_revolute_part_rotate_joint: {id: 5, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_lower_arm_fixed_part_joint: {id: 6, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_lower_arm_revolute_part_joint: {id: 7, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
crane_x7_wrist_joint: {id: 8, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
- crane_x7_gripper_finger_a_joint: {id: 9, center: 2048, home: 2048, effort_const: 1.79, mode: 3 }
+ crane_x7_gripper_finger_a_joint: {id: 9, center: 2048, home: 2048, effort_const: 1.79, mode: 0 }
PIDの設定値はCRANE-X7を制御するROS環境によって特性が異なる可能性があります。
【電流モードに関する注意】
電流制御モードは、位置制御モードと異なり、サーボに設定された角度リミットが無効になります。
ユーザー自身で作成されたプログラムに適切な制限動作が備わっていない場合、本体の損傷や、本体が周囲や作業者に接触、あるいは衝突し、失明や打撲による死亡といった思わぬ重大事故が発生する危険があります。
ユーザーの責任において十分に安全に注意した上でご使用下さい。
当該製品および当ソフトウェアの使用中に生じたいかなる損害も株式会社アールティでは一切の責任を負いかねます。
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
crane_x7 | |
crane_x7_gazebo |
Launch files
- launch/crane_x7_control.launch
-
- port [default: /dev/ttyUSB0]
- launch/crane_x7_fake_control.launch
-
- use_effort_gripper [default: false]