Gripper on Fawkes

RT-SHOP のロボットアーム ”CRANE+”(クラインプラス)を購入してみました.

モーターとして,Dynamixel AX-12Aを使っており,角度の読み取りが可能となっています.

Logistics League で用いているFawkes にもdynamixel 用のplugin が用意されています.
その辺りの使い方のメモです.

まず,fawkes-robotino/cfg/conf.d/dynamixel.yaml の変更箇所です.

  # top element, e.g. ptu or example. 
  ax12gripper: 
    active: true
    device: /dev/usb2ax 

まずは,active の項目をfalse からtrue に変えましょう.
サーボモーターの通信には,USB → RS232C 変換モジュールを通して行いますので,
モジュールのデバイスにusb2ax としてシンボリックリンクを張っておきます.

sudo ln -s /dev/ttyUSB0 /dev/usb2ax
sudo chmod 6666 /dev/usb2ax
    # Either set the desired servo IDs that should be found in the servo chain 
    # or leave this field empty (servos: []) to discover all available servos 
    servos: [1, 5] 

サーボモーターのID をいれましょう.
よくわからなかったら,servos: [] のように括弧だけにしたら,1から順に探してくれます.

そして,一番大切な変更が,シリアル通信の通信速度です.
fawkes-robotino/fawkes/src/plugins/dynamixel/servo_chain.cpp

  // cfsetospeed(&param, B57600); 
  // cfsetispeed(&param, B57600); 
  cfsetospeed(&param, B1000000); 
  cfsetispeed(&param, B1000000); 

サーボの通信速度の初期値は,1000000bps ですので,57600bps から変更します.
その後,

make all gui

を忘れないように.

起動のプラグインのメタタグは,以下の通りです.
fawkes-robotino/cfg/conf.d/meta_plugins.yaml

m-btr: ros,m-bare,m-fv,navgraph,navgraph-generator,navgraph-generator-mps,skiller,m-clips,clips-agent,joystick,dynamixel,ax12_gripper

firevision の調子が悪いので,m-fv のみに削っています.

joystick の使い方に関しては,これから読み取きます.

void
GripperAX12AThread::loop()
{
...
    joystick_if_->read();

    if (joystick_if_->pressed_buttons() & JoystickInterface::BUTTON_13) {
        goto_gripper(__cfg_left_open_angle, __cfg_right_open_angle);
    } else if (joystick_if_->pressed_buttons() & JoystickInterface::BUTTON_12) {
        goto_gripper(__cfg_left_close_angle, __cfg_right_close_angle);
    }

とのことで,ボタンを押しながら(&が一つなので,押されたボタン情報と12,13番ボタンとのANDを取って,押下チェックしているだけでした),12番,13番のボタンを押せば,グリッパーを閉じたり開いたりできるそうです.

って,12,13番のボタンってどれやねん….
見つけられなかったので,BUTTON_1 と BUTTON_2に変更したら,右側のボタンでモーターが動作しました.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*