In [2]:
from general_wheel import*
from mobile_ss import*

In [3]:
f1 = general_wheel(v_alpha = pi/2, v_beta = 0, v_gamma =  pi/2, d = 0)
f1.exp


New mobile robot parameterization
Out[3]:
$$\left[\begin{matrix}- r\\0\end{matrix}\right] \dot{\phi} + \left[\begin{matrix}-1 & 0 & L\\0 & -1 & 0\end{matrix}\right] {R(\theta)} \dot{\xi}$$

In [4]:
f2 = general_wheel(v_alpha = -pi/2, v_beta = 0, v_gamma =  -pi/2, d = 0)
f2.exp


New mobile robot parameterization
Out[4]:
$$\left[\begin{matrix}- r\\0\end{matrix}\right] \dot{\phi} + \left[\begin{matrix}-1 & 0 & - L\\0 & -1 & 0\end{matrix}\right] {R(\theta)} \dot{\xi}$$

In [5]:
a = Symbol('a')
b3s = Symbol('\\beta _{3s}')

s3 = general_wheel(v_alpha = 0, v_beta = b3s, v_gamma =  0, d = 0, L=a)
s3.exp


New mobile robot parameterization
Out[5]:
$$\left[\begin{matrix}- r\\0\end{matrix}\right] \dot{\phi} + \left[\begin{matrix}\cos{\left (\beta _{{3s}} \right )} & \sin{\left (\beta _{{3s}} \right )} & a \sin{\left (\beta _{{3s}} \right )}\\- \sin{\left (\beta _{{3s}} \right )} & \cos{\left (\beta _{{3s}} \right )} & a \cos{\left (\beta _{{3s}} \right )}\end{matrix}\right] {R(\theta)} \dot{\xi}$$

In [6]:
mob = mobile_ss();   
simplify(mob.conf_kinematic_model([f1,f2,s3],['f','f','s'],simply=1))


New mobile robot instance:
Out[6]:
$$\left[\begin{matrix}\cos{\left (\theta \right )} & 0\\\sin{\left (\theta \right )} & 0\\\frac{1}{a} \tan{\left (\beta _{{3s}} \right )} & 0\\0 & 1\\\frac{1}{a r} \left(L \tan{\left (\beta _{{3s}} \right )} - a\right) & 0\\- \frac{1}{a r} \left(L \tan{\left (\beta _{{3s}} \right )} + a\right) & 0\\\frac{1}{r \cos{\left (\beta _{{3s}} \right )}} & 0\end{matrix}\right]$$

In [7]:
from sympy import *
mob.C1_star.nullspace()


Out[7]:
$$\left [ \left[\begin{matrix}\frac{a \cos{\left (\beta _{{3s}} \right )}}{\sin{\left (\beta _{{3s}} \right )}}\\0\\1\end{matrix}\right]\right ]$$

In [8]:
mob.C1_star


Out[8]:
$$\left[\begin{matrix}0 & -1 & 0\\0 & -1 & 0\\- \sin{\left (\beta _{{3s}} \right )} & \cos{\left (\beta _{{3s}} \right )} & a \cos{\left (\beta _{{3s}} \right )}\end{matrix}\right]$$

In [9]:
mob.J1


Out[9]:
$$\left[\begin{matrix}-1 & 0 & L\\-1 & 0 & - L\\\cos{\left (\beta _{{3s}} \right )} & \sin{\left (\beta _{{3s}} \right )} & a \sin{\left (\beta _{{3s}} \right )}\end{matrix}\right]$$

In [10]:
mob.J2


Out[10]:
$$\left[\begin{matrix}- r & 0 & 0\\0 & - r & 0\\0 & 0 & - r\end{matrix}\right]$$

In [11]:
mob.J2**-1*mob.J1


Out[11]:
$$\left[\begin{matrix}\frac{1}{r} & 0 & - \frac{L}{r}\\\frac{1}{r} & 0 & \frac{L}{r}\\- \frac{1}{r} \cos{\left (\beta _{{3s}} \right )} & - \frac{1}{r} \sin{\left (\beta _{{3s}} \right )} & - \frac{a}{r} \sin{\left (\beta _{{3s}} \right )}\end{matrix}\right]$$

In [12]:
mob.Sigma


Out[12]:
$$\left[\begin{matrix}1\\0\\\frac{1}{a} \tan{\left (\beta _{{3s}} \right )}\end{matrix}\right]$$

In [4]:
simplify.collect(M)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-75feacef713a> in <module>()
----> 1 simplify.collect(M)

NameError: name 'simplify' is not defined

In [ ]: