|
crane_plus_control package from crane_plus repocrane_plus crane_plus_control crane_plus_description crane_plus_examples crane_plus_gazebo crane_plus_moveit_config |
Package Summary
| Tags | No category tags. |
| Version | 2.0.1 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | CRANE+ V2 ROS 2 Packages |
| Checkout URI | https://github.com/rt-net/crane_plus.git |
| VCS Type | git |
| VCS Version | humble-devel |
| Last Updated | 2024-12-03 |
| Dev Status | MAINTAINED |
| CI status | No Continuous Integration |
| Released | RELEASED |
| Tags | robot ros2 crane-plus |
| Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- RT Corporation
Authors
- Shota Aoki
- Atsushi Kuwagata
- Yusuke Kato
crane_plus_control
このパッケージはros2_control をベースにした、CRANE+ V2 のコントローラパッケージです。
ros2_control関連ファイル
-
crane_plus_control::CranePlusHardware (crane_plus_hardware)- 本パッケージがエクスポートするHardware Componentsです
- CRANE+ V2実機と通信します
- crane_plus_description/urdf/crane_plus.ros2_control.xacroから読み込まれます
-
launch/crane_plus_control.launch.py
- Controller Managerとコントローラを起動するlaunchファイルです
-
config/crane_plus_controllers.yaml
- Controller Managerのパラメータファイルです
実機のセットアップ
crane_plus_hardwareがCRANE+ V2実機と通信するために、
PCとCRANE+ V2の設定が必要です。
正しく設定できていない場合、CRANE+ V2が動作しない、振動する、などの不安定な動きをするため注意してください
USB通信ポートの設定
crane_plus_hardwareはUSB通信ポート(/dev/ttyUSB*)を経由してCRANE+ V2と通信します。
次のコマンドでアクセス権限を変更します。
# /dev/ttyUSB0を使用する場合
$ sudo chmod 666 /dev/ttyUSB0
latency_timerの設定
CRANE+ V2を100 Hz周期で制御するためには、 USB通信ポートとサーボモータの設定を変更します。
下記のコマンドを実行してUSB通信ポートのlatency_timerを変更します。
参考資料:https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#usb-latency-setting
# /dev/ttyUSB0を使用する場合
# rootに切り替える
$ sudo su
# echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
# exit
Return Delay Timeの設定
CRANE+ V2に搭載されているサーボモータDynamixel AX-12A
にはReturn Delay Timeというパラメータがあります。
デフォルトは250がセットされており、
サーボモータがInstruction Packetを受信してからStatus Packetを送信するまでに500 usecの遅れがあります。
Dynamixel Wizard 2
を使用してRetrun Delay Timeを小さくすると、制御周期が早くなります。

ノードの起動
crane_plus_control.launch.pyを実行すると、Controller Managerノードが起動し、
以下のコントローラが読み込まれます。
- crane_plus_joint_state_broadcaster (
joint_state_broadcaster/JointStateBroadcaster) - crane_plus_arm_controller (
joint_trajectory_controller/JointTrajectoryController) - crane_plus_gripper_controller (
joint_trajectory_controller/JointTrajectoryController)
ノードが起動した後、
次のコマンドでジョイント角度情報(joint_states)を表示できます
$ ros2 topic echo /joint_states
Controller Managerのパラメータ
Controller Managerのパラメータは
config/crane_plus_controllers.yaml
で設定しています。
controller_manager:
ros__parameters:
update_rate: 100 # Hz
crane_plus_arm_controller:
type: joint_trajectory_controller/JointTrajectoryController
crane_plus_gripper_controller:
type: joint_trajectory_controller/JointTrajectoryController
joint_state_broadcaster:
type: joint_state_broadcaster/JointStateBroadcaster
制御周期
update_rateは制御周期を設定します。
CRANE+ V2に使用しているサーボモータの仕様により、 100 Hz以上の周期で制御できません。
コントローラ
CRANE+ V2の腕の制御用にcrane_plus_arm_controllerを、
グリッパの制御用にcrane_plus_gripper_controllerを設定しています。
crane_plus_hardwareのパラメータ
crane_plus_hardwareのパラメータは
crane_plus_description/urdf/crane_plus.urdf.xacro
で設定しています。
<xacro:arg name="use_gazebo" default="false" />
<xacro:arg name="port_name" default="/dev/ttyUSB0" />
<xacro:arg name="baudrate" default="1000000" />
<xacro:arg name="timeout_seconds" default="5.0" />
<xacro:arg name="read_velocities" default="0" />
<xacro:arg name="read_loads" default="0" />
<xacro:arg name="read_voltages" default="0" />
<xacro:arg name="read_temperatures" default="0" />
USB通信ポート
port_nameはCRANE+ V2との通信に使用するUSB通信ポートを設定します。
ボーレート
baudrateはCRANE+ V2に搭載したDynamixelとの通信ボーレートを設定します。
デフォルト値にはDynamixel AX-12Aの最高ボーレートである1000000 (1 Mbps)を設定しています。
通信タイムアウト
timeout_secondsは通信タイムアウト時間(秒)を設定します。
crane_plus_hardwareは、一定時間(デフォルト5秒間)通信に失敗し続けると、
read/write動作を停止します。
USBケーブルや電源ケーブルが抜けた場合等に有効です。
サーボパラメータ
read_velocities、read_loads、read_voltages、read_temperatures
は、サーボの回転速度、電圧、負荷、温度を読み取るためのパラメータです。
1をセットすると、サーボパラメータを読み取ります。
これらのパラメータを読み取ると通信データ量が増加するため、制御周期が100 Hzより低下します。
読み取ったパラメータはdynamic_joint_statesトピックとしてパブリッシュされます。
$ ros2 topic echo /dynamic_joint_states
Changelog for package crane_plus_control
2.0.1 (2023-09-08)
2.0.0 (2023-08-01)
- Feature/support humble (#58)
- Contributors: Shota Aoki, YusukeKato
1.1.0 (2022-08-16)
1.0.0 (2022-06-22)
- パッケージバージョン表記の更新 (#40)
- xacroファイルの読み込みを一元化するためのPythonスクリプトを追加 (#36)
- GripperActionControllerに関するコメントを削除 (#37)
- hardware_interfaceのパラメータをxacro引数から変更する (#35)
- Use new ros2 control interface (#27)
- Contributors: Atsushi Kuwagata, Shota Aoki
0.1.0 (2020-11-11)
- Fix READMEs (#25)
- Update control error log (#24)
- Update maintainer and author in package.xml (#23)
- Update for release (#21)
- Update crane_plus_control (#16)
- Add joint_values example and pick_and_place example (#15)
- Fix launch files (#12)
- Use joint_trajectory_controller for gripper control (#11)
- Refactor to pass ament_lint check (#9)
- Revert "Use new joint handles (#4)" (#7)
- Use new joint handles (#4)
- Add crane plus control (#3)
- Contributors: Shota Aoki
Wiki Tutorials
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| controller_manager | |
| crane_plus_description | |
| dynamixel_sdk | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| ros2_controllers | |
| ros2controlcli | |
| xacro |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| crane_plus | |
| crane_plus_examples |
Launch files
Messages
Services
Plugins
Recent questions tagged crane_plus_control at Robotics Stack Exchange
|
crane_plus_control package from crane_plus repocrane_plus crane_plus_control crane_plus_description crane_plus_examples crane_plus_gazebo crane_plus_moveit_config |
Package Summary
| Tags | No category tags. |
| Version | 3.0.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | CRANE+ V2 ROS 2 Packages |
| Checkout URI | https://github.com/rt-net/crane_plus.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-04-23 |
| Dev Status | MAINTAINED |
| CI status | No Continuous Integration |
| Released | RELEASED |
| Tags | robot ros2 crane-plus |
| Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- RT Corporation
Authors
- Shota Aoki
- Atsushi Kuwagata
- Yusuke Kato
crane_plus_control
このパッケージはros2_control をベースにした、CRANE+ V2 のコントローラパッケージです。
ros2_control関連ファイル
-
crane_plus_control::CranePlusHardware (crane_plus_hardware)- 本パッケージがエクスポートするHardware Componentsです
- CRANE+ V2実機と通信します
- crane_plus_description/urdf/crane_plus.ros2_control.xacroから読み込まれます
-
launch/crane_plus_control.launch.py
- Controller Managerとコントローラを起動するlaunchファイルです
-
config/crane_plus_controllers.yaml
- Controller Managerのパラメータファイルです
実機のセットアップ
crane_plus_hardwareがCRANE+ V2実機と通信するために、
PCとCRANE+ V2の設定が必要です。
正しく設定できていない場合、CRANE+ V2が動作しない、振動する、などの不安定な動きをするため注意してください
USB通信ポートの設定
crane_plus_hardwareはUSB通信ポート(/dev/ttyUSB*)を経由してCRANE+ V2と通信します。
次のコマンドでアクセス権限を変更します。
# /dev/ttyUSB0を使用する場合
$ sudo chmod 666 /dev/ttyUSB0
latency_timerの設定
CRANE+ V2を100 Hz周期で制御するためには、 USB通信ポートとサーボモータの設定を変更します。
下記のコマンドを実行してUSB通信ポートのlatency_timerを変更します。
参考資料:https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#usb-latency-setting
# /dev/ttyUSB0を使用する場合
# rootに切り替える
$ sudo su
# echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
# exit
Return Delay Timeの設定
CRANE+ V2に搭載されているサーボモータDynamixel AX-12A
にはReturn Delay Timeというパラメータがあります。
デフォルトは250がセットされており、
サーボモータがInstruction Packetを受信してからStatus Packetを送信するまでに500 usecの遅れがあります。
Dynamixel Wizard 2
を使用してRetrun Delay Timeを小さくすると、制御周期が早くなります。

ノードの起動
crane_plus_control.launch.pyを実行すると、Controller Managerノードが起動し、
以下のコントローラが読み込まれます。
- crane_plus_joint_state_broadcaster (
joint_state_broadcaster/JointStateBroadcaster) - crane_plus_arm_controller (
joint_trajectory_controller/JointTrajectoryController) - crane_plus_gripper_controller (
joint_trajectory_controller/JointTrajectoryController)
ノードが起動した後、
次のコマンドでジョイント角度情報(joint_states)を表示できます
$ ros2 topic echo /joint_states
Controller Managerのパラメータ
Controller Managerのパラメータは
config/crane_plus_controllers.yaml
で設定しています。
controller_manager:
ros__parameters:
update_rate: 100 # Hz
crane_plus_arm_controller:
type: joint_trajectory_controller/JointTrajectoryController
crane_plus_gripper_controller:
type: joint_trajectory_controller/JointTrajectoryController
joint_state_broadcaster:
type: joint_state_broadcaster/JointStateBroadcaster
制御周期
update_rateは制御周期を設定します。
CRANE+ V2に使用しているサーボモータの仕様により、 100 Hz以上の周期で制御できません。
コントローラ
CRANE+ V2の腕の制御用にcrane_plus_arm_controllerを、
グリッパの制御用にcrane_plus_gripper_controllerを設定しています。
crane_plus_hardwareのパラメータ
crane_plus_hardwareのパラメータは
crane_plus_description/urdf/crane_plus.urdf.xacro
で設定しています。
<xacro:arg name="use_gazebo" default="false" />
<xacro:arg name="port_name" default="/dev/ttyUSB0" />
<xacro:arg name="baudrate" default="1000000" />
<xacro:arg name="timeout_seconds" default="5.0" />
<xacro:arg name="read_velocities" default="0" />
<xacro:arg name="read_loads" default="0" />
<xacro:arg name="read_voltages" default="0" />
<xacro:arg name="read_temperatures" default="0" />
USB通信ポート
port_nameはCRANE+ V2との通信に使用するUSB通信ポートを設定します。
ボーレート
baudrateはCRANE+ V2に搭載したDynamixelとの通信ボーレートを設定します。
デフォルト値にはDynamixel AX-12Aの最高ボーレートである1000000 (1 Mbps)を設定しています。
通信タイムアウト
timeout_secondsは通信タイムアウト時間(秒)を設定します。
crane_plus_hardwareは、一定時間(デフォルト5秒間)通信に失敗し続けると、
read/write動作を停止します。
USBケーブルや電源ケーブルが抜けた場合等に有効です。
サーボパラメータ
read_velocities、read_loads、read_voltages、read_temperatures
は、サーボの回転速度、電圧、負荷、温度を読み取るためのパラメータです。
1をセットすると、サーボパラメータを読み取ります。
これらのパラメータを読み取ると通信データ量が増加するため、制御周期が100 Hzより低下します。
読み取ったパラメータはdynamic_joint_statesトピックとしてパブリッシュされます。
$ ros2 topic echo /dynamic_joint_states
Changelog for package crane_plus_control
3.0.0 (2025-01-31)
2.0.1 (2023-09-08)
2.0.0 (2023-08-01)
- Feature/support humble (#58)
- Contributors: Shota Aoki, YusukeKato
1.1.0 (2022-08-16)
1.0.0 (2022-06-22)
- パッケージバージョン表記の更新 (#40)
- xacroファイルの読み込みを一元化するためのPythonスクリプトを追加 (#36)
- GripperActionControllerに関するコメントを削除 (#37)
- hardware_interfaceのパラメータをxacro引数から変更する (#35)
- Use new ros2 control interface (#27)
- Contributors: Atsushi Kuwagata, Shota Aoki
0.1.0 (2020-11-11)
- Fix READMEs (#25)
- Update control error log (#24)
- Update maintainer and author in package.xml (#23)
- Update for release (#21)
- Update crane_plus_control (#16)
- Add joint_values example and pick_and_place example (#15)
- Fix launch files (#12)
- Use joint_trajectory_controller for gripper control (#11)
- Refactor to pass ament_lint check (#9)
- Revert "Use new joint handles (#4)" (#7)
- Use new joint handles (#4)
- Add crane plus control (#3)
- Contributors: Shota Aoki
Wiki Tutorials
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| controller_manager | |
| crane_plus_description | |
| dynamixel_sdk | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| ros2_controllers | |
| ros2controlcli | |
| xacro |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| crane_plus | |
| crane_plus_examples |