Más contenido relacionado
La actualidad más candente (20)
Similar a ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価 (20)
Más de Hirokazu Onomichi (9)
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
- 2. Onomichi Hirokazu
みっちー = Micchy
@Dream_Drive
• 本業は医療機器の会社
医療ソフトウェア=画像診断関連etc…
• メイカー系イベントやロボコンをうろうろ
• 社会人ロボコニスト
• ROSCon JP2018からボチボチROSを使い始める
• Dynamixelユーザー 14年 (2005年~)
自己紹介
- 8. FTDIドライバのLatancyTimerについて
$ sudo echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
windowsでもお馴染み(!?)ですが、FTDIのチップを使ったUSB-232Cの変換器は、
レイテンシタイマが16msecにデフォルトでセットされています。
このままでは制御周期が60Hzに張り付いてしまいます。
1msecに変更します。
1msec以下には縮まりません。半二重で1往復すると必ず2回の待ち(1msec×2)が入るので、
意外と速いようで、PCの場合はこれもボトルネックになったりします。
$ sudo adduser "user名" dialout
ユーザーをdialoutグループに登録するのも忘れずに…
/dev/ttyUSB0のパーミッションを変えるのはあまり奨められないようです。
といいつつ・・・
$ sudo chmod 777 /dev/ttyUSB0
とか、たまにやっちゃいます(^^;A
- 10. DYNAMIXEL Workbench
• DYNAMIXEL Workbench とは、Dynamixelを動かすための
ライブラリ群
• ROS版・Linux/Mac版・OpenCM/CR版(Arduino互換ボード)の
3種類がある。ROS版はLinux版を内包している。
DYNAMIXEL Workbench
Dynamixel SDK
Dynamixel Driver
- 11. “apt install”できる
“dynamixel”の名の付くROSパッケージ
• ros-melodic-dynamixel-sdk
• ros-melodic-dynamixel-sdk-dbgsym
• ros-melodic-dynamixel-workbench
• ros-melodic-dynamixel-workbench-controllers
• ros-melodic-dynamixel-workbench-controllers-dbgsym
• ros-melodic-dynamixel-workbench-msgs
• ros-melodic-dynamixel-workbench-operators
• ros-melodic-dynamixel-workbench-operators-dbgsym
• ros-melodic-dynamixel-workbench-single-manager
• ros-melodic-dynamixel-workbench-single-manager-dbgsym
• ros-melodic-dynamixel-workbench-single-manager-gui
• ros-melodic-dynamixel-workbench-single-manager-gui-dbgsym
• ros-melodic-dynamixel-workbench-toolbox
• ros-melodic-dynamixel-workbench-toolbox-dbgsym
多いわっ!
※ ROS melodicの場合
- 13. dynamixel_controller.launch
<launch>
<arg name="usb_port" default="/dev/ttyUSB0"/>
<arg name="dxl_baud_rate" default=“1000000"/>
<arg name="namespace" default="dynamixel_workbench"/>
<arg name="use_moveit" default="false"/>
<arg name="use_joint_state" default="true"/>
<arg name="use_cmd_vel" default="false"/>
<param name="dynamixel_info" value="$(find dynamixel_workbench_controllers)/config/basic.yaml"/>
<node name="$(arg namespace)" pkg="dynamixel_workbench_controllers" type="dynamixel_workbench_controllers"
required="true" output="screen" args="$(arg usb_port) $(arg dxl_baud_rate)">
<param name="use_moveit" value="$(arg use_moveit)"/>
<param name="use_joint_states_topic" value="$(arg use_joint_state)"/>
<param name="use_cmd_vel_topic" value="$(arg use_cmd_vel)"/>
<rosparam>
publish_period: 0.010
dxl_read_period: 0.010
dxl_write_period: 0.010
mobile_robot_config: <!--this values will be set when 'use_cmd_vel' is true-->
seperation_between_wheels: 0.160 <!--default value is set by reference of TB3-->
radius_of_wheel: 0.033 <!--default value is set by reference of TB3-->
</rosparam>
</node>
</launch>
Joint_stateが100Hzでpublishされる
YAML記法のコンフィグファイル
joint/wheelの定義
どのtopicを使う?
シリアルポートの設定
wheel使用時のパラメータ
- 14. DYNAMIXEL Workbench Controller (Joint)
DYNAMIXEL Workbench Controller
DYNAMIXEL Workbench
Dynamixel SDK
Dynamixel Driver
dynamixel_workbench_msgs
ROS ノード
/dynamixel_state
/joint_states
/joint_trajectory
/dynamixel_command
YAML
(joint 定義ファイル)
/dynamixel_state
Dynamixelの状態 (角度/角速度等はメモリ値)
/joint_states
Jointの状態 (角度/角速度等はradian)
/joint_trajectory
Jonitに対する命令
(角度/角速度等はradian、+時間軸の概念を持つ)
/dynamixel_command
Dynamixelに対する直接命令 (サービス)
DYNAMIXEL WorkbenchをラップしたROSノード
- 18. Joint Operatorsの紹介
DYNAMIXEL Workbench Controller
DYNAMIXEL Workbench
Dynamixel SDK
Dynamixel Driver
dynamixel_workbench_msgs
ROS ノード
Joint Operators
/dynamixel_state
/joint_states
/joint_trajectory
/dynamixel_command
YAML
(joint 定義ファイル)
joint_trajectoryの内容をyaml形式のテキストファイル化から
ロードして実行する公式ノード
YAML
(joint_trajectory ファイル)
- 25. > それは仕様です。
• /joint_trajectoryの実装上の仕様
• 実行中は新しいpublishは受け付けません
Dynamixelへの読み書きの周期/publishの周期を変更しても改善せず・・・
100Hzでsubcribeして、40Hzでpublishしているが、実際の制御周期は40Hz以下・・・
何故なのか実験してみました。
このタイミングでは受け付けず・・・
このタイミングでは受け付けず・・・
受付
受付
• /Joint_stateの実装上の仕様
• 確かにlaunchファイルの設定の通り
100Hzでpublishされているが・・・
内容が更新されていないorz
- 26. DYNAMIXEL Workbench Controllerのこまった
DYNAMIXEL Workbench Controller
DYNAMIXEL Workbench
Dynamixel SDK
Dynamixel Driver
dynamixel_workbench_msgs
ROS ノード
/dynamixel_state
/joint_states
/joint_trajectory
/dynamixel_command
YAML
(joint 定義ファイル)
時間の概念が逆に邪魔になる。
入力にもjoint_statesが欲しい!(切望)
解決方法をご存知の方いらっしゃったら
教えてください!
値の更新周期が
publishより遅い
- 27. 評価 (まとめ)
• DYNAMIXEL Workbench Controllerは、ティーチング・プレイバッ
クなどのモーション再生動作には向いている。Move ITにも対応!
• DYNAMIXEL Workbench Controllerは、たぶんリアルタイムの制御
には向いていない。
• リアルタイムで制御したい場合は、自作のROSノード、もしくはマ
イコンでDynamixelを制御したほうがいいかも。
• DYNAMIXEL Workbench Controllerを二足歩行ロボットに使いたい
と思わないが、勉強会の課題のロボットアームには最適と思う。