mindstorm ev3を利用した2自由度マニピュレータの制御
2 views (last 30 days)
Show older comments
matlab及びプログラミング初心者です。
こちらのサイト(https://haribo-tsuntsun.hateblo.jp/entry/2018/12/03/015955)から以下のプログラムを使ってev3を制御しようとしたところ、
「関数または変数 'mymotor2' が未定義です。」というエラーメッセージが表示されましたが、定義の仕方がわかりません。アドバイスいただけないでしょうか。よろしくお願い致します。
%forward kinematics
l1=65;
l2=120;
t1=30; %target theta_1
t2=30; %target theta_2
x=l1*cos(deg2rad(t1))+l2*cos(deg2rad(t1+t2))
y=l1*sin(deg2rad(t1))+l2*sin(deg2rad(t1+t2))
resetRotation(mymotor1)
resetRotation(mymotor2)
motor_move(mymotor1,10,t1)
motor_move(mymotor2,10,t2)
function motor_move(motorname,power,theta)
rotation=readRotation(motorname);
error=theta-rotation;
while(abs(error)>2)
motorname.Speed=error/power+10;
start(motorname);
rotation=readRotation(motorname);
error=(theta-rotation);
end
stop(motorname);
end
1 Comment
Accepted Answer
Takumi
on 6 Feb 2019
mymotor1およびmymotor2が定義される前に使用されているように見受けられます.
こちらは確認されましたでしょうか?
EV3をMATLABで使用するにはまずサポートパッケージをインストールする必要があります.
まだインストールしていない場合は下記からインストールできます.
あるいは,MATLABを起動していただきまして,ホームタブ→アドオン→ハードウェアサポートパッケージの入手 からでもインストールできます.
インストールされましたら,まずEV3をUSBでMATLABに接続し,下記のコマンドをコマンドウィンドウに入力します.
mylego=legoev3('usb')
EV3が正しく認識されていると以下のような結果が表示されます.
mylego =
legoev3 のプロパティ:
FirmwareVersion: 'V1.09E'
HardwareID: []
IPAddress: []
CommunicationType: 'USB'
BatteryLevel: 100
ConnectedSensors: {'' '' '' ''}
ここまで確認できましたら元のプログラムを下記のように変更してみてください.
ただし,モーターをそれぞれポートA,ポートBに接続した場合の例です.
mylego = legoev3('usb');
mymotor1 = motor(mylego,'A');
mymotor2 = motor(mylego,'B');
%forward kinematics
l1=65;
l2=120;
t1=30; %target theta_1
t2=30; %target theta_2
x=l1*cos(deg2rad(t1))+l2*cos(deg2rad(t1+t2))
y=l1*sin(deg2rad(t1))+l2*sin(deg2rad(t1+t2))
resetRotation(mymotor1)
resetRotation(mymotor2)
motor_move(mymotor1,10,t1)
motor_move(mymotor2,10,t2)
function motor_move(motorname,power,theta)
rotation=readRotation(motorname);
error=theta-rotation;
while(abs(error)>2)
motorname.Speed=error/power+10;
start(motorname);
rotation=readRotation(motorname);
error=(theta-rotation);
end
0 Comments
More Answers (0)
See Also
Categories
Find more on インストールとライセンスの紹介 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!