# Tutorial Review on Space Manipulators for Space Debris Mitigation
## 9 Freeflyer Manipulator Control Systems  
The controller must be cycled at a rate of \(\sim\)100 Hz in order to provide sufficiently responsive feedback from rapidly changing environments (particularly force sensors during tactile manipulation), while visual frame rates are usually much lower at 5 Hz (though video frame rates are 30 Hz). For comparison, the ETS-VII manipulator arm was controlled using processing on the ground, but the update rates were 4 Hz, limiting it to speeds of 10 mm/s. Similarly, the Shuttle RMS was controlled by the Space Shuttle General Purpose Computer which was limited to a 12.5 Hz update rate limiting it to \"fly swatting\" operations. By contrast, SSRMS had an update rate of 125 Hz, enabling it to respond more quickly to feedback signals. The constraint of control cycle frequency imposes a computational burden which re-iterates the necessity to solve control problems as low down the control hierarchy as possible. There are several approaches to manipulator control [180]. The computed torque controller employs feedback linearization of manipulator dynamics by employing a nonlinear model to cancel its nonlinear elements. This permits the use of decoupled PID controllers for each motor. The computed torque controller may be regarded as a form of pole cancellation [181] and has the form:  
\[\tau=D(\theta)[\dot{\theta}^{d}+K_{v}\dot{e}+K_{p}e]+C(\theta,\dot{\theta}) \tag{84}\]where \(\ddot{\theta}=\ddot{\theta}^{d}+K_{\psi}\dot{e}+K_{p}e\) and \(e=\theta^{d}-\theta\). The computed torque controller assumes that the dynamic model is exactly known. The computed torque controller may be supplemented by a fuzzy controller providing a compensator torque \(\tau_{c}=-D(\theta)\dot{W}\zeta(\mathfrak{s})\) to accommodate uncertain parameters and perturbations where \(\dot{W}=\Gamma^{-1}B^{T}Px\zeta^{T}=\) regressor weight matrix as solution to the Riccatti equation \(A^{T}P+PA+P^{T}BB^{T}P+Q=0\), \(\zeta(\Phi)=\) fuzzy manipulator parameters vector, \(\mathfrak{s}=(\theta^{T},\dot{\theta}^{T},\ddot{\theta}^{T})^{T}\)[182]. A model-based computed torque control scheme has been developed to include the dynamics of flexible appendages [183]. Alternatives for vibration suppression generally adopt robust and/or adaptive controllers [184] and the computed torque method may be modified to implement adaptive control gains. Flexible appendages (with flexible joints and/or links) and fuel sloshing introduce further complications to freeflying dynamics [185; 186]. Solar array deployment is a similar multibody dynamics system to the space manipulator control problem [187] and solar panels generally have natural frequencies of 1-5 Hz, which limits attitude control bandwidth to \(\sim\)0.1 Hz but manipulator update rates must be much higher. However, manipulators themselves are subject to vibration--a considerable fraction of the SRMS operations time was wasted in waiting for vibrations to decay in its graphite-reinforced carbon composite booms of stiffness of \(\sim\)10\({}^{9}\) kg/cm\({}^{2}\). Flexibility in manipulators will cause the spacecraft to tumble if not addressed [188]. Space manipulators have high load-to-weight ratio of 1:1 (compared with 1:20 for traditional industrial robot arms), making their links flexible. Flexible manipulator links are treated as a Euler-Bernoulli beam with modal displacement given by [189; 190; 191]:  
\[F(\zeta,t)=EI\frac{\partial^{4}\delta(x,t)}{\partial x^{4}}+\rho\frac{\partial ^{2}\delta(x,t)}{\partial t^{2}} \tag{85}\]  
where \(EI=\) flexural stiffness, \(\rho=\) linear mass density, \(k=M/EI=\) beam curvature, \(M=\) beam moment, \(E=\) Young's modulus, \(I=\) beam moment of inertia. The solution is the transverse flexural displacement given by:  
\[\delta_{i}(x,t)=\sum_{0}^{n}\phi_{i}(x)\zeta_{i}(t) \tag{86}\]  
where \(\phi_{i}(x)=\sqrt{\frac{2}{\rho l}}sin\frac{i\pi}{l}=\) mode shapes and \(\zeta_{i}(t)=\frac{1}{\delta_{i}}\int_{0}^{t}N_{i}(\tau)sin(t-\tau)d\tau=\) generalised modal amplitude coordinates, n = number of modes.