知能システム論1 2014年前期 最終課題 - 知能システム学講座

知能システム論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