知能システム論1 2014年前期 最終課題 利用ファイル geo.py object_model_v.py larm_w_hand_arm_sol_new.py face_fit.py 問題用ファイル rf_task_env.py rp_cup_points.py 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 1 2014年前期 最終課題 解答テンプレートファイル rf_tmpl_q1.py rf_tmpl_arm.py rt_tmpl_task.py rf_学籍番号_xx.pyとして利用する. その他,最終課題で利用する自作のファイルが あればrf_学籍番号_xxx.pyなどと他者との衝 突がない名前にしておく. 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 2 2014年前期 最終課題 提出ファイル rf_学籍番号_q1.py rf_学籍番号_arm.pdf rf_学籍番号_arm.py rt_学籍番号_task.py 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 3 - 問題1 二つのベクトルの回転軸 a=VECTOR(1,0,0)を一つの回転軸のまわりに回 転させ、 b=VECTOR(0,0.8,0.6)に一致させるこ とを考える. (1)回転角度の絶対値が最小となる回転角度と正 規化された回転軸ベクトルを求めよ (2)上記,回転を行う回転行列を生成せよ (3) ベクトルaを回転行列で回転させ,ベクトルbに (ほぼ)等しくなることを示せ 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 4 - 問題1の解答法 rf_tmpl_q1.pyの穴埋めをする. それをrf_学籍番号_q1.pyとして提出する. (1)の答えは回転軸と角度をリストの形式で辞書 に入れる (2)の答えは回転行列を辞書に入れる (3)の答えはベクトルaを回転させた結果とベクト ルbとの差を辞書に入れる 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 5 - 問題2 アームの作成 6自由度以上のシリアルリンクのアームを作成 する.後の問題で利用するのでそれを考慮した 構造にすること 作成するアームの関節構造を簡単に説明せよ (rf_学籍番号_arm.pdfで提出) arm7dof.pyにならってアームのプログラムを 作成する (rf_学籍番号_arm.py) 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 6 - rf_task_env.pyの環境 table, cameraはworld(絶対座標)にある. table のx, y軸はtable上面にある cup, place_a, place_b は,tableにaffixされている cupは初期位置としてplace_bにある. 作業ルーチン,pick_up, place_downが定義されている boxは課題の解答の中で作成する cupの位置はカメラ計測により修正する. armは課題の解答の中で読み込む 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 7 - 問題3 作業対象モデルの生成 (1)辺の長さが0.12,0.10,0.04の直方体を作成 せよ.boxの座標系は長さ0.12の辺の方向をx軸, 0.10の辺の方向をy軸とし,xy平面を下面とし,そ の中心が原点となるように設定せよ (2)place_a(rf_task_envで生成済み)にboxを 配置せよ (つづく) 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 8 - 問題3(つづき) (2)x方向-0.05,z方向(高さ)0.02,y軸0(中央)の −π /4 場所にy軸まわり 回転した把持点を設定 せよ.アプローチ点は把持点座標からz方向に0.1 のところで,把持幅は直方体のy軸方向の幅とする (4)boxの上面中央にboxに固定されたbox.top 座標系を設定せよ 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 9 - 問題4 物体の位置・姿勢計測 cupをdepthカメラ(camera)で計測した結果が rf_cup_points.py に入っている. fit_face.pyを利用してニュートン法で精密位置計 測を行う.place_bを初期解として良い. (1)cameraからみたcupの座標変換を求めよ (2)place_bとcupの差を求めよ (3)tableからみたcupの座標変換を求めよ (4)上記結果を用いてcupを環境中に置け. 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 10 - 問題5 作業プログラム 自身の作成したアームを読み込み以下の作業プロ グラムを作成し,実行せよ. アームの標準設置位置はテーブル上, FRAME(xyzabc=(-0.25,0.40,0,0,0,0)) アームの構造や作業の必要性に応じて変更しても よい. (1)cupをbox.topに置く (2)boxを(cupを載せたまま)place_bに置く 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 11 - 問題1のやり方(rf_tmpl_q1.py) raw_input("start") from geo import * # ans={} 解答ごとの待ち 最初にgeoを読み込む 解答を保持するための辞書 後でもチェックできるように 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 12 - 問題1のやり方(2) 解答ごとの区切りの待ち # raw_input("answer for question 1-1") # you would start from the creation of the vectors. # a=VECTOR(....) 解答はこのように辞書に入れる # b=VECTOR(....) ここに自分の解答の # then calculate the answers コードを書く 問題ごとのキーワードや形式は # ax1= .... 決まっているので従うこと # an1= .... # the answers must be put into the ans dictionary. ans["1-1"]=[ax1,an1] 解答のプリントもする # and also they must be printed. print "the axis of rotation is ", ans["1-1"][0] print "the angle around the axis is ", ans["1-1"][1] 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 13 - 問題2 ロボットアーム (1) (2)アームを生成して,変数armで保持せよ (3)アームのベースをtable上,x方向-0.25,y方向 0.4の位置に配置せよ (4)アームを準備姿勢(ready)にせよ 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 14 - 問題3,4,5(rf_tmpl_task.py) raw_input("start") from rf_task_env import * # raw_input("start") from rf_task_env import * # 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 15 - 問題3の解答方法 raw_input("answer for 3") # # create box body # then create box and place it at place_a (3-1,2) # set grip (3-3) # create and set box.top (3-4) # raw_input("check box.grip and box.top coordinate") box.grip.vframe.visible(True) box.grip.app_pos.vframe.visible(True) box.top.vframe.visible(True) raw_input("ok?") box.grip.vframe.visible(False) box.grip.app_pos.vframe.visible(False) box.top.vframe.visible(False) 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 16 - 問題4の解答方法 raw_input("answer for 4") raw_input("calc cup coordinate") from face_fit import * from rf_cup_points import * # # use plase_b wrt camera as a initial solution trans0= place_b.where(camera) # # calcurate precise position wrt camera using newton method # # T_camera_cup= (4-1) # T_place_b_cup= (4-2) print "displacemet from place_b:", T_place_b_cup.xyzabc() # # T_table_cup= (4-3) raw_input("replace cup to measured coordinate") # (4-4) # # unfix cup, then affix it at proper position 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 17 - 問題5の解答方法 raw_input("answer for 5") raw_input("import and create arm") # # import youre arm # from rf_xxxx_arm import * # # create arm, place it and set it ready # arm = create_arm() # arm...... # arm...... # raw_input("exec the task") # # your tasc execution program # 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 18 2014年前期 最終課題 提出方法 提出ファイル rf_学籍番号_q1.py rf_学籍番号_arm.pdf rf_学籍番号_arm.py rt_学籍番号_task.py rf_学籍番号_xxx.py(必要なら) それを添付して[email protected] と [email protected]にメールする。 メールの表題は「知能システム論1:最終課題」 〆切: 7/18(金) 2014年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 19
© Copyright 2024