2018b/Member/Daisuke/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018b/Member]]
#contents
*課題3:ボール運搬ロボット [#rdd1cd26]
&size(20){&color(#166){青};};と&size(20){&color(#911){赤}...
**フィールド説明 [#aa075881]
#ref(7.png)
-フィールドは課題2で使用した紙を使用する。
-350ml缶(中が入っていても空でよい)は逆さまにして使い、ロ...
-その番号の次の番号のところにもダミーの缶を置くことができ...
-空き缶には色をつけたり文字や記号を書いてもよい。あるいは...
-赤と青のボールは、図のように所定の場所に置いておく。その...
**ルール [#z38e9872]
-基本ルール
--競技時間は審判が続行不能と判断するまで、あるいはリタイ...
--図のX地点または(および)Y地点からスタートする。ただし...
--赤いボールを図のピンクのいずれかに置いた缶に、青いボー...
--開始の合図から5秒以内にスタートボタンを押す作業を完了...
--競技が終了するまで、ロボットに触ったり人間が遠隔で操作...
--途中でうまく動かなくなった場合、1回限り再スタートする...
-基本得点の計算方法
--ボールを一つ乗せればそれぞれ10点、二つとも乗せればボー...
--ダミーの缶を設置した上で、正しい缶に乗せれば、それぞれ...
--ボールを目的の缶に当てることができれば、それぞれ4点。
--ボールを同じ領域内の間違った缶に乗せた場合は、それぞれ6...
--ボールを同じ領域内の間違った缶に当てた場合は、それぞれ2...
--ボールを違う領域内の缶に乗せた場合は、それぞれ2点。
--ボールを違う領域内の缶に当てた場合は、0点。
--目的の缶をもとの位置(直径7cmの円)から少し出してしまっ...
--ダミーの缶がもとの位置から移動しても減点はしない。
-技術点の計算方法~
以下の動作の精度・スピード・確実性などを含めた技術的な工...
得点の目安:
--ボール探し取りにいくまでの動作 (3点)
--ボール掴む動作 (3点)
--ボールを運ぶ動作 (2点)
--ボールを缶に置く動作 (2点)
--2台のNXT、EV3の連携の良さ(2点)
--自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
--その他 (3点)
*ロボットについて [#jb55a7f5]
**全体像 [#j16816c7]
#ref(IMG_E5087.JPG)
#ref(pindome.png)
***説明(工夫した点や反省点など) [#t29cb7f5]
車体は前後に長く、参考書のサンプルの形からあまりかけ離れ...
**マスター側:車輪、各センサー [#q5cb6c85]
#ref(IMG_E5087.JPG)
#ref(IMG_E5082.JPG)
#ref(IMG_E5085.JPG)
***説明(工夫した点や反省点など) [#vc39e62e]
モータを回転させて動かすタイヤ2つとその後方に車体のバラ...
また前方に光センサーを2つ取り付けることでライントレース ...
車体後方のアームの下、アームの動きを邪魔しないギリギリの...
**スレーブ側:ボールを持ち上げて、缶に置くアーム [#bde72a...
#ref(arm.png)
***説明(工夫した点や反省点など) [#z937e3d2]
人間がボールを拾い上げる動きをモデルとしてモータ2つを、...
*自分のチームが考えたコース取り [#n6e15f3b]
#ref(7_LI (2).jpg)
?マスター側:赤いボールをキャッチできる位置に移動しSIGNAL...
?スレーブ側:SIGNALAを受信したらボールをキャッチしSIGNALE...
?マスター側:SIGNALEを受信したら後退、回転して地点Gを過ぎ...
?マスター側:ライントレースを開始。最初の急カーブであえて...
?マスター側:缶をサーチする。この時青いボールまでサーチし...
?マスター側:缶に接近し適当な位置に到着したら、SIGNALBを...
?スレーブ側:SIGNALBを受信したらボールを缶の上に乗せ、ア...
?マスター側:地点E付近まで戻り青いボールをサーチ。見つけ...
?スレーブ側:SIGNALCを受信したらボールをキャッチしSIGNALG...
?マスター側:青いボールを乗せる缶を探すのに有利な位置(地...
?スレーブ側:SIGNALDを受信したらボールを缶の上に乗せて停止
*プログラミング [#n544807e]
**マスター側(車輪、各センサー) [#d3e2325b]
***定義やマクロ[#q58b36bd]
#define CONN 1
#define SIGNALA 11
#define SIGNALB 12
#define SIGNALC 13
#define SIGNALD 14
#define SIGNALE 15
#define SIGNALF 16
#define SIGNALG 17 //メッセージについては全体の流れで説明...
#define THRESHOLD 57
#define SPEED 50
#define speed 40
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT...
#define leftleft OnRL(speed,0); //きついカーブの部...
#define left OnRL(speed,0);
#define straight OnRL(SPEED,SPEED);
#define right OnRL(0,speed+5);
#define rightright OnRL(-speed,speed+5);
#define MOVE_TIME_1 3000
#define MOVE_TIME_2 22500
#define MOVE_TIME_3 2000
#define zenshin OnFwd(OUT_B,speed);OnFwd(OUT_C,speed+6);
#define koutai OnRev(OUT_B,speed-10);OnRev(OUT_C,speed-4)...
#define teishi Off(OUT_BC);
#define kaiten_R1 OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);
#define kaiten_R2 OnFwd(OUT_B,speed);OnRev(OUT_C,speed);
#define kaiten_L1 OnRev(OUT_B,SPEED);OnFwd(OUT_C,SPEED);
#define kaiten_L2 OnRev(OUT_B,SPEED);OnFwd(OUT_C,SPEED);
#define kaiten_time_R1 2500 //缶を見つけるには短...
#define kaiten_time_L1 1500
#define KAITEN RotateMotorEx(OUT_BC,50,400,100,true,false...
#define go_forward OnRL(SPEED,SPEED);
#define STEP 1
#define yasumi Off(OUT_BC);Wait(500);
***サブルーチン関数やインライン関数 [#zac78d14]
sub serch_R1() //反時計回りで缶を探す
{
SetSensorLowspeed(S4);
long t10,t11;
int L=1000;
t10=CurrentTick();
while(CurrentTick()-t10<=kaiten_time_R1){
kaiten_R1;
if(SensorUS(S4)<L)
{
L=SensorUS(S4);
t11=CurrentTick()-t10;
}
}
kaiten_L1;
Wait(kaiten_time_R1-t11+100); //車体バランスの問題を...
Off(OUT_BC);
Wait(500);
}
inline sub serch_R2(int l) lcm以下の距離のものを...
{
SetSensorLowspeed(S4);
kaiten_R1
until(SensorUS(S4)<=l);
Off(OUT_BC);
}
sub serch_L() 時計回りで缶を探す
{
SetSensorLowspeed(S4);
long t12,t13;
int L=1000;
t12=CurrentTick();
while(CurrentTick()-t12<=kaiten_time_L1){
kaiten_L1;
if(SensorUS(S4)<L)
{
L=SensorUS(S4);
t13=CurrentTick()-t12;
}
}
kaiten_R1;
Wait(kaiten_time_L1-t13+80); //車体バランスの問題...
Off(OUT_BC);
Wait(500);
}
inline void sekkin(int d) 目標に接近するためのプログ...
{
SetSensorLowspeed(S4);
while(SensorUS(S4)>=d){
koutai;
}
teishi;
}
sub LT_R() //ライントレース
{
SetSensorLight(S3);
long t0=CurrentTick();
while(CurrentTick()-t0<=MOVE_TIME_2){
if(SENSOR_3<THRESHOLD-10){
rightright;
}else if(SENSOR_3<THRESHOLD-7){
right;
}else if(SENSOR_3<THRESHOLD+2){
straight;
}else if(SENSOR_3<THRESHOLD+3){
left;
}else{
leftleft;
}
Wait(STEP);
}
}
***メインのプログラム [#rfeb0cf5]
task main()
{
SetSensorLight(S2);
SetSensorLight(S3);
SetSensorLowspeed(S4);
OnRev(OUT_BC,30);
Wait(500);
teishi; //初期位置から赤いボールをキャッチする場...
int msg;
SendRemoteNumber(CONN,MAILBOX1,SIGNALA); スレーブ側...
while(true){
ReceiveRemoteNumber(MAILBOX1,true,msg);
if(msg==SIGNALE){
koutai;
Wait(MOVE_TIME_1);
KAITEN; //後退して180°回転する。交差点を越...
teishi;
yasumi;
LT_R(); //ライントレースを開始
teishi; //想定では大体地点Eに到着したあたりで停止
serch_R1(); //缶をサーチ
teishi;
sekkin(15); //15?の距離まで接近
koutai;
Wait(1000); //微調整
teishi;
SendRemoteNumber(CONN,MAILBOX1,SIGNALB); スレーブ...
}
if(msg==SIGNALF){
zenshin;
Wait(MOVE_TIME_3); //大体地点Eに戻る(多少ずれ...
kaiten_R1;
Wait(100); //青いボールを察知する前にボ...
yasumi;
serch_R2(25); //25?以内に何かを見つけたら停止
yasumi;
zenshin;
Wait(500); //青いボールと超音波センサーが近す...
sekkin(10);
koutai;
Wait(200); //青いボールをキャッチできる位置まで...
yasumi;
SendRemoteNumber(CONN,MAILBOX1,SIGNALC); スレーブ...
}
if(msg==SIGNALG){
koutai;
Wait(2000); //目標に少し近づく
kaiten_R1;
Wait(500); //仮に青側の缶が?だった場合サーチ範囲に...
serch_L(); //缶をサーチ
teishi;
sekkin(15); //15?の距離まで接近
teishi;
koutai;
Wait(1000); //微調整
SendRemoteNumber(CONN,MAILBOX1,SIGNALD); スレーブ...
teishi; //停止
}
}
}
**スレーブ側(アーム) [#wab3a823]
***定義やマクロ#define POWER 50 [#ie242c4f]
#define Power 25
#define power 15
#define time 300
#define Time 600
#define TIME 1000
#define hand_catch OnRev(OUT_B,POWER);Wait(Time);Off(OUT_...
#define arm_Up OnFwd(OUT_C,POWER);Wait(TIME);Off(OUT_C);...
#define hand_release OnFwd(OUT_B,power);Wait(TIME);Off(OU...
#define arm_Down OnRev(OUT_C,POWER);Wait(Time+200);Off(OU...
#define arm_up OnFwd(OUT_C,POWER);Wait(Time);Off(OUT_C);...
#define arm_down OnRev(OUT_C,Power);Wait(Time);Off(OUT_C)...
#define yasumi Off(OUT_BC);Wait(500);
#define SIGNALA 11
#define SIGNALB 12
#define SIGNALC 13
#define SIGNALD 14
#define SIGNALE 15
#define SIGNALF 16
#define SIGNALG 17
***サブルーチン関数やインライン関数 [#vc3683a4]
sub ball_catch() ボールを掴んで持ち上げる
{
Wait(Time);
arm_Down;
hand_catch;
arm_Up;
Off(OUT_BC);
}
sub ball_release() ボールを缶の上に置く
{
Wait(Time);
arm_down;
yasumi;
hand_release;
arm_up;
Off(OUT_BC);
}
***メインのプログラム [#iecfd0d7]
task main()
{
int msg;
while(true){
ReceiveRemoteNumber(MAILBOX1,true,msg);
if(msg==SIGNALA){
ball_catch();
Off(OUT_BC);
SendResponseNumber(MAILBOX1,SIGNALE); //赤いボール...
}
if(msg==SIGNALB){
yasumi;
ball_release();
yasumi;
SendResponseNumber(MAILBOX1,SIGNALF); //赤いボール...
}
if(msg==SIGNALC){
ball_catch();
Off(OUT_BC);
SendResponseNumber(MAILBOX1,SIGNALG); //青いボール...
}
if(msg==SIGNALD){
yasumi;
ball_release();
yasumi; //青いボールを缶に乗せて停止
}
}
}
*車体やプログラムに関する反省点や改善点 [#z63059ba]
車体についてはやはり重さによって課題をこなすのに大きな支...
プログラムについてはライントレースのスムーズさによって缶...
*感想 [#t517c12c]
基本点が0点で終わってしまったことはかなり残念だが、芸術点...
私は繊維学部 機械・ロボット学科なのでこの先今回のゼミのよ...
終了行:
[[2018b/Member]]
#contents
*課題3:ボール運搬ロボット [#rdd1cd26]
&size(20){&color(#166){青};};と&size(20){&color(#911){赤}...
**フィールド説明 [#aa075881]
#ref(7.png)
-フィールドは課題2で使用した紙を使用する。
-350ml缶(中が入っていても空でよい)は逆さまにして使い、ロ...
-その番号の次の番号のところにもダミーの缶を置くことができ...
-空き缶には色をつけたり文字や記号を書いてもよい。あるいは...
-赤と青のボールは、図のように所定の場所に置いておく。その...
**ルール [#z38e9872]
-基本ルール
--競技時間は審判が続行不能と判断するまで、あるいはリタイ...
--図のX地点または(および)Y地点からスタートする。ただし...
--赤いボールを図のピンクのいずれかに置いた缶に、青いボー...
--開始の合図から5秒以内にスタートボタンを押す作業を完了...
--競技が終了するまで、ロボットに触ったり人間が遠隔で操作...
--途中でうまく動かなくなった場合、1回限り再スタートする...
-基本得点の計算方法
--ボールを一つ乗せればそれぞれ10点、二つとも乗せればボー...
--ダミーの缶を設置した上で、正しい缶に乗せれば、それぞれ...
--ボールを目的の缶に当てることができれば、それぞれ4点。
--ボールを同じ領域内の間違った缶に乗せた場合は、それぞれ6...
--ボールを同じ領域内の間違った缶に当てた場合は、それぞれ2...
--ボールを違う領域内の缶に乗せた場合は、それぞれ2点。
--ボールを違う領域内の缶に当てた場合は、0点。
--目的の缶をもとの位置(直径7cmの円)から少し出してしまっ...
--ダミーの缶がもとの位置から移動しても減点はしない。
-技術点の計算方法~
以下の動作の精度・スピード・確実性などを含めた技術的な工...
得点の目安:
--ボール探し取りにいくまでの動作 (3点)
--ボール掴む動作 (3点)
--ボールを運ぶ動作 (2点)
--ボールを缶に置く動作 (2点)
--2台のNXT、EV3の連携の良さ(2点)
--自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
--その他 (3点)
*ロボットについて [#jb55a7f5]
**全体像 [#j16816c7]
#ref(IMG_E5087.JPG)
#ref(pindome.png)
***説明(工夫した点や反省点など) [#t29cb7f5]
車体は前後に長く、参考書のサンプルの形からあまりかけ離れ...
**マスター側:車輪、各センサー [#q5cb6c85]
#ref(IMG_E5087.JPG)
#ref(IMG_E5082.JPG)
#ref(IMG_E5085.JPG)
***説明(工夫した点や反省点など) [#vc39e62e]
モータを回転させて動かすタイヤ2つとその後方に車体のバラ...
また前方に光センサーを2つ取り付けることでライントレース ...
車体後方のアームの下、アームの動きを邪魔しないギリギリの...
**スレーブ側:ボールを持ち上げて、缶に置くアーム [#bde72a...
#ref(arm.png)
***説明(工夫した点や反省点など) [#z937e3d2]
人間がボールを拾い上げる動きをモデルとしてモータ2つを、...
*自分のチームが考えたコース取り [#n6e15f3b]
#ref(7_LI (2).jpg)
?マスター側:赤いボールをキャッチできる位置に移動しSIGNAL...
?スレーブ側:SIGNALAを受信したらボールをキャッチしSIGNALE...
?マスター側:SIGNALEを受信したら後退、回転して地点Gを過ぎ...
?マスター側:ライントレースを開始。最初の急カーブであえて...
?マスター側:缶をサーチする。この時青いボールまでサーチし...
?マスター側:缶に接近し適当な位置に到着したら、SIGNALBを...
?スレーブ側:SIGNALBを受信したらボールを缶の上に乗せ、ア...
?マスター側:地点E付近まで戻り青いボールをサーチ。見つけ...
?スレーブ側:SIGNALCを受信したらボールをキャッチしSIGNALG...
?マスター側:青いボールを乗せる缶を探すのに有利な位置(地...
?スレーブ側:SIGNALDを受信したらボールを缶の上に乗せて停止
*プログラミング [#n544807e]
**マスター側(車輪、各センサー) [#d3e2325b]
***定義やマクロ[#q58b36bd]
#define CONN 1
#define SIGNALA 11
#define SIGNALB 12
#define SIGNALC 13
#define SIGNALD 14
#define SIGNALE 15
#define SIGNALF 16
#define SIGNALG 17 //メッセージについては全体の流れで説明...
#define THRESHOLD 57
#define SPEED 50
#define speed 40
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT...
#define leftleft OnRL(speed,0); //きついカーブの部...
#define left OnRL(speed,0);
#define straight OnRL(SPEED,SPEED);
#define right OnRL(0,speed+5);
#define rightright OnRL(-speed,speed+5);
#define MOVE_TIME_1 3000
#define MOVE_TIME_2 22500
#define MOVE_TIME_3 2000
#define zenshin OnFwd(OUT_B,speed);OnFwd(OUT_C,speed+6);
#define koutai OnRev(OUT_B,speed-10);OnRev(OUT_C,speed-4)...
#define teishi Off(OUT_BC);
#define kaiten_R1 OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);
#define kaiten_R2 OnFwd(OUT_B,speed);OnRev(OUT_C,speed);
#define kaiten_L1 OnRev(OUT_B,SPEED);OnFwd(OUT_C,SPEED);
#define kaiten_L2 OnRev(OUT_B,SPEED);OnFwd(OUT_C,SPEED);
#define kaiten_time_R1 2500 //缶を見つけるには短...
#define kaiten_time_L1 1500
#define KAITEN RotateMotorEx(OUT_BC,50,400,100,true,false...
#define go_forward OnRL(SPEED,SPEED);
#define STEP 1
#define yasumi Off(OUT_BC);Wait(500);
***サブルーチン関数やインライン関数 [#zac78d14]
sub serch_R1() //反時計回りで缶を探す
{
SetSensorLowspeed(S4);
long t10,t11;
int L=1000;
t10=CurrentTick();
while(CurrentTick()-t10<=kaiten_time_R1){
kaiten_R1;
if(SensorUS(S4)<L)
{
L=SensorUS(S4);
t11=CurrentTick()-t10;
}
}
kaiten_L1;
Wait(kaiten_time_R1-t11+100); //車体バランスの問題を...
Off(OUT_BC);
Wait(500);
}
inline sub serch_R2(int l) lcm以下の距離のものを...
{
SetSensorLowspeed(S4);
kaiten_R1
until(SensorUS(S4)<=l);
Off(OUT_BC);
}
sub serch_L() 時計回りで缶を探す
{
SetSensorLowspeed(S4);
long t12,t13;
int L=1000;
t12=CurrentTick();
while(CurrentTick()-t12<=kaiten_time_L1){
kaiten_L1;
if(SensorUS(S4)<L)
{
L=SensorUS(S4);
t13=CurrentTick()-t12;
}
}
kaiten_R1;
Wait(kaiten_time_L1-t13+80); //車体バランスの問題...
Off(OUT_BC);
Wait(500);
}
inline void sekkin(int d) 目標に接近するためのプログ...
{
SetSensorLowspeed(S4);
while(SensorUS(S4)>=d){
koutai;
}
teishi;
}
sub LT_R() //ライントレース
{
SetSensorLight(S3);
long t0=CurrentTick();
while(CurrentTick()-t0<=MOVE_TIME_2){
if(SENSOR_3<THRESHOLD-10){
rightright;
}else if(SENSOR_3<THRESHOLD-7){
right;
}else if(SENSOR_3<THRESHOLD+2){
straight;
}else if(SENSOR_3<THRESHOLD+3){
left;
}else{
leftleft;
}
Wait(STEP);
}
}
***メインのプログラム [#rfeb0cf5]
task main()
{
SetSensorLight(S2);
SetSensorLight(S3);
SetSensorLowspeed(S4);
OnRev(OUT_BC,30);
Wait(500);
teishi; //初期位置から赤いボールをキャッチする場...
int msg;
SendRemoteNumber(CONN,MAILBOX1,SIGNALA); スレーブ側...
while(true){
ReceiveRemoteNumber(MAILBOX1,true,msg);
if(msg==SIGNALE){
koutai;
Wait(MOVE_TIME_1);
KAITEN; //後退して180°回転する。交差点を越...
teishi;
yasumi;
LT_R(); //ライントレースを開始
teishi; //想定では大体地点Eに到着したあたりで停止
serch_R1(); //缶をサーチ
teishi;
sekkin(15); //15?の距離まで接近
koutai;
Wait(1000); //微調整
teishi;
SendRemoteNumber(CONN,MAILBOX1,SIGNALB); スレーブ...
}
if(msg==SIGNALF){
zenshin;
Wait(MOVE_TIME_3); //大体地点Eに戻る(多少ずれ...
kaiten_R1;
Wait(100); //青いボールを察知する前にボ...
yasumi;
serch_R2(25); //25?以内に何かを見つけたら停止
yasumi;
zenshin;
Wait(500); //青いボールと超音波センサーが近す...
sekkin(10);
koutai;
Wait(200); //青いボールをキャッチできる位置まで...
yasumi;
SendRemoteNumber(CONN,MAILBOX1,SIGNALC); スレーブ...
}
if(msg==SIGNALG){
koutai;
Wait(2000); //目標に少し近づく
kaiten_R1;
Wait(500); //仮に青側の缶が?だった場合サーチ範囲に...
serch_L(); //缶をサーチ
teishi;
sekkin(15); //15?の距離まで接近
teishi;
koutai;
Wait(1000); //微調整
SendRemoteNumber(CONN,MAILBOX1,SIGNALD); スレーブ...
teishi; //停止
}
}
}
**スレーブ側(アーム) [#wab3a823]
***定義やマクロ#define POWER 50 [#ie242c4f]
#define Power 25
#define power 15
#define time 300
#define Time 600
#define TIME 1000
#define hand_catch OnRev(OUT_B,POWER);Wait(Time);Off(OUT_...
#define arm_Up OnFwd(OUT_C,POWER);Wait(TIME);Off(OUT_C);...
#define hand_release OnFwd(OUT_B,power);Wait(TIME);Off(OU...
#define arm_Down OnRev(OUT_C,POWER);Wait(Time+200);Off(OU...
#define arm_up OnFwd(OUT_C,POWER);Wait(Time);Off(OUT_C);...
#define arm_down OnRev(OUT_C,Power);Wait(Time);Off(OUT_C)...
#define yasumi Off(OUT_BC);Wait(500);
#define SIGNALA 11
#define SIGNALB 12
#define SIGNALC 13
#define SIGNALD 14
#define SIGNALE 15
#define SIGNALF 16
#define SIGNALG 17
***サブルーチン関数やインライン関数 [#vc3683a4]
sub ball_catch() ボールを掴んで持ち上げる
{
Wait(Time);
arm_Down;
hand_catch;
arm_Up;
Off(OUT_BC);
}
sub ball_release() ボールを缶の上に置く
{
Wait(Time);
arm_down;
yasumi;
hand_release;
arm_up;
Off(OUT_BC);
}
***メインのプログラム [#iecfd0d7]
task main()
{
int msg;
while(true){
ReceiveRemoteNumber(MAILBOX1,true,msg);
if(msg==SIGNALA){
ball_catch();
Off(OUT_BC);
SendResponseNumber(MAILBOX1,SIGNALE); //赤いボール...
}
if(msg==SIGNALB){
yasumi;
ball_release();
yasumi;
SendResponseNumber(MAILBOX1,SIGNALF); //赤いボール...
}
if(msg==SIGNALC){
ball_catch();
Off(OUT_BC);
SendResponseNumber(MAILBOX1,SIGNALG); //青いボール...
}
if(msg==SIGNALD){
yasumi;
ball_release();
yasumi; //青いボールを缶に乗せて停止
}
}
}
*車体やプログラムに関する反省点や改善点 [#z63059ba]
車体についてはやはり重さによって課題をこなすのに大きな支...
プログラムについてはライントレースのスムーズさによって缶...
*感想 [#t517c12c]
基本点が0点で終わってしまったことはかなり残念だが、芸術点...
私は繊維学部 機械・ロボット学科なのでこの先今回のゼミのよ...
ページ名: