[V-REP] モータを作る(トルク制御)

   2014/10/08

Jointを使って回転する簡単なモデルを作成します。


2014/10/08追記
プログラムを3.1.3仕様に変更しました。

Jointの回転方向

jointの回転方向は回転速度の正負で決定されますが、何を基準にしているかを確認しておきます。

jointを追加した後、クリックして選択するとそのjointの軸が表示されます(長さを短くしないとZ軸は見えない)

vrep_create_motor1

これに正の回転速度を与えると、Z軸(青)を軸とした右ねじの方向に回転します。つまり画像の矢印の方向に回転します。

モデルの作成

右クリック -> Add -> Primitive Shape -> Cuboid から 2つのオブジェクトを追加します。そして 右クリック -> Add -> Joint -> Revolute からjointを追加します。今回は次のように追加しました。

vrep_create_motor3

このようにオブジェクトとJointとの間に空間があっても問題ありません(もちろんオブジェクトにJointを突き刺しても良い)。

簡単のために一番下のオブジェクトを”dodai”、Jointを”joint、一番上のオブジェクトを”kaiten”とリネームしておきます。これらをScene hierarchyで次のような親子関係にします。

vrep_create_motor4

Jointの設定

トルク制御で回転できるように設定します。

jointの Scene Object Properties(Scene hierarcyのjointアイコンをダブルクリック) の Joint mode を “joint is in torque/force mode” にします。

vrep_create_motor5

さらに Joint Dyanamic Properties(Scene Object PropertiesのShow dynamic parametersから開く) の Motor enabled にチェックを入れます。

vrep_create_motor6

初期状態ではチェックが入っていませんが、 Joint Dyanamic Properties の Control loop enabled にチェックが入っていないことを一応確認しておきましょう。

トルクと速度の指定

GUI

Joint Dynamic Properties の Target velocity と Max. torque/force から指定します。

vrep_create_motor7

Target velocity には正負が指定でき、その符号で回転の向きが決まります。目標速度なのでJointに負荷がかかっている場合には徐々に加速していきます。

API Function(プログラム)

次のようなプログラムをchild scriptに書き込みます。

simSetJointTargetVelocityの速度単位はradian/sec です。

GUIとchild script とではchild scriptの設定が優先されます。


 

ver 3.1.3より前の場合は以下のコードです。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください