# Compliant Human-Robot Collaboration with Accurate Path-Tracking Ability for a Robot Manipulator
## 2 Problem Formulation and Methodology
### Outer Admittance Control Loop
However, one desirable feature of the proposed method is that it forces the robot to stop before reaching singularities and allows the robot to retract along the path without getting stuck when guided by the human operator. This is accomplished by the outer admittance control loop. Therefore, violation of the no-singularities-on-the-reference-path assumption does not fail the normal operation of the robot. It just restricts its motion on the portion of the reference path without singularities. Note that only the tangential component of \(f_{ext}\) is used to generate \(\dot{r}_{d}\) which is in the tangent direction of \(r_{p}\). In other words, the robot moves along \(r_{p}\) when the end effector is pushed by an external tangential force. However, if a large force, i.e., \(\|f_{ext}\|\geq f_{th}\), is applied in the perpendicular direction of \(r_{p}\), then \(f_{proj}\) is zero. Consequently, \(\dot{r}_{d}\) reduces to zero exponentially with time constant \(\frac{m}{c}\), and the robot stops almost immediately if the time constant is very small. In this way, the robot rejects perpendicular forces while complies with tangential forces based on an adaptive admittance law. The first-order admittance function \(G(s)\) is widely used in many compliance control problems [31; 32; 33; 34], but the appropriate admittance parameters are task dependent and are often set by heuristics. To deal with this problem, we have proposed an online parameter tuning approach in [23] that considers the safety, comfort, and intuition of manual guidance. The underlying idea is to reduce compliance without significantly changing the dynamic behavior of the admittance function whenever the robot is close to constrained areas such as singularities, joint limits, and task space limits. If no constraints are going to be breached,the compliance varies with the external force, allowing the user to guide the motion of the robot more comfortably and intuitively. In this paper, the desired task space path \(r_{p}\) is defined in advance and the end effector does not deviate from this path; thus, we can assume that the robot will not pass through or go near any constrained areas. Therefore, the admittance parameters are adapted based on the applied forces. To tune the admittance parameters, we first set up the varying range for the virtual damping \(c\). The maximum allowable motion speed is considered when selecting the limits of the range for damping \(c\). This ensures that any motion is below the safety relative speed limit defined in the Annex A of ISO/TS 15066:2016 [35] for transient and quasi-static contact. Let \(c\in[c_{min}\,c_{max}]\), where \(c_{min}\) and \(c_{max}\) are the pre-established minimum and maximum limits of \(c\), respectively. Then, the projected force \(f_{proj}\) is normalized with respect to an estimated maximum value \(\hat{f}\), which could be determined either experimentally or heuristically. Define  
\[\hat{f}=min\bigg{\{}\frac{\|f_{proj}\|}{\hat{f}},1\bigg{\}} \tag{17}\]  
Therefore, \(\hat{f}\in(0,1]\). The proposed parameter adaptive law is  
\[c=(c_{min}-c_{max})\hat{f}+c_{max} \tag{18}\]  
Notice that the largest force \(\hat{f}=1\) is mapped to the minimum damping \(c_{min}\), which corresponds to the largest DC gain of \(G(s)\), while the smallest force \(\hat{f}\approx 0\) is mapped to the maximum damping \(c_{max}\) corresponding to the smallest DC gain of \(G(s)\). Consequently, the user can guide the robot to move faster and reach the destination quickly just by applying a larger force. On the other hand, the user slows down the robot to accomplish fine work with high accuracy when a smaller force is applied. Once the virtual damping \(c\) is determined, the virtual mass \(m\) is adjusted accordingly to keep the ratio \(\frac{m}{c}\) unaltered. The ratio \(\frac{m}{c}\) is the time constant of \(G(s)\), which is related to the response time of \(G(s)\).