# 維持燒杯水平上移 ## Ver1 <code>getOrientation()</code> \begin{equation*} R_{3,3} = \begin{pmatrix} R[0] & R[1] & R[2] \\ R[3] & R[4] & R[5] \\ R[6] & R[7] & R[8] \\ \end{pmatrix} \end{equation*} $p' = Rp + T$ Where $p$ is a point whose coordinates are given with respect to the local coordinate system of a node, $R$ the rotation matrix returned by the <code>getOrientation()</code> function, T is the position returned by the <code>getPosition()</code> function and $p'$ represents the same point but this time with coordinates expressed in the global (world) coordinate system. Reward: 將原本碰點reward設計,加上-(1.0-R[4]) 神經網路輸出$3^4=81$種action控制最末四個馬達motor 0~6中的motor 3,4,5,6 ![](https://i.imgur.com/KaXpjuI.gif) ![](https://i.imgur.com/3jw3Qqo.png) 上述觀察為末端馬達旋轉後推擠木箱導致第1馬達轉動,又因為神經網路input不包含此馬達之position因此無法調適。 ## Ver2 強迫motor 0,1,2維持原本position,透過每次採取action時候也指定遠本position與馬達轉速給motor 0,1,2 :face_with_one_eyebrow_raised: 看起來成功了對ㄇ? :face_palm: 收斂到變成原地直接不動了,少動少錯不動不錯 (影片待補,網路不穩) ![](https://i.imgur.com/Avl8mbm.png) ## Ver3 將軒裕詠太構想增加兩個關節自由移動 ![](https://i.imgur.com/sbckX3z.gif)