プチテスト&レポート 2003

[| ]  最終更新: 2004/04/19 09:29:14

傾向と対策?

プチテストは本講義を進め、修了するにあたり、できないと困るというレベルのごく単純な計算を基本に出題しています。 ということは、このくらいはできないと合格の可能性も著しく低下するわけで、興味のみで単位抜きに受講している学生さんは別として、必ず計算できるようにしておいてください。 できるからと言って合格は保証しませんが、できないときついです。

レポートに関しては、多少まじめに計算しないと大変そうなネタを提供します。


プチテストとその解答例

第1回(03/10/06) 計算問題

Q1
\Mtt{\sqrt{3}/2}{-1/2}{1/2}{\sqrt{3}/2}^2
を計算し、その意味をのべよ。

Q2
\vect{e}_1=\Mto{\cth}{\sth}, ~~~~~\vect{e}_2=\Mto{-\sth}{\cth}
に対して、
\vect{e}_1\cdot\vect{e}_1, ~~~\vect{e}_2\cdot\vect{e}_2, ~~~\vect{e}_1\cdot\vect{e}_2
を計算せよ。


A1:
\Mtt{\sqrt{3}/2}{-1/2}{1/2}{\sqrt{3}/2}^2 = \Mtt{1/2}{-\sqrt{3}/2}{\sqrt{3}/2}{1/2}
ここで、
\Mtt{\sqrt{3}/2}{-1/2}{1/2}{\sqrt{3}/2} &=& \Mtt{\cos(\pi/6)}{-\sin(\pi/6)}{\sin(\pi/6)}{\cos(\pi/6)} \nonumber \\    \Mtt{1/2}{-\sqrt{3}/2}{\sqrt{3}/2}{1/2} &=& \Mtt{\cos(\pi/3)}{-\sin(\pi/3)}{\sin(\pi/3)}{\cos(\pi/3)}
であり、30度回転+30度回転=60度回転という、回転の連続が行列の積になることが示されている。

A2:
\vect{e}_1\cdot\vect{e}_1&=&\cth \cth + \sth \sth = 1 \nonumber\\\vect{e}_2\cdot\vect{e}_2 &=&1 \nonumber\\ \vect{e}_1\cdot\vect{e}_2 &=& -\cth \sth + \sth \cth = 0

第2回(03/10/20) 2次元の回転の合成

Q:
θ1およびθ2で回転させる行列
\vect{R}_1=\Mtt{\cth_1}{-\sth_1}{\sth_1}{\cth_1},~~~\vect{R}_1=\Mtt{\cth_2}{-\sth_2}{\sth_2}{\cth_2}
に対して、
\vect{R}_1\vect{R}_2
を計算し、結果を論じよ。


A:
計算については
&&\Mtt{\cth_1}{-\sth_1}{\sth_1}{\cth_1}\Mtt{\cth_2}{-\sth_2}{\sth_2}{\cth_2}\nonumber\\&=&              \Mtt{\cth_1\cth_2-\sth_1\sth_2}{-\cth_1\sth_2-\sth_1\cth_2}{\sth_1\cth_2+\cth_1\sth_2}{\cth_1\cth_2-\sth_1\sth_2}\nonumber\\&=&  \Mtt{\cos(\theta_1+\theta_2)}{-\sin(\theta_1+\theta_2)}{\sin(\theta_1+\theta_2)}{\cos(\theta_1+\theta_2)}

論じられること1:
三角関数の加法定理を前提にするなら、「回転の合成は、角度の和の回転になる」

論じられること2:
回転の合成は角度の和になることを前提にするなら、三角関数の加法定理は
\cos(\theta_1+\theta_2)&=&\cth_1\cth_2-\sth_1\sth_2 \nonumber\\ \sin(\theta_1+\theta_2)&=&\sth_1\cth_2+\cth_1\sth_2
で得られることがわかる。

加法定理は当たり前のように使う定理ですけど、三角関数の幾何学的性質から導かれたものです。

第3回(03/10/27) 3次元の回転合成

Q:
Z軸まわり45度回転Rzと、X軸回り回転Rxに対して、RxRzとRzRxを計算して異なることを確認せよ。


A:
\vect{R}_z=\Mss{\sqrt{2}/2}{-\sqrt{2}/2}{~~~~0}{\sqrt{2}/2}{\sqrt{2}/2}{0}{0}{0}{1} \vect{R}_x=\Mss100{~0}{~~0}{-1}010
\vect{R}_z\vect{R}_x=\Mss{\sqrt{2}/2}{~~~~0}{\sqrt{2}/2}{\sqrt{2}/2}{0}{-\sqrt{2}/2}{0}{1}{0} \vect{R}_x\vect{R}_z=\Mss{\sqrt{2}/2}{-\sqrt{2}/2}{0}{0}{0}{~~-1}{\sqrt{2}/2}{\sqrt{2}/2}{0}

以上のように、3次元では異なる軸回りの回転の順序を変えると、一般には結果が異なります(角度が微少な場合は無視しうる、などの場合あり)。 同じ軸回りなら、上述のように合成できます。

第4回(03/12/08) 対向2輪ロボットの移動1

※時間切れでプチテストになり損ね

Q:
対向2輪ロボットの左右の車輪が以下の周速でまわるとき、回転半径と旋回角速度を求めよ。 ただし、車輪間2d=200mmとする。
No VR VLρω V
1300 100   
2600 200   
3500 300   
4200-200   
5150 -50   

A:
No VR VLρ=V/ωω=(VR-VL)/2dV=(VR+VL)/2
1300 100200/1=200(300-100)/200=1(300+100)/2=200
2600 200400/2=200(600-200)/200=2(600+200)/2=400
3500 300400/1=400(500-300)/200=1(500+300)/2=400
4200-2000/2=0(200-(-200))/200=2(200+(-200))/2=0
5150 -5050/1=50(150-(-50))/200=1(150+(-50)/2=50

解説:


第5回(03/12/15) 対向2輪ロボットの移動2

Q:
車輪直径 2r=100mm、車輪間隔 2d=200mm の対向2輪型ロボットにおいて、一定角速度で右車輪が3π、左車輪がπ前進方向に回転した。 ロボットの移動軌跡を図示せよ。

A:
\Delta L_R&=&\phi_R r=3\pi\times50=150\pi\nonumber\\ \Delta L_L&=&\phi_L r=\pi\times50=50\pi
\Delta L&=&(\Delta L_R+\Delta L_L)/2=100\pi \nonumber\\ \Delta \theta&=&(\Delta L_R-\Delta L_L)/2d=\pi/2   \nonumber\\  \rho&=&\Delta L/\Delta \theta=200
よって、ロボットは半径200mmでπ/2旋回する。これを適宜図示すればよい。

解答をみて気づいたこと:
多くの学生さんは上記計算が出来ていますが、そのあとの図示がちゃんとできていません。 ロボットに限らず、機械分野では計算結果や設計結果を正しく思い浮かべることが重要です。 今回の結果を図式化するにあたって考慮すべき点は

の2点です。 皆さんの書いた図で多かった例は、90度は出来ていても、半径と車輪間隔の関係がいい加減というものでした。 また、旋回を扇形で示し、その角度が30度もないのに、そこにπ/2と記載するケースもそこそこありました。 車輪移動ロボットの場合、どの辺りを中心に回るかで障害物に当る当らないなどの影響が出るため、きっちりイメージすることが望まれます。

第6回(04/01/05) DCサーボモータの電圧駆動

※新春お年玉つきプチテスト<お年玉点がつきます:-)

Q:
DCサーボモータに5Vを与えて回したときと比較して、10Vを与えると回転数はどうなるか、考えうる理由をつけて述べよ。

A:解答例
条件によって一概には言えない。
モータにある電圧を与えて回転させた場合、その平衡条件は
 与えた電圧=逆起電力+必要なトルクに匹敵する電流×モータの抵抗
である。摩擦まで含めて、完全に無負荷であると仮定すると、与えた電圧=逆起電力であって、逆起電力と回転数(回転角速度)は比例するため、電圧2倍で回転数も2倍であると考えられる。
しかし、摩擦まで含めてトルクが変わらないということは実際にはあり得ず、何らかのトルクが必要である。 回転数の変化に対応してトルクがいっさい変わらない、という場合を想定すると、上式の後半が定数となるため、電圧を2倍にすると回転数は2倍以上になると考えられる。
一般には、摩擦には速度や速度の2乗に比例する項が含まれる。 上の考えからすると、速度に比例する成分(潤滑面など)は逆起電力と似た性質を示すため、電圧に比例した速度が得られそうであり、2乗に比例した成分(空気抵抗など)は速度が上がるにつれて急速に増えるため、電圧比ほど速度が得られないことになる。


経験上は、無負荷回転の場合は倍の電圧で倍の回転にはならないように思われます。 ちなみに、マブチモータを電池で回す場合は、電池を1本から2本直列にしても倍にならないとおもいますが、これは電池の内部抵抗という要因もあってさらに複雑です。
いずれにせよ、DCサーボモータに狙った運動をさせるには、フィードバックが必要で、上記のような状況による挙動の違いを考慮すると、電流を制御できるような回路(具体的には電流検出+フィードバック→電圧操作)をつかう必要があります。

蛇足ですが、モータには回していい上限の回転速度があります。それ以上はベアリングが痛んだり、遠心力で中の回転子が膨張して破損の原因につながったりするため、厳守です。 モータの限界性能を引き出すために十分強力な電源と電流制御をした場合、どんどん加速させることができるため、速度の上限を監視するものをつける必要があります。 一方、ぬるい回路でぬるい電源を使った場合、とくに電源の電圧が最高回転×逆起電力定数未満なら、この心配はいらなくなります。
逆に、電圧のみで操作する場合、モータに流していい電流の上限が問題になることがあります。 上限を越えるとモータの磁石がバカになって(減磁)、性能が落ちることがあります。 電流制御の場合はそれも含めて制御できますが、電圧のみの場合は、止まったモータにいきなり大電圧をかけるとドバっと電流が流れて減磁の可能性があります。これも電流があまり流せないぬるい電源装置だとOKです。
結論:モータを制御する回路をつくったときは、まずはぬるい電源(もしくはパワーセーブできる電源)をつかって試すべし。


レポート

第1回(03/10/27出題、03/11/10講義で回収)

Q:
Z-Y-Xの順番で回転させるロールピッチヨー角回転変換の変換行列
\vect{R}=\Mss{\Cph}{-\Sph}{~~~~0}{\Sph}{\Cph}{0}{0}{0}{1}      \Mss{\Cth}{~~0}{~~\Sth}{0}{1}{0}{-\Sth}{0}{\Cth}    \Mss{~1}{0}{0}{0}{~~\Cps}{-\Sps}{0}{\Sps}{\Cps}
を求めよ。
また、Rが与えられたときに、(φ,θ,ψ)を求める方法を検討せよ。


ヒント:
頑張って計算する。計算結果は、各列ベクトルの大きさが1、各列ベクトル間の内積が0となることでほぼ検算できる(ならないときは計算ミス)。

A:
\vect{R}&=&\Mss{\Cph}{-\Sph}{~~~~0}{\Sph}{\Cph}{0}{0}{0}{1}      \Mss{\Cth}{~~0}{~~\Sth}{0}{1}{0}{-\Sth}{0}{\Cth}    \Mss{~1}{0}{0}{0}{~~\Cps}{-\Sps}{0}{\Sps}{\Cps}  \nonumber\\                      &=&\Mss{\Cph\Cth}{-\Sph}{\Cph\Sth}{\Sph\Cth}{\Cph}{\Sph\Sth}{-\Sth}{0}{\Cth}    \Mss{~1}{0}{0}{0}{~~\Cps}{-\Sps}{0}{\Sps}{\Cps} \nonumber\\       &=&\Mss{\Cph\Cth}{-\Sph\Cps+\Cph\Sth\Sps}{\Sph\Sps+\Cph\Sth\Cps}{\Sph\Cth}{\Cph\Cps+\Sph\Sth\Sps}{-\Cph\Sps+\Sph\Sth\Cps}{-\Sth}{\Cth\Sps}{\Cth\Cps}

検算例:
3行:
(-\Sth)^2+(\Cth\Sps)^2+(\Cth\Cps)^2=(\Sth)^2+(\Cth)^2((\Sps)^2+(\Cps)^2)=1
1行:
&&(\Cph\Cth)^2+(-\Sph\Cps+\Cph\Sth\Sps)^2+(\Sph\Sps+\Cph\Sth\Cps)^2\nonumber\\&=&\Cph^2\Cth^2+\Sph^2\Cps^2+\Cph^2\Sth^2\Sps^2-2\Cph\Sph\Sth\Cps\Sps\nonumber\\  &&+\Sph^2\Sps^2+\Cph^2\Sth^2\Cps^2+2\Cph\Sph\Sth\Cps\Sps  \nonumber\\   &=&\Cph^2\Cth^2+\Sph^2(\Cps^2+\Sps^2)+\Cph^2\Sth^2(\Sps^2+\Cps^2)\nonumber\\   &=&\Cph^2(\Cth^2+\Sth^2)+\Sph^2 = 1
2行・3行:
&&(\Sph\Cth)(-\Sth)+(\Cph\Cps+\Sph\Sth\Sps)(\Cth\Sps)+(-\Cph\Sps+\Sph\Sth\Cps)(\Cth\Cps) \nonumber\\  &=& -\Sph\Cth\Sth+\Cph\Cth\Cps\Sps+\Sph\Cth\Sth\Sps^2 - \Cph\Cth\Cps\Sps + \Sph\Cth\Sth\Cps^2 \nonumber\\  &=& -\Sph\Cth\Sth+ \Sph\Cth\Sth(\Sps^2+\Cps^2) = 0

(φ,θ,ψ)の求め方:

ただし、cosθ=0となる場合はsinθ=±1であり、たとえばsinθ=1の場合
\vect{R}&=&\Mss{0}{-\Sph\Cps+\Cph\Sps}{\Sph\Sps+\Cph\Cps}{0}{\Cph\Cps+\Sph\Sps}{-\Cph\Sps+\Sph\Cps}{\mp1}{0}{0}   \nonumber\\&=&\Mss{0}{-S(\phi-\psi)}{C(\phi-\psi)}{0}{C(\phi-\psi)}{S(\phi-\phi)}{-1}{0}{0}
となり、φ−ψが得られる(逆にsinθ=−1の場合はφ+ψ)。 そのため、いずれか一方は適宜決める必要がある(0などでかまわない)。

第2回(03/11/17出題、03/12/01講義で回収)

Q1:
講義で示したDH記法の各ステップの同次変換行列
^{i-1}\vect{T}_A  =  \Mqqa{1}{0}{0}{a_i}{0}{1}{0}{0}\Mqqb{0}{0}{1}{0}{0}{0}{0}{1} ^A\vect{T}_B = \Mqqa{1}{0}{0}{0}{0}{~\Cal_i}{-\Sal_i}{~~~~0}\Mqqb{0}{\Sal_i}{\Cal_i}{0}{0}{0}{0}{1}
^B\vect{T}_C = \Mqqa{1}{0}{0}{0}{0}{1}{0}{0}\Mqqb{0}{0}{1}{d_i}{0}{0}{0}{1} ^C\vect{T}_i = \Mqqa{\Cth_i}{-\Sth_i}{~~~~0}{~~~~0}{\Sth_i}{\Cth_i}{0}{0}\Mqqb{0}{0}{1}{0}{0}{0}{0}{1}
をまとめたものが、
^{i-1}\vect{T}_i= ^{i-1}\vect{T}_A ~ ^A\vect{T}_B ~ ^B\vect{T}_C ~ ^C\vect{T}_i = \Mqqa{\Cth_i}{-\Sth_i}{0}{a_i}{\Cal_i\Sth_i}{\Cal_i\Cth_i}{-\Sal_i}{-d_i\Sal_i}  \Mqqb{\Sal_i\Sth_i}{\Sal_i\Cth_i}{\Cal_i}{d_i\Cal_i}{0}{0}{0}{1}
となることを示せ。
(なお、便宜的に途中に臨時の座標系A,B,Cを仮定した)

Q2:
同じく、講義で示したDH記法のロボット例の同次変換行列、
^0T_1=\Mqqa{\Cth_1}{-\Sth_1}{~~~0}{~~~0}{\Sth_1}{\Cth_1}{0}{0}\Mqqb{0}{0}{1}{d_1}{0}{0}{0}{1}
^1T_2=\Mqqa{\Cth_2}{-\Sth_2}{~~~0}{~~a_2}{\Sth_2}{\Cth_2}{0}{0}\Mqqb{0}{0}{1}{0}{0}{0}{0}{1}
^2T_3=\Mqqa{1}{0}{0}{a_3}{0}{-1}{0}{0}\Mqqb{0}{0}{-1}{-d_3}{0}{0}{0}{1}
を掛け合わせることで、土台の座標系0からみた手先3の座標系の同次変換
^0T_3=\Mqqa{C(\theta_1+\theta_2)}{S(\theta_1+\theta_2)}{0}{a_2\Cth_1+a_3C(\theta_1+\theta_2)}{S(\theta_1+\theta_2)}{-C(\theta_1+\theta_2)}{0}{a_2\Sth_1+a_3S(\theta_1+\theta_2)}\Mqqb{0}{0}{-1}{d_1-d_3}{0}{0}{0}{1}
が得られることを確認せよ。
板書において、行列(たしか 1T2)の本来1であるべき右下の成分を誤って0と書いた ようです。そのままでは上記計算が成立しませんのでご注意下さい。


A1:
計算してなればよいです。

^{i-1}\vect{T}_B=^{i-1}\vect{T}_A~^A\vect{T}_B &=& \Mqqa{1}{0}{0}{a_i}{0}{1}{0}{0}\Mqqb{0}{0}{1}{0}{0}{0}{0}{1} \Mqqa{1}{0}{0}{0}{0}{~\Cal_i}{-\Sal_i}{~~~~0}\Mqqb{0}{\Sal_i}{\Cal_i}{0}{0}{0}{0}{1}\nonumber\\     &=&\Mqqa{1}{0}{0}{a_i}{0}{\Cal_i}{-\Sal_i}{0}\Mqqb{0}{\Sal_i}{\Cal_i}{0}{0}{0}{0}{1}
^B\vect{T}_i=^B\vect{T}_C~^C\vect{T}_i &=& \Mqqa{1}{0}{0}{0}{0}{1}{0}{0}\Mqqb{0}{0}{1}{d_i}{0}{0}{0}{1} \Mqqa{\Cth_i}{-\Sth_i}{~~~~0}{~~~~0}{\Sth_i}{\Cth_i}{0}{0}\Mqqb{0}{0}{1}{0}{0}{0}{0}{1} \nonumber\\ &=&\Mqqa{\Cth_i}{-\Sth_i}{~~~~0}{~~~~0}{\Sth_i}{\Cth_i}{0}{0}\Mqqb{0}{0}{1}{d_i}{0}{0}{0}{1} ^{i-1}\vect{T}_i=^{i-1}\vect{T}_B~^B\vect{T}_i&=&\Mqqa{1}{0}{0}{a_i}{0}{\Cal_i}{-\Sal_i}{0}\Mqqb{0}{\Sal_i}{\Cal_i}{0}{0}{0}{0}{1}\Mqqa{\Cth_i}{-\Sth_i}{~~~~0}{~~~~0}{\Sth_i}{\Cth_i}{0}{0}\Mqqb{0}{0}{1}{d_i}{0}{0}{0}{1}   \nonumber\\   &=& \Mqqa{\Cth_i}{-\Sth_i}{0}{a_i}{\Cal_i\Sth_i}{\Cal_i\Cth_i}{-\Sal_i}{-d_i\Sal_i}  \Mqqb{\Sal_i\Sth_i}{\Sal_i\Cth_i}{\Cal_i}{d_i\Cal_i}{0}{0}{0}{1}
A2:
^0T_2&=&\Mqqa{\Cth_1}{-\Sth_1}{~~~0}{~~~0}{\Sth_1}{\Cth_1}{0}{0}\Mqqb{0}{0}{1}{d_1}{0}{0}{0}{1}  \Mqqa{\Cth_2}{-\Sth_2}{~~~0}{~~a_2}{\Sth_2}{\Cth_2}{0}{0}\Mqqb{0}{0}{1}{0}{0}{0}{0}{1}           \nonumber\\&=&\Mqqa{C(\theta_1+\theta_2)}{-S(\theta_1+\theta_2)}{0}{a_2\Cth_1}{S(\theta_1+\theta_2)}{C(\theta_1+\theta_2)}{0}{a_2\Sth_1}\Mqqb{0}{0}{1}{d_1}{0}{0}{0}{1}
^0T_3&=&\Mqqa{C(\theta_1+\theta_2)}{-S(\theta_1+\theta_2)}{0}{a_2\Cth_1}{S(\theta_1+\theta_2)}{C(\theta_1+\theta_2)}{0}{a_2\Sth_1}\Mqqb{0}{0}{1}{d_1}{0}{0}{0}{1} \Mqqa{1}{0}{0}{a_3}{0}{-1}{0}{0}\Mqqb{0}{0}{-1}{-d_3}{0}{0}{0}{1}\nonumber\\                      &=&\Mqqa{C(\theta_1+\theta_2)}{S(\theta_1+\theta_2)}{0}{a_3C(\theta_1+\theta_2)+a_2\Cth_1}{S(\theta_1+\theta_2)}{-C(\theta_1+\theta_2)}{0}{a_3S(\theta_1+\theta_2)+a_2\Sth_1}\Mqqb{0}{0}{-1}{-d_3+d_1}{0}{0}{0}{1}
最初の計算で、左上の3×3は単なる回転行列なので、積の左上3×3はθ1+θ2の回転になります。 あとは間違わないように計算するだけです。



熊谷正朗 [→連絡]
東北学院大学 工学部 機械知能工学科 RDE
[| ]