## 4 Proposed Approach  
After specifying the control points that are to be controlled via markers or trackers, the controller first goes through an actuators discovery phase. Each actuator, \(j\in\mathbb{J}\), is movedone after another but in no particular order, where \(\mathbb{J}\) is the set of all actuators. For each control point \(i\in\mathbb{I}\), the actuators that can contribute to displacing it are assigned to that point, where \(\mathbb{I}\) is the set of all control points. Thus, actuators could be assigned to multiple control points. The control point that can be displaced by all actuators, most probably being the end effector of the robot, is assigned an index \(i=n\), where \(n\) is the cardinality of set \(\mathbb{I}\). The discovery phase produces the following Boolean matrix:  
\[S= \begin{bmatrix}s_{1}\\ s_{2}\\ \vdots\\ s_{n}\end{bmatrix} = \begin{bmatrix}\delta_{1}^{1}&\delta_{2}^{1}&\cdots& \delta_{m}^{1}\\ \delta_{1}^{2}&\delta_{2}^{2}&\cdots&\delta_{m}^{2}\\ \vdots&\vdots&\ddots&\vdots\\ \delta_{1}^{n}&\delta_{2}^{n}&\cdots&\delta_{m}^{n}\end{bmatrix} , \tag{17}\]  
where \(m\) is the cardinality of set \(\mathbb{J}\). The function above is defined as: \(\delta_{j}^{i}=1\) if actuator \(j\) can displace control point \(i\) and \(\delta_{j}^{i}=0\) otherwise. To find the number of actuators that contribute to some control point \(i\), the dot product can be used \(a_{i}=s_{i}\cdot s_{i}\). A vector of the number of such actuators can be defined as \(a=[a_{1},a_{2},\cdots,a_{n}]\). The kinematic-model-free multi-point controller, just like any other kinematic-model-free controller, assumes that the local kinodynamics information of the manipulator is attainable. This information is attained by generating pseudo-random actuation signals to actuate the robot joints and observing their result on the robot's control point(s). A high-level diagram summarizing the kinematic-model-free multi-point approach is shown in Figure 1.  
The actuation primitives produce signals \(\tau(t)\) which are sent to each of the robot's actuators and are defined as:  
\[\tau(t)=\left\{ \begin{array}{ll}\tau_{p}&t\in[t_{0},t_{0}+\frac{d_{p}}{2})\\ -\tau_{p}&t\in[t_{0}+\frac{d_{p}}{2},t_{0}+d_{p}]\\ 0&\text{otherwise}\end{array} \right.. \tag{18}\]  
Note that actuation primitives could be motor torques, motor currents, joint positions, etc. The controller tracks the poses of the control points, \(\hat{\mathbf{q}}_{i}\), using dual quaternion representation which yield the controlled points vector:  
\[\hat{\mathbf{\phi}}=[\hat{\mathbf{q}}_{i},\,\cdots,\,\hat{\mathbf{q}}_{n}]. \tag{19}\]  
Figure 1: Flowchart of kinematic-model-free multi-point control. The controller attempts to bring the points \(\hat{\mathbf{q}}_{i}\) towards desired target poses \(\hat{\mathbf{d}}_{i}^{f}\), yielding the desired poses vector as follows:  
\[\hat{\boldsymbol{\gamma}}=[\hat{\mathbf{d}}_{i}^{f},\;\ldots,\;\hat{\mathbf{d}} _{n}^{f}]. \tag{20}\]  
By controlling multiple points, redundancies can be easily resolved by specifying the desired poses of other points along the robot's serial chain. The controller terminates when \(\hat{\boldsymbol{\phi}}=\hat{\boldsymbol{\gamma}}\), i.e., when the poses of the controlled points of interest coincide with their corresponding desired poses. This condition can be relaxed by allow the controlled points' poses to reach within some deviation \(\sigma\) of their respective desired target poses. Otherwise, the controller is to actuate the control points towards a set of intermediate poses \(\hat{\mathbf{d}}_{i}^{t}\) that lead to the final desired target poses \(\hat{\mathbf{d}}_{i}^{f}\) in discrete steps. The intermediate poses are found using screw linear interpolation interpolation between the current poses of the controlled points, \(\hat{\mathbf{q}}_{i}\), and desired target poses, \(\hat{\mathbf{d}}_{i}^{f}\).