Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
99 lines (76 sloc) 5.13 KB

crane_x7_control

CRANE-X7のためのパッケージ、 crane_x7_ros のcontrolパッケージです。

通信ポートの設定

crane_x7_controlU2D2(USB-RS485変換ケーブル)を使用してCRANE-X7のモータ制御を行います。
U2D2はLinuxに接続すると/dev/ttyUSB0として認識されるので、次のコマンドでアクセス権限を変更します。

sudo chmod 666 /dev/ttyUSB0

CRANE-X7との接続に/dev/ttyUSB0以外を使用したい場合は、crane_x7_control/config/crane_x7_control.yamlに定義されているパラメータを変更することで設定することができます。

dynamixel_port:
  port_name: "/dev/ttyUSB0"

ネームスペースとトピック

crane_x7_control/crane_x7をルートとするネームスペースにパラメータやトピックを定義します。
各jointについて次のトピックを配信します。

current:電流値[mA]
dxl_position:現在角度[360/4096度]
temp:温度[度]

dynamic_reconfigure

crane_x7_controldynamic_reconfigureに対応しています。次のコマンドでrqt_reconfigureを起動してアクセスすると各Jointのサーボパラメータを変更することができます。

rosrun rqt_reconfigure rqt_reconfigure

rqt_reconfigure

各パラメータの詳細についてはROBOTIS公式のXM430およびXM540のサーボマニュアルを参照して下さい。

制御モード設定

CRANE-X7は位置制御モードと電流制御モードに対応しています。基本設定は位置制御モードになっていますが、複数箇所の設定変更を行うことで電流制御モードへ切り替えることが可能です。
ハンドの設定を位置制御モードから電流制御モードへ変更する手順を紹介します。

  1. サーボの設定変更
    サーボモータのOperating Mode(Address:11)を3:位置制御モードから0:電流制御モードへ設定変更する

  2. 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
  stalled_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環境によって特性が異なる可能性があります。

【電流モードに関する注意】
電流制御モードは、位置制御モードと異なり、サーボに設定された角度リミットが無効になります。
ユーザー自身で作成されたプログラムに適切な制限動作が備わっていない場合、本体の損傷や、本体が周囲や作業者に接触、あるいは衝突し、失明や打撲による死亡といった思わぬ重大事故が発生する危険があります。
ユーザーの責任において十分に安全に注意した上でご使用下さい。
当該製品および当ソフトウェアの使用中に生じたいかなる損害も株式会社アールティでは一切の責任を負いかねます。

You can’t perform that action at this time.