2018a/Member/maru/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*課題内容 [#f9324395]
**フィールドの説明 [#g9de751c]
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=ref&pag...
・フィールドは課題2で使用した紙を使用する。
・2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し、...
・空き缶には色をつけたり文字や記号を書いてもよい。あるい...
**ルール [#af75cc25]
・基本ルール 競技時間は審判が続行不能と判断するまで、ある...
図のA地点または(および)A'地点からスタートする。ただし接...
Aタイプの空き缶を円Y内に、Bタイプの空き缶を円X内に運ぶ。
開始の合図から5秒以内にスタートボタンを押す作業を完了す...
競技が終了するまで、ロボットに触ったり人間が遠隔で操作し...
途中でうまく動かなくなった場合、1回限り再スタートするこ...
・基本得点の計算方法
運んだ空き缶の数×3点
空き缶を積み重ねて置くことができば場合、2段目の空き缶一つ...
円内からはみ出している場合、半分以下なら1点減点、半分以上...
間違った円内に空き缶を置いた場合は、1個につき1点減点。
間違った円内の2段目に空き缶を置いた場合は1個につき3点減点...
技術点の計算方法以下の動作の精度・スピード・確実性などを...
・得点の目安
空き缶を探し取りにいくまでの動作 (3点)
空き缶を掴む動作 (3点)
空き缶を運ぶ動作 (2点)
空き缶を置く動作 (2点)
空き缶を積む動作 (3点)
2台のRCXまたはNXT、EV3の連携の良さ(2点)
自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
その他 (3点)
*ロボットの説明 [#r25c64ab]
RCXの一つはアームに,もう一つはタイヤに接続することで仕...
*動きの流れ [#ec923293]
?A`からXに向かう
?X内の缶3つを円外に移動させる
??で移動させた缶の上2つをX内に戻す
??で移動させた上の缶を円外にある缶に重ねる
??で重ねた2缶をYに運ぶ
*プログラムの説明 [#e25cb37c]
**本体について [#lbd40846]
***定義 [#g05cbb32]
-ロボット本体に関わる定義
#define go_straight(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC...
#define go_back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); ...
#define TURN_RIGHT(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t)...
#define TURN_LEFT(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);...
#define cross_stop Off(OUT_AC);Wait(100); ...
-ロボット本体とアームの送受信に関わる定義
#define kan_temae_toutyaku 10 ...
#define kan_sanko_motu 11 ...
#define kan_sanko_motte_senkaisita 12 ...
#define kan_niko_motta 13 ...
#define kan_niko_motte_senkaisita 14 ...
#define kan_ikko_motta 15 ...
#define kan_ikko_motte_senkaisita 16 ...
#define kan_okiowatta 17 ...
#define kan_futatabi_modoru 18 ...
#define kan_futatabi_motta 19 ...
#define y_toutyaku 20 ...
***メインプログラム [#t13b2e25]
task main(){
SetSensor(SENSOR_3,SENSOR_LIGHT);
go_straight(100); //前に直進
OnFwd(OUT_AC);
until(SENSOR_3<=46); //Xの円の...
Off(OUT_AC);
SendMessage(kan_temae_toutyaku); //本体が...
ClearMessage();
until (Message()==kan_sanko_motu); //アーム...
TURN_LEFT(90); //3個の缶...
Off(OUT_AC);
SendMessage(kan_sanko_motte_senkaisita); //3個の缶...
ClearMessage();
until (Message()==kan_niko_motta); //アーム...
TURN_RIGHT(140); //缶を持...
Off(OUT_AC);
SendMessage(kan_niko_motte_senkaisita); //アーム...
ClearMessage();
until (Message()==kan_ikko_motta); //アーム...
go_back(45); //後退(...
TURN_LEFT(97); //左旋回
Off(OUT_AC);
go_back(10); //後退
SendMessage(kan_ikko_motte_senkaisita); //持って...
ClearMessage();
until (Message()==kan_okiowwata); //アーム...
go_back(150); //後退
Wait(100);
go_straight(150); //後退し...
Off(OUT_AC);
SendMessage(kan_futatabi_modoru); //本体が先...
ClearMessage();
until (Message()==kan_futatabi_motta); //アーム...
go_straight(400); //直進
TURN_RIGHT(130); //右旋回
Off(OUT_AC);
go_straight(10); //直進
Wait(100);
SendMessage(y_touchaku); //Yに到着...
Off(OUT_AC);
アームを動かしているときに本体が軽く動いてしまうという...
**アームについて [#w34452c4]
***定義 [#y91cf02b]
-アームに関わる定義
#define arm_ueageru OnFwd(OUT_AC);Wait(120);Off(OUT_AC)...
#define arm_sageru OnRev(OUT_C); ...
#define kan_tukamu OnRev(OUT_A); ...
#define arm_ageru OnFwd(OUT_C); ...
#define kan_hanasu OnFwd(OUT_A);Wait(30);Off(OUT_AC); ...
#define STOP Off(OUT_AC); ...
-アームと本体の送受信に関わる定義
#define kan_temae_toutyaku 10 ...
#define kan_sanko_motu 11 ...
#define kan_sanko_motte_senkaisita 12 ...
#define kan_niko_motta 13 ...
#define kan_niko_motte_senkaisita 14 ...
#define kan_ikko_motta 15 ...
#define kan_ikko_motte_senkaisita 16 ...
#define kan_okiowatta 17 ...
#define kan_futatabi_modoru 18 ...
#define kan_futatabi_motta 19 ...
#define y_toutyaku 20 ...
***サブルーチン [#i37c43b7]
sub ueno_kan_tukamu()
{
arm_ueageru; //アームを最大まであげる
Wait(10);
arm_sageru; //アームを少し下げる
Wait(5);
kan_tukamu; //缶をつかむ
Wait(5);
arm_ageru; //缶をつかんだままアームを...
}
アームを一旦下げることで,缶を浮かせて下の缶が倒れない...
***メインプログラム [#q35518a5]
task main ()
{
ClearMessage();
until(Message() == kan_temae_toutyaku); ...
kan_tukamu;
Wait(50);
SendMessage(kan_sanko_motu);
ClearMessage(); ...
until(Message() == kan_sanko_motte_senkaisita); ...
Wait(100);
STOP;
kan_hanasu; ...
ueno_kan_tukamu();
ClearMessage();
Wait(100);
SendMessage(kan_niko_motta); ...
ClearMessage();
until(Message() == kan_niko_motte_senkaisita); ...
Wait(100);
Off(OUT_C); ...
Wait(800);
kan_hanasu; //缶を1個2個に分ける
ueno_kan_tukamu();
Wait(100);
ClearMessage();
SendMessage(kan_ikko_motta); ...
ClearMessage();
until(Message() == kan_ikko_motte_senkaisita); ...
STOP;
Wait(800); ...
kan_hanasu; ...
OnFwd(OUT_A); ...
arm_ueageru; ...
SendMessage(kan_okiowatta); ...
until(Message() == kan_futatabi_modoru); ...
kan_tukamu; ...
SendMessage(kan_futatabi_motta); ...
until(Message() == y_toutyaku); ...
kan_hanasu; ...
}
缶を急に放すとアームを開く勢いで倒れてしまうため,Wait...
*まとめ [#wd0e3beb]
**結果 [#wa12017c]
成功すれば11点のはずだったが,??がうまくいかず,2点にな...
**反省 [#y46ffc3c]
時間で移動することが多々あったため,電池の消耗具合で成...
**感想 [#m35eb5f8]
もともと成功率は低かったが試しの時にできていたところで...
終了行:
[[2018a/Member]]
#contents
*課題内容 [#f9324395]
**フィールドの説明 [#g9de751c]
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=ref&pag...
・フィールドは課題2で使用した紙を使用する。
・2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し、...
・空き缶には色をつけたり文字や記号を書いてもよい。あるい...
**ルール [#af75cc25]
・基本ルール 競技時間は審判が続行不能と判断するまで、ある...
図のA地点または(および)A'地点からスタートする。ただし接...
Aタイプの空き缶を円Y内に、Bタイプの空き缶を円X内に運ぶ。
開始の合図から5秒以内にスタートボタンを押す作業を完了す...
競技が終了するまで、ロボットに触ったり人間が遠隔で操作し...
途中でうまく動かなくなった場合、1回限り再スタートするこ...
・基本得点の計算方法
運んだ空き缶の数×3点
空き缶を積み重ねて置くことができば場合、2段目の空き缶一つ...
円内からはみ出している場合、半分以下なら1点減点、半分以上...
間違った円内に空き缶を置いた場合は、1個につき1点減点。
間違った円内の2段目に空き缶を置いた場合は1個につき3点減点...
技術点の計算方法以下の動作の精度・スピード・確実性などを...
・得点の目安
空き缶を探し取りにいくまでの動作 (3点)
空き缶を掴む動作 (3点)
空き缶を運ぶ動作 (2点)
空き缶を置く動作 (2点)
空き缶を積む動作 (3点)
2台のRCXまたはNXT、EV3の連携の良さ(2点)
自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
その他 (3点)
*ロボットの説明 [#r25c64ab]
RCXの一つはアームに,もう一つはタイヤに接続することで仕...
*動きの流れ [#ec923293]
?A`からXに向かう
?X内の缶3つを円外に移動させる
??で移動させた缶の上2つをX内に戻す
??で移動させた上の缶を円外にある缶に重ねる
??で重ねた2缶をYに運ぶ
*プログラムの説明 [#e25cb37c]
**本体について [#lbd40846]
***定義 [#g05cbb32]
-ロボット本体に関わる定義
#define go_straight(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC...
#define go_back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); ...
#define TURN_RIGHT(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t)...
#define TURN_LEFT(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);...
#define cross_stop Off(OUT_AC);Wait(100); ...
-ロボット本体とアームの送受信に関わる定義
#define kan_temae_toutyaku 10 ...
#define kan_sanko_motu 11 ...
#define kan_sanko_motte_senkaisita 12 ...
#define kan_niko_motta 13 ...
#define kan_niko_motte_senkaisita 14 ...
#define kan_ikko_motta 15 ...
#define kan_ikko_motte_senkaisita 16 ...
#define kan_okiowatta 17 ...
#define kan_futatabi_modoru 18 ...
#define kan_futatabi_motta 19 ...
#define y_toutyaku 20 ...
***メインプログラム [#t13b2e25]
task main(){
SetSensor(SENSOR_3,SENSOR_LIGHT);
go_straight(100); //前に直進
OnFwd(OUT_AC);
until(SENSOR_3<=46); //Xの円の...
Off(OUT_AC);
SendMessage(kan_temae_toutyaku); //本体が...
ClearMessage();
until (Message()==kan_sanko_motu); //アーム...
TURN_LEFT(90); //3個の缶...
Off(OUT_AC);
SendMessage(kan_sanko_motte_senkaisita); //3個の缶...
ClearMessage();
until (Message()==kan_niko_motta); //アーム...
TURN_RIGHT(140); //缶を持...
Off(OUT_AC);
SendMessage(kan_niko_motte_senkaisita); //アーム...
ClearMessage();
until (Message()==kan_ikko_motta); //アーム...
go_back(45); //後退(...
TURN_LEFT(97); //左旋回
Off(OUT_AC);
go_back(10); //後退
SendMessage(kan_ikko_motte_senkaisita); //持って...
ClearMessage();
until (Message()==kan_okiowwata); //アーム...
go_back(150); //後退
Wait(100);
go_straight(150); //後退し...
Off(OUT_AC);
SendMessage(kan_futatabi_modoru); //本体が先...
ClearMessage();
until (Message()==kan_futatabi_motta); //アーム...
go_straight(400); //直進
TURN_RIGHT(130); //右旋回
Off(OUT_AC);
go_straight(10); //直進
Wait(100);
SendMessage(y_touchaku); //Yに到着...
Off(OUT_AC);
アームを動かしているときに本体が軽く動いてしまうという...
**アームについて [#w34452c4]
***定義 [#y91cf02b]
-アームに関わる定義
#define arm_ueageru OnFwd(OUT_AC);Wait(120);Off(OUT_AC)...
#define arm_sageru OnRev(OUT_C); ...
#define kan_tukamu OnRev(OUT_A); ...
#define arm_ageru OnFwd(OUT_C); ...
#define kan_hanasu OnFwd(OUT_A);Wait(30);Off(OUT_AC); ...
#define STOP Off(OUT_AC); ...
-アームと本体の送受信に関わる定義
#define kan_temae_toutyaku 10 ...
#define kan_sanko_motu 11 ...
#define kan_sanko_motte_senkaisita 12 ...
#define kan_niko_motta 13 ...
#define kan_niko_motte_senkaisita 14 ...
#define kan_ikko_motta 15 ...
#define kan_ikko_motte_senkaisita 16 ...
#define kan_okiowatta 17 ...
#define kan_futatabi_modoru 18 ...
#define kan_futatabi_motta 19 ...
#define y_toutyaku 20 ...
***サブルーチン [#i37c43b7]
sub ueno_kan_tukamu()
{
arm_ueageru; //アームを最大まであげる
Wait(10);
arm_sageru; //アームを少し下げる
Wait(5);
kan_tukamu; //缶をつかむ
Wait(5);
arm_ageru; //缶をつかんだままアームを...
}
アームを一旦下げることで,缶を浮かせて下の缶が倒れない...
***メインプログラム [#q35518a5]
task main ()
{
ClearMessage();
until(Message() == kan_temae_toutyaku); ...
kan_tukamu;
Wait(50);
SendMessage(kan_sanko_motu);
ClearMessage(); ...
until(Message() == kan_sanko_motte_senkaisita); ...
Wait(100);
STOP;
kan_hanasu; ...
ueno_kan_tukamu();
ClearMessage();
Wait(100);
SendMessage(kan_niko_motta); ...
ClearMessage();
until(Message() == kan_niko_motte_senkaisita); ...
Wait(100);
Off(OUT_C); ...
Wait(800);
kan_hanasu; //缶を1個2個に分ける
ueno_kan_tukamu();
Wait(100);
ClearMessage();
SendMessage(kan_ikko_motta); ...
ClearMessage();
until(Message() == kan_ikko_motte_senkaisita); ...
STOP;
Wait(800); ...
kan_hanasu; ...
OnFwd(OUT_A); ...
arm_ueageru; ...
SendMessage(kan_okiowatta); ...
until(Message() == kan_futatabi_modoru); ...
kan_tukamu; ...
SendMessage(kan_futatabi_motta); ...
until(Message() == y_toutyaku); ...
kan_hanasu; ...
}
缶を急に放すとアームを開く勢いで倒れてしまうため,Wait...
*まとめ [#wd0e3beb]
**結果 [#wa12017c]
成功すれば11点のはずだったが,??がうまくいかず,2点にな...
**反省 [#y46ffc3c]
時間で移動することが多々あったため,電池の消耗具合で成...
**感想 [#m35eb5f8]
もともと成功率は低かったが試しの時にできていたところで...
ページ名: