# Sampling-Based Motion Planning for Free-Floating Space Robot without Inverse Kinematics
## 3 Motion Planning Algorithm for FFSRs
**Selection of node to be expanded**: Different selection criteria should be considered for GEE-GG and RC-GG when selecting \(q_{Extended}\). For the former, the requirement of avoiding larger base disturbances must be considered, so greater weight to the change of base attitude should be provided during the design of the metric. For the latter, the pose change of the EE should be used as the major part of the metric design. 3. **Local planning**: This article designs two types of local planner; one of them is for RC-GG, another is for GEE-GG. The details of these two local planners will be presented in Section 3.2. 4. **Collision detection**: First, in order to test whether a certain configuration is in collision, the centroid position and attitude of each rigid body of the FFSR can be calculated through the related methods in Part 2. Combined with the size parameters of each rigid body, the area occupied by each rigid body in space can be calculated. Then, collision detection can be completed according to the corresponding collision detection algorithm. Second, according to the previous statement, we can see that every local planning scheme has an integration process Each integration will produce a new configuration. The new configuration may change very little from the last configuration because the step length of the integration may be very small. Therefore, it is not necessary to detect the new configuration generated in each integration. In the collision detection module of the planner, a new mechanism is introduced to determine when to perform collision detection. This mechanism will be stated in the local planning section. ### Local Planning

#### 3.2.1 Local Planner for Random Configuration Guiding Growth

The purpose of local planning corresponding to RC-GG is to grow node \(q_{Extended}\) toward a random guiding configuration to generate local trajectories and new nodes. It is not necessary to reach the random guiding configuration in this local planner. This paper proposes a control-based local planner for RC-GG. The planner runs in an iterative manner. The action in each iteration is designed according to the error between the current configuration and the random guiding configuration. The purpose of \begin{table}
\begin{tabular}{l c c} \hline
1 & Tree & Tree data structure generated by the algorithm \\ \hline
2 & V & Vertex of the tree \\ \hline
3 & rand() & A function that generates a real number between 0–1 \\ \hline
4 & q\_new & New vertex (configuration) generated by the local planner \\ \hline
5 & Local\_Traj & Local trajectory generated by the local planner \\ \hline
6 & is\_Reaching\_Goal & A mark indicating whether the goal has been achieved \\ \hline
7 & Is\_Extend & A mark indicating whether the local planner is successful \\ \hline
8 & Tree.Add & A function that adds the generated new node and local \\ \hline
9 & Tree.V.\(init\)(q\_I) & Initialize the tree \\ \hline
10 & Break & Jump out of the loop \\ \hline \end{tabular}
\end{table} 
Table 1: Variables and functions used in Algorithm 1.



this error as \(\Delta\mathbf{q}\). Secondly, \(\mathbf{H}_{\omega}\), at \(\mathbf{q}_{Extended}\) is calculated, which can be used to obtain the Jacobian matrix \(\mathbf{J}_{x}\). Through the pseudo-inverse of \(\mathbf{J}_{x}\), \(\Delta\mathbf{q}\) can be mapped to the action space to get joint angular velocity \(\dot{\mathbf{\Theta}}\) \[\dot{\mathbf{\Theta}}\ =\ \mathbf{J}_{x}^{+}\Delta\mathbf{q}\] (21) \(\Delta\mathbf{q}\) can be reduced if the robot moves with \(\dot{\mathbf{\Theta}}\) at \(\mathbf{q}_{Extended}\). By multiplying \(\dot{\mathbf{\Theta}}\) by \(\mathbf{H}_{\omega}\), \(\ddot{\mathbf{\Psi}}_{b}\) corresponding to \(\dot{\mathbf{\Theta}}\) can be obtained. Integrating \(\dot{\mathbf{\Theta}}\) and \(\ddot{\mathbf{\Psi}}_{b}\) from \(\mathbf{q}_{Extended}\), a new configuration is obtained, and we let this configuration be the next \(\mathbf{q}_{Extended}\).