# Scattering or Pushing for Object Singulation in Cluttered Environment: Case Study with Soma Cube
## 3 Modeling, Identification and Condition for Dynamic and Quasi-Static Manipulation
### Impulse Modeling  
An analytical impulse based approach is considered which is based on the dynamic manipulation of the blocks. We assume that the robot manipulator collides with one of the blocks being cluttered in the environment. Then the impulse is propagated from one block to other blocks sequentially. For collision between the manipulator and block or collision among different blocks, the corresponding impulse based model has been developed in [15] and we have summarized the derivation in the following for the convenience of the reader. Impulse propagation can be seen in Figure 4, where manipulator scatters the blocks. In case of known coefficient of restitution, the following equation can be used to calculate the incremental change in relative linear velocities of two colliding bodies  
\[{(\Delta\mathbf{v}_{I}-\Delta\mathbf{v}_{env})}^{T}\mathbf{n}=-(1+e){(\mathbf{v}_{I}-\mathbf{v}_{ env})}^{T}\mathbf{n}, \tag{1}\]  
where \(e\) is the coefficient of restitution. \(\mathbf{v}_{I}\) and \(\mathbf{v}_{env}\) are the absolute linear velocities of the robot and the environment (here, it will a block), respectively. Similarly, \(\Delta\mathbf{v}_{I}\) and \(\Delta\mathbf{v}_{env}\) denotes the velocity increments of manipulator and the environment after the impact and \(T\) represents the transpose of vectors and matrices, respectively. If we consider a case where there is no friction between the contacting surfaces, the impulse will always act along the normal vector \(\mathbf{n}\) at the contact point. The inverse dynamic model of the robot manipulator with respect to independent joint set is given as follows  
\[\mathbf{\tau}_{a}=[I_{aa}]\ddot{\mathbf{\varphi}}_{a}+\dot{\mathbf{\varphi}}_{a}^{T}[P_{aa }]\dot{\mathbf{\varphi}}_{a}+\mathbf{g}_{a}-\Big{[}G_{a}^{I}\Big{]}^{T}\mathbf{F}_{ext} \tag{2}\]  
where \([I_{aa}]\) and \([P_{aaa}]\) denotes the inertia matrix and inertial power array with respect to the independent joint set \(\dot{\mathbf{\varphi}}_{a}\), respectively. \(\Big{[}G_{a}^{I}\Big{]}\) and \([G_{a}^{env}]\) represents the Jacobian matrices of robot manipulator and environment, and _env_ is the abbreviation of environment, respectively. \(\mathbf{\tau}_{a}\), \(\mathbf{F}_{ext}\) and \(\mathbf{g}_{a}\) represent the joint torque vector, the effective force vector, and the gravity load, and \(a\) represents actuated joints in robot manipulator, respectively. Position and velocities are finite during the impact, consequently the term \(\dot{\mathbf{\varphi}}_{a}^{T}[P_{aaa}]\dot{\mathbf{\varphi}}_{a}\) will be zero at \(\Delta t\to 0\). Then, the incremental joint velocity vector can be expressed as  
\[\dot{\Delta\mathbf{\varphi}}_{a}=[I_{aa}]^{-1}\Big{[}G_{a}^{I}\Big{]}^{T}\dot\mathbf{{F}}_{ext} \tag{3}\]  
Using the forward kinematic relation given by \(\Delta\mathbf{v}_{I}=\Big{[}G_{a}^{I}\Big{]}\Delta\mathbf{\varphi}_{a}\), the contact point velocity vector of the robot manipulator is given as follows  
\[[\Delta\mathbf{v}_{I}]=\Big{[}G_{a}^{I}\Big{]}[I_{aa}]^{-1}\Big{[}G_{a}^{I}\Big{]} ^{T}\Big{(}\dot{\mathbf{F}}_{ext}\Big{)}, \tag{4}\]  
Figure 4: Illustration of collision between robot and objects during singulation. Similarly, the contact point velocity incremental for environment can be represented as  
\[[\Delta\mathbf{v}_{env}]=[G_{a}^{env}][I_{env}]^{-1}[G_{a}^{env}]^{T}\big{(}-\hat{\mathbf{ F}}_{ext}\big{)} \tag{5}\]  
Substituting (4) and (5) into (1), we have the final closed-form solution of the external impulse as follows. \[\hat{\mathbf{F}}_{ext}=\frac{-(1+e)\left(\mathbf{v}_{I}-\mathbf{v}_{env}\right)^{T}\mathbf{n}}{ \mathbf{n}^{T}\Big{\{}\Big{[}G_{a}^{I}\big{]}[I_{aa}\big{]}^{-1}\Big{[}G_{a}^{I} \Big{]}^{T}+\big{[}G_{a}^{env}\big{]}[I_{env}\big{]}^{-1}\Big{[}G_{a}^{env} \big{]}^{T}\Big{\}}\mathbf{n}}, \tag{6}\]  
where the first and second terms in the denominator are associated with the dynamics of the manipulator and environment, respectively.