mindstorm ev3を利用した2自由度マニピュレータの制御
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Takumi
2019 年 2 月 6 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で インストールとライセンスの紹介 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!