-
 

Package Summary

Tags No category tags.
Version 2.0.1
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

CRANE+ V2 control package

Additional Links

No additional links.

Maintainers

  • RT Corporation

Authors

  • Shota Aoki
  • Atsushi Kuwagata
  • Yusuke Kato

crane_plus_control

このパッケージはros2_control をベースにした、CRANE+ V2 のコントローラパッケージです。

ros2_control関連ファイル

実機のセットアップ

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を小さくすると、制御周期が早くなります。

Setting Return 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_velocitiesread_loadsread_voltagesread_temperatures は、サーボの回転速度、電圧、負荷、温度を読み取るためのパラメータです。

1をセットすると、サーボパラメータを読み取ります。

これらのパラメータを読み取ると通信データ量が増加するため、制御周期が100 Hzより低下します。

読み取ったパラメータはdynamic_joint_statesトピックとしてパブリッシュされます。

$ ros2 topic echo /dynamic_joint_states


back to top

CHANGELOG

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)

  • Update author tags (#49)
  • Rename CRANE+V2 to CRANE+ V2 (#44)
  • Contributors: Shota Aoki

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

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.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged crane_plus_control at Robotics Stack Exchange

No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.