6. Phân tích sai số và nhận dạng tham số (Error Analysis and Parameter Identification / 誤差解析とパラメータ同定)

Estimated reading: 53 minutes 43 views

Phân tích sai số và nhận dạng tham số (Error Analysis and Parameter Identification / 誤差解析とパラメータ同定)

Để tính toán động học của Robot, cần có bốn tham số Khâu (Link parameters / リンクパラメータ) hình học theo phương pháp D-H. Đối với tính toán động lực học, cần thêm các tham số động lực học (Dynamics parameters / 動力学パラメータ) của từng Khâu như Khối lượng (Mass / 質量), Tensor quán tính (Inertia tensor / 慣性テンソル), Khối tâm (Center of mass / 質量中心), Lực ma sát Coulomb (Coulomb friction force / クーロン摩擦力), Hệ số ma sát nhớt (Viscous friction coefficient / 粘性摩擦係数), v.v. Nếu giá trị của tham số Khâu hoặc tham số động lực học không chính xác, sẽ rất khó để điều khiển chính xác vị trí và tư thế của Khâu tác động cuối (End-effector / 手先) theo mục tiêu. Ngoài ra, nó còn gây ra các vấn đề như không đạt được đặc tính động lực học mong muốn. Trong chương này, chúng ta sẽ đề cập đến ảnh hưởng của sai số tham số Khâu đối với vị trí và tư thế của Khâu tác động cuối, phương pháp Hiệu chuẩn (Calibration / キャリブレーション) tham số Khâu và phương pháp Nhận dạng (Identification / 同定) tham số động lực học.

6.1 Hiệu chuẩn tham số Khâu (Link parameter calibration / リンクパラメータのキャリブレーション)

≫ 6.1.1 Lựa chọn tham số Khâu

Bốn tham số Khâu theo phương pháp D-H có thể mô tả vị trí và tư thế tương đối giữa các Khâu. Tuy nhiên, khi sử dụng các tham số theo phương pháp D-H, có những trường hợp gây bất lợi cho việc Hiệu chuẩn (Calibration / キャリブレーション) tham số. Ví dụ, như được thể hiện trong Hình 6.1, khi hai trục khớp liền kề là trục $\boldsymbol{z}_{i-1}$ và trục $\boldsymbol{z}_i$ song song với nhau (khi $\alpha_i = 0$), thì $d_i$ có thể lấy giá trị tùy ý, và $a_i$ trở thành khoảng cách giữa hai trục. Mặt khác, khi trục $\boldsymbol{z}_{i-1}$ và trục $\boldsymbol{z}_i$ nằm trên cùng một mặt phẳng nhưng bị lệch một chút so với trạng thái song song (khi $\alpha_i \approx 0$), khoảng cách trục $d_i$ sẽ trở thành một giá trị rất lớn, và chiều dài Khâu $a_i$ sẽ bằng $0$. Như vậy, ở lân cận góc chéo (Twist angle / ねじれ角) $\alpha_i = 0$, sự thay đổi của $d_i$$a_i$ đối với sự biến thiên vi phân của $\alpha_i$ trở nên cực kỳ nhạy cảm hoặc gián đoạn. Trong quá trình hiệu chuẩn, sai số đo lường của $\alpha_i$ sẽ ảnh hưởng xấu rất lớn đến độ chính xác của $d_i$$a_i$. Do đó, cần phải hiệu chỉnh lại các tham số của phương pháp D-H.

Hình 6.1: Tham số Khâu ở lân cận góc chéo $\alpha_i = 0$

Phương pháp hiệu chỉnh được thực hiện bằng cách đưa vào góc chéo $\beta_i$ như Hình 6.2, thể hiện mối quan hệ tương đối của các Khâu liền kề bằng 5 tham số $\theta_i, a_i, d_i, \alpha_i, \beta_i$, gọi là Phương pháp D-H hiệu chỉnh (Modified D-H method / 修正D-H法). Phương pháp này chọn giao điểm của mặt phẳng vuông góc với trục $\boldsymbol{z}_{i-1}$ và trục $\boldsymbol{z}_i$ làm gốc $O’_i$, và lấy trục $\boldsymbol{x}_{i-1}$ theo hướng từ gốc $O_{i-1}$ đến gốc $O’_i$. Trục $\boldsymbol{y}_{i-1}$ được xác định sao cho tạo thành hệ tọa độ bàn tay phải. Ngoài ra, $\beta_i$ là góc quay quanh trục $\boldsymbol{y}_{i-1}$ theo chiều ren phải từ trục $\boldsymbol{z}_{i-1}$ đến trục $\boldsymbol{z}_i$, và phép quay quanh trục $\boldsymbol{y}_{i-1}$ này sẽ làm trục $\boldsymbol{z}_{i-1}$ di chuyển thành trục $\boldsymbol{z}’_{i-1}$, trục $\boldsymbol{x}_{i-1}$ di chuyển thành trục $\boldsymbol{x}’_{i-1}$. Định nghĩa các trục tọa độ như vậy thì $\theta_i, a_i, d_i$ sẽ có cùng định nghĩa như phương pháp D-H, và $\alpha$ là góc quay quanh trục $\boldsymbol{x}’_{i-1}$ theo chiều ren phải từ trục $\boldsymbol{z}’_{i-1}$ đến trục $\boldsymbol{z}_i$. Như thể hiện trong Hình 6.2, khi trục $\boldsymbol{z}_{i-1}$ và trục $\boldsymbol{z}_i$ gần như song song, vị trí của gốc $O_{i-1}$ trên trục $\boldsymbol{z}_{i-1}$ có thể thiết lập tùy ý, do đó $d_i$ là tùy ý, và $a_i$ là một giá trị không đổi. Theo cách này, các tham số hiệu chỉnh này không bị nhạy cảm về $d_i$ hay $a_i$ đối với những biến thiên nhỏ của $\alpha_i$, nên có thể coi là các tham số Khâu phù hợp cho việc hiệu chuẩn. Do đó, ta chỉ cần cho bốn tham số của phương pháp D-H và các tham số $\theta_i, a_i, d_i$$\alpha_i$ của phương pháp D-H hiệu chỉnh trùng khớp với nhau, gán góc chéo $\beta_i$ bằng 0, và tiến hành hiệu chuẩn dựa trên giá trị này. Trong trường hợp này, ma trận biến đổi thuần nhất (Homogeneous transformation matrix / 同次変換行列) ${}^{i-1}\boldsymbol{T}^*_i$ theo phương pháp D-H hiệu chỉnh được cho bởi công thức sau:

$${}^{i-1}\boldsymbol{T}^*_i = \text{Rot}(\boldsymbol{y}, \beta_i) \text{Trans}(a_i, 0, 0) \text{Rot}(\boldsymbol{x}, \alpha_i) \text{Trans}(0, 0, d_i) \text{Rot}(\boldsymbol{z}, \theta_i) = \text{Rot}(\boldsymbol{y}, \beta_i) {}^{i-1}\boldsymbol{T}_i \tag{6.1}$$

Trong đó, ${}^{i-1}\boldsymbol{T}_i$ tương ứng với ma trận biến đổi thuần nhất theo phương pháp D-H. Lưu ý rằng khi các trục khớp liền kề trực giao (vuông góc) hoặc gần với trạng thái đó, sự biến đổi của $d_i$$a_i$ đối với sự thay đổi vi phân của $\alpha_i$ không nhạy cảm, nên ta chỉ cần thực hiện hiệu chuẩn với 4 tham số của phương pháp D-H là đủ.

Hình 6.2: Mối quan hệ giữa $\alpha_i$$\beta_i$ trong phương pháp D-H hiệu chỉnh

≫ 6.1.2 Phân tích sai số (Error analysis / 誤差解析)

Xét trường hợp vị trí và tư thế của Khâu tác động cuối $\boldsymbol{r}$ được biểu diễn bằng các tham số của phương pháp D-H hiệu chỉnh:

$$\boldsymbol{r} = \boldsymbol{f}(\boldsymbol{q}) \tag{6.2}$$

Ở đây, giả sử $\boldsymbol{\alpha}$ là một vector chứa các phần tử $\alpha_i$ của toàn bộ hệ tọa độ Khâu, tức là $\boldsymbol{\alpha} = [\alpha_1, \alpha_2, \cdots, \alpha_n]^T$. Tương tự, gọi $\boldsymbol{\theta}, \boldsymbol{a}, \boldsymbol{d}, \boldsymbol{\beta}$ là các vector có các phần tử lần lượt là $\theta_i, a_i, d_i, \beta_i$. Khi đó, phương trình (6.2) có thể được viết lại thành:

$$\boldsymbol{r} = \boldsymbol{f}(\boldsymbol{\alpha}, \boldsymbol{a}, \boldsymbol{\theta}, \boldsymbol{d}, \boldsymbol{\beta}) = \boldsymbol{f}(\boldsymbol{\phi}) \tag{6.3}$$

Với $\boldsymbol{\phi}$ là tham số động học toàn phần (Full kinematics parameters / 全運動学パラメータ):

$$\boldsymbol{\phi} = \begin{bmatrix} \boldsymbol{\alpha} \\ \boldsymbol{a} \\ \boldsymbol{\theta} \\ \boldsymbol{d} \\ \boldsymbol{\beta} \end{bmatrix} \tag{6.4}$$

Giả sử tồn tại sai số vi phân (Differential error / 微少な誤差) $\Delta\boldsymbol{\phi} = [\Delta\boldsymbol{\alpha}^T, \Delta\boldsymbol{a}^T, \Delta\boldsymbol{\theta}^T, \Delta\boldsymbol{d}^T, \Delta\boldsymbol{\beta}^T]^T$ trong tham số $\boldsymbol{\phi}$. Sự thay đổi vi phân của vị trí tay máy do điều này gây ra là $\Delta\boldsymbol{r}_p$, sự thay đổi vi phân của tư thế là $\Delta\boldsymbol{r}_o$, và biến phân vi phân của vị trí – tư thế (Position and orientation / 位置姿勢) được đặt là:

$$\Delta\boldsymbol{r} = \begin{bmatrix} \Delta\boldsymbol{r}_p \\ \Delta\boldsymbol{r}_o \end{bmatrix} \tag{6.5}$$

Từ phương trình (6.3), $\Delta\boldsymbol{r}$ này có thể được xấp xỉ bằng:

$$\Delta\boldsymbol{r} = \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{\alpha}^T}\Delta\boldsymbol{\alpha} + \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{a}^T}\Delta\boldsymbol{a} + \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{\theta}^T}\Delta\boldsymbol{\theta} + \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{d}^T}\Delta\boldsymbol{d} + \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{\beta}^T}\Delta\boldsymbol{\beta} \tag{6.6}$$

Mối quan hệ này có thể được biểu diễn một cách ngắn gọn như sau:

$$\Delta\boldsymbol{r} = [\boldsymbol{J}_\alpha, \boldsymbol{J}_a, \boldsymbol{J}_\theta, \boldsymbol{J}_d, \boldsymbol{J}_\beta] \begin{bmatrix} \Delta\boldsymbol{\alpha} \\ \Delta\boldsymbol{a} \\ \Delta\boldsymbol{\theta} \\ \Delta\boldsymbol{d} \\ \Delta\boldsymbol{\beta} \end{bmatrix} = \boldsymbol{J}_\phi \Delta\boldsymbol{\phi} \tag{6.7}$$

Trong đó:

$$\boldsymbol{J}_\alpha = \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{\alpha}^T}, \quad \boldsymbol{J}_a = \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{a}^T}, \quad \boldsymbol{J}_\theta = \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{\theta}^T}, \quad \boldsymbol{J}_d = \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{d}^T}, \quad \boldsymbol{J}_\beta = \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{\beta}^T}, \quad \boldsymbol{J}_\phi = \frac{\partial\boldsymbol{f}}{\partial\boldsymbol{\phi}^T} \tag{6.8}$$

Ở đây, $\boldsymbol{J}_*$ là Ma trận Jacobian (Jacobian matrix / ヤコビ行列) liên quan đến tham số $*$.

Hình 6.3: Ảnh hưởng của sai số tham số Khâu đến vị trí và tư thế Khâu tác động cuối

Vector cột thứ $i$ của ma trận Jacobian $\boldsymbol{J}_\theta$ liên quan đến tham số $\boldsymbol{\theta}$ mang ý nghĩa là hệ số biến thiên vị trí – tư thế của Khâu tác động cuối sinh ra do sự biến phân vi phân $\Delta\theta_i$. Khảo sát điều này về mặt hình học, từ Hình 6.3 (c), do chuyển động quay quanh trục $\boldsymbol{z}_i$, vector vị trí $\boldsymbol{b}_i$ hướng từ gốc $\Sigma_i$ đến Khâu tác động cuối sẽ dịch chuyển theo hướng của tích có hướng $\boldsymbol{z}_i \times \boldsymbol{b}_i$, và lượng dịch chuyển tỉ lệ thuận với $\Delta\theta_i$ nên ta có:

$$\text{col}_i \boldsymbol{J}_\theta = \begin{bmatrix} {}^0\boldsymbol{z}_i \times {}^0\boldsymbol{b}_i \\ {}^0\boldsymbol{z}_i \end{bmatrix} \tag{6.9a}$$

Trong đó, $\text{col}_i *$ mang ý nghĩa là vector cột thứ $i$ của ma trận $*$. Tương tự, từ Hình 6.3 (a) ~ (e) ta thu được:

$$\text{col}_i \boldsymbol{J}_\alpha = \begin{bmatrix} {}^0\boldsymbol{x}_{i-1} \times {}^0\boldsymbol{b}_{i-1} \\ {}^0\boldsymbol{x}_{i-1} \end{bmatrix}, \quad \text{col}_i \boldsymbol{J}_a = \begin{bmatrix} {}^0\boldsymbol{x}_{i-1} \\ \boldsymbol{0} \end{bmatrix}$$
$$\text{col}_i \boldsymbol{J}_d = \begin{bmatrix} {}^0\boldsymbol{z}_i \\ \boldsymbol{0} \end{bmatrix}, \quad \text{col}_i \boldsymbol{J}_\beta = \begin{bmatrix} {}^0\boldsymbol{y}_{i-1} \times {}^0\boldsymbol{b}_{i-1} \\ {}^0\boldsymbol{y}_{i-1} \end{bmatrix} \tag{6.9b}$$

Lưu ý rằng ${}^0\boldsymbol{b}_i$ được biểu diễn bởi:

$${}^0\boldsymbol{b}_i = {}^0\boldsymbol{p}_n – {}^0\boldsymbol{p}_i \tag{6.10}$$

Trong đó, ${}^0\boldsymbol{p}_i$ là vector vị trí gốc của $\Sigma_i$ được biểu diễn trong $\Sigma_0$. Ta tính toán ma trận biến đổi thuần nhất ${}^0\boldsymbol{T}_i$ đã nêu ở Mục 4.2.3 bằng các tham số Khâu, và từ mối quan hệ:

$${}^0\boldsymbol{T}_i = \begin{bmatrix} {}^0\boldsymbol{x}_i & {}^0\boldsymbol{y}_i & {}^0\boldsymbol{z}_i & {}^0\boldsymbol{p}_i \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{6.11}$$

ta có thể tìm được ${}^0\boldsymbol{x}_i, {}^0\boldsymbol{y}_i, {}^0\boldsymbol{z}_i, {}^0\boldsymbol{p}_i$. Khi sử dụng phương pháp D-H, ta chỉ cần loại bỏ thành phần tham số $\boldsymbol{\beta}$. Hơn nữa, trong trường hợp Robot có toàn bộ là khớp quay, $\boldsymbol{J}_\omega$ ở Mục 4.4.1 sẽ trùng khớp với $\boldsymbol{J}_\theta$ trong mục này. Khi Robot có cấu hình tổng quát pha trộn giữa khớp quay và khớp tịnh tiến, vector cột thứ $i$ của $\boldsymbol{J}_\omega$ sẽ là:

$$\text{col}_i \boldsymbol{J}_\omega = \begin{cases} \text{col}_i \boldsymbol{J}_\theta \quad (IF \quad R) \\ \text{col}_i \boldsymbol{J}_d \quad (IF \quad T) \end{cases} \tag{6.12}$$

【Bài toán mẫu 6.1】 Khảo sát ảnh hưởng của sai số tham số theo phương pháp D-H hiệu chỉnh đối với vị trí và tư thế của Khâu tác động cuối cho cánh tay Robot 2 khớp như Hình 6.4. Giả sử $d_i = \alpha_i = 0$ ($i = 1, 3$), $a_1 = 0, a_2 = L_1, a_3 = L_2$.

Hình 6.4: Cánh tay Robot 2 khớp

Ma trận biến đổi thuần nhất sẽ là:

$${}^0\boldsymbol{T}_1 = \begin{bmatrix} C_1 & -S_1 & 0 & 0 \\ S_1 & C_1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad {}^1\boldsymbol{T}_2 = \begin{bmatrix} C_2 & -S_2 & 0 & L_1 \\ S_2 & C_2 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix},$$
$${}^2\boldsymbol{T}_3 = \begin{bmatrix} 1 & 0 & 0 & L_2 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

Từ đây ta có được:

$${}^0\boldsymbol{T}_2 = \begin{bmatrix} C_{12} & -S_{12} & 0 & L_1 C_1 \\ S_{12} & C_{12} & 0 & L_1 S_1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad {}^0\boldsymbol{T}_3 = \begin{bmatrix} C_{12} & -S_{12} & 0 & L_2 C_{12} + L_1 C_1 \\ S_{12} & C_{12} & 0 & L_2 S_{12} + L_1 S_1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

Các vector ${}^0\boldsymbol{b}_i$ sẽ là:

$${}^0\boldsymbol{b}_0 = {}^0\boldsymbol{b}_1 = \begin{bmatrix} L_2 C_{12} + L_1 C_1 \\ L_2 S_{12} + L_1 S_1 \\ 0 \end{bmatrix}, \quad {}^0\boldsymbol{b}_2 = \begin{bmatrix} L_2 C_{12} \\ L_2 S_{12} \\ 0 \end{bmatrix}, \quad {}^0\boldsymbol{b}_3 = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix}$$

Đồng thời, ma trận Jacobian liên quan đến tham số Khâu $\boldsymbol{\alpha}$ là:

$$\boldsymbol{J}_\alpha = \begin{bmatrix} {}^0\boldsymbol{x}_0 \times {}^0\boldsymbol{b}_0 & {}^0\boldsymbol{x}_1 \times {}^0\boldsymbol{b}_1 & {}^0\boldsymbol{x}_2 \times {}^0\boldsymbol{b}_2 \\ {}^0\boldsymbol{x}_0 & {}^0\boldsymbol{x}_1 & {}^0\boldsymbol{x}_2 \end{bmatrix}$$
$$= \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ L_2 S_{12} + L_1 S_1 & L_2 S_2 & 0 \\ 1 & C_1 & C_{12} \\ 0 & S_1 & S_{12} \\ 0 & 0 & 0 \end{bmatrix}$$

Tương tự, tính các ma trận Jacobian liên quan đến các tham số khác ta thu được:

$$\boldsymbol{J}_a = \begin{bmatrix} 1 & C_1 & C_{12} \\ 0 & S_1 & S_{12} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix}, \quad \boldsymbol{J}_\theta = \begin{bmatrix} -L_2 S_{12} – L_1 S_1 & -L_2 S_{12} & 0 \\ L_2 C_{12} + L_1 C_1 & L_2 C_{12} & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 1 & 1 & 1 \end{bmatrix}$$
$$\boldsymbol{J}_d = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 1 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix}, \quad \boldsymbol{J}_\beta = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ -L_2 C_{12} – L_1 C_1 & -L_2 C_2 – L_1 & -L_2 \\ 0 & -S_1 & -S_{12} \\ 1 & C_1 & C_{12} \\ 0 & 0 & 0 \end{bmatrix}$$

≫ 6.1.3 Biến phân vi phân của vị trí và tư thế Khâu tác động cuối

Để thực hiện hiệu chuẩn tham số Khâu, cần tính toán biến phân $\Delta\boldsymbol{r}$ của vị trí – tư thế Khâu tác động cuối:

$$\Delta\boldsymbol{r} = \boldsymbol{r}_m – \boldsymbol{r}_c \tag{6.13}$$

Trong đó, $\boldsymbol{r}_m$ là giá trị đo lường của vị trí – tư thế, còn $\boldsymbol{r}_c$ là giá trị tính toán.

Biến phân $\Delta\boldsymbol{r}$ có thể chia thành vị trí và tư thế, biến phân vị trí $\Delta\boldsymbol{r}_p$ được biểu thị là:

$$\Delta\boldsymbol{r}_p = \boldsymbol{r}_{pm} – \boldsymbol{r}_{pc} \tag{6.14}$$

Ở đây, $\boldsymbol{r}_{pm}$ là giá trị đo lường vị trí, $\boldsymbol{r}_{pc}$ là giá trị tính toán. Gọi vector tùy ý cố định trên hệ tọa độ Khâu tác động cuối là $\boldsymbol{p}^*$, ma trận quay biểu diễn tư thế đo lường là $\boldsymbol{R}_m$, giá trị tính toán là $\boldsymbol{R}_c$. Như Hình 6.5 cho thấy, góc quay vi phân $\Delta\boldsymbol{r}_o$ của tư thế trong một khoảng thời gian cực ngắn $\Delta t$ tương đương với vector vận tốc góc (như đã thấy ở Hình 5.3). Loại bỏ $\Delta t$, ta có hệ thức thỏa mãn:

$$\Delta\boldsymbol{r}_o \times \boldsymbol{R}_c \boldsymbol{p}^* = \boldsymbol{R}_m \boldsymbol{p}^* – \boldsymbol{R}_c \boldsymbol{p}^* \tag{6.15}$$

Vì công thức này đúng với mọi $\boldsymbol{p}^*$, viết lại tích có hướng dưới dạng biểu diễn ma trận ta có:

$$[\Delta\boldsymbol{r}_o \times] = (\boldsymbol{R}_m – \boldsymbol{R}_c)\boldsymbol{R}_c^T \tag{6.16}$$

Từ phương trình (6.14) và (6.16), ta có thể tìm được $\Delta\boldsymbol{r} = [\Delta\boldsymbol{r}_p^T, \Delta\boldsymbol{r}_o^T]^T$.

Hình 6.5: Biến phân tư thế Khâu tác động cuối

≫ 6.1.4 Ước lượng tham số Khâu

Đối với cánh tay Robot $n$ khớp, số lượng tham số Khâu theo phương pháp D-H hiệu chỉnh là $5n$. Để hiệu chuẩn tham số Khâu một cách chính xác, điều mong muốn là phải đo đạc vị trí – tư thế Khâu tác động cuối ở một số lượng lớn điểm. Bằng cách cho Khâu tác động cuối di chuyển $N$ lần tới các tư thế vị trí khác nhau và tiến hành đo lường ở mỗi điểm, ta thu được:

$$\boldsymbol{y} = \boldsymbol{A} \Delta\boldsymbol{\phi} \tag{6.17}$$

Nếu gọi dữ liệu của lần đo thứ $i$$\Delta\boldsymbol{r}(i)$$\boldsymbol{J}_\phi(i)$, ta có:

$$\boldsymbol{y} = \begin{bmatrix} \Delta\boldsymbol{r}(1) \\ \Delta\boldsymbol{r}(2) \\ \vdots \\ \Delta\boldsymbol{r}(N) \end{bmatrix} \tag{6.18a}$$
$$\boldsymbol{A} = \begin{bmatrix} \boldsymbol{J}_\phi(1) \\ \boldsymbol{J}_\phi(2) \\ \vdots \\ \boldsymbol{J}_\phi(N) \end{bmatrix} \tag{6.18b}$$

Giá trị ước lượng của $\Delta\boldsymbol{\phi}$ theo phương pháp bình phương tối thiểu (Least squares method / 最小2乗法) (xem mục 6.2.3) được cho bởi:

$$\Delta\boldsymbol{\phi} = (\boldsymbol{A}^T \boldsymbol{A})^{-1} \boldsymbol{A}^T \boldsymbol{y} \tag{6.19}$$

Tham số được cập nhật $\boldsymbol{\phi}’$ thu được theo công thức:

$$\boldsymbol{\phi}’ = \boldsymbol{\phi} + \Delta\boldsymbol{\phi} \tag{6.20}$$

Vì tham số $\boldsymbol{\phi}$ là nghiệm của phương trình phi tuyến (6.3), việc cập nhật trên được lặp lại cho đến khi $\Delta\boldsymbol{\phi}$ tiến đến 0 và giá trị của $\boldsymbol{\phi}$ hội tụ về một hằng số. Trong mỗi lần lặp, ma trận Jacobian của phương trình (6.9) được tính toán bằng các giá trị mới nhất.

6.2 Nhận dạng tham số động lực học (Parameter identification / 動力学パラメータの同定)

Việc tính toán phương trình chuyển động của Robot, ngoài các tham số Khâu đã trình bày ở phần trước, còn cần thêm các tham số động lực học (Dynamics parameters / 動力学パラメータ). Ở đây, ta xem như tham số Khâu đã biết và sẽ trình bày cách tìm tham số động lực học. Tham số động lực học bao gồm Khối lượng (Mass / 質量) Khâu $m_i$, Mô-men bậc 1 $m_i{}^i\hat{\boldsymbol{s}}_i$, Tensor quán tính (Inertia tensor / 慣性テンソル) ${}^i\boldsymbol{I}_i$, Hệ số ma sát nhớt (Viscous friction coefficient / 粘性摩擦係数) $D_i$, Lực ma sát Coulomb (Coulomb friction force / クーロン摩擦力) $fr_i$. Những tham số này rất khó để đo đạc riêng biệt từng Khâu trong trạng thái Robot đã được lắp ráp hoàn chỉnh. Do đó, phương pháp được đưa ra là giữ nguyên cấu trúc của Robot, cho nó thực hiện những chuyển động phù hợp, và tiến hành ước lượng (nhận dạng) các tham số từ trạng thái của Lực dẫn động khớp (Joint driving force / 関節駆動力) $\boldsymbol{\tau}$, Biến khớp (Joint variable / 関節変位) $\boldsymbol{q}$, Vận tốc khớp (Joint velocity / 関節速度) $\dot{\boldsymbol{q}}$, Gia tốc khớp (Joint acceleration / 関節加速度) $\ddot{\boldsymbol{q}}$. Quá trình này được gọi là Nhận dạng tham số (Parameter identification / パラメータ同定).

≫ 6.2.1 Tham số động lực học của Khâu và phương trình chuyển động

Tham số động lực học của Khâu $i$ được định nghĩa là:

$$\boldsymbol{\sigma}_i = [m_i, \, m_i {}^i\hat{s}_{ix}, \, m_i {}^i\hat{s}_{iy}, \, m_i {}^i\hat{s}_{iz}, \, {}^iI_{ixx}, \, {}^iI_{iyy}, \, {}^iI_{izz}, \, {}^iI_{ixy}, \, {}^iI_{ixz}, \, {}^iI_{iyz}]^T \tag{6.21}$$

và toàn bộ tham số động lực học của hệ thống được đặt là:

$$\boldsymbol{\sigma} = [\boldsymbol{\sigma}_1^T, \boldsymbol{\sigma}_2^T, \cdots, \boldsymbol{\sigma}_n^T]^T \tag{6.22}$$

Lúc này, phương trình chuyển động của Robot từ công thức (5.14) có thể biểu diễn thành:

$$\boldsymbol{M}(\boldsymbol{q}, \boldsymbol{\sigma})\ddot{\boldsymbol{q}} + \boldsymbol{h}(\boldsymbol{q}, \dot{\boldsymbol{q}}, \boldsymbol{\sigma}) + \boldsymbol{g}(\boldsymbol{q}, \boldsymbol{\sigma}) = \boldsymbol{\tau} \tag{6.23}$$

Đã có chứng minh rằng phương trình chuyển động này có thể được khai triển thành một dạng tuyến tính (Linear form / 線形な式) liên quan đến tham số động lực học $\boldsymbol{\sigma}$. Nói cách khác, công thức (6.23) có thể được biến đổi về dạng:

$$\boldsymbol{\tau} = \boldsymbol{W}(\boldsymbol{q}, \dot{\boldsymbol{q}}, \ddot{\boldsymbol{q}})\boldsymbol{\sigma} \tag{6.24}$$

Điều này sẽ được trình bày dưới đây.

Mối quan hệ giữa lực/mô-men tác dụng lên khớp và $\boldsymbol{\sigma}_i$, khi sử dụng biểu diễn ma trận của tích có hướng từ các công thức (5.59), (5.60), có thể được biểu diễn như sau:

$${}^i\boldsymbol{f}_i = [{}^i\dot{\boldsymbol{v}}_i, \, [{}^i\dot{\boldsymbol{\omega}}_i \times] + [{}^i\boldsymbol{\omega}_i \times][{}^i\boldsymbol{\omega}_i \times], \, \boldsymbol{0}]\boldsymbol{\sigma}_i + {}^i\boldsymbol{R}_{i+1} {}^{i+1}\boldsymbol{f}_{i+1} \tag{6.25a}$$
$${}^i\boldsymbol{n}_i = [\boldsymbol{0}, \, -[{}^i\dot{\boldsymbol{v}}_i \times], \, \boldsymbol{\Lambda}({}^i\dot{\boldsymbol{\omega}}_i) + [{}^i\boldsymbol{\omega}_i \times]\boldsymbol{\Lambda}({}^i\boldsymbol{\omega}_i)]\boldsymbol{\sigma}_i + [{}^i\hat{\boldsymbol{p}}_{i+1} \times]{}^i\boldsymbol{R}_{i+1} {}^{i+1}\boldsymbol{f}_{i+1} + {}^i\boldsymbol{R}_{i+1} {}^{i+1}\boldsymbol{n}_{i+1} \tag{6.25b}$$

Ở đây, đối với một vector tùy ý $\boldsymbol{a} = [a_x, a_y, a_z]^T$, $\boldsymbol{\Lambda}(\boldsymbol{a})$ là một ma trận hàm (Function matrix / 関数行列) được định nghĩa bởi công thức sau:

$$\boldsymbol{\Lambda}(\boldsymbol{a}) = \begin{bmatrix} a_x & 0 & 0 & a_y & a_z & 0 \\ 0 & a_y & 0 & a_x & 0 & a_z \\ 0 & 0 & a_z & 0 & a_x & a_y \end{bmatrix} \tag{6.26}$$

$\boldsymbol{\sigma}_i$ không gây ra bất kỳ ảnh hưởng nào đến ${}^{i+1}\boldsymbol{f}_{i+1}$${}^{i+1}\boldsymbol{n}_{i+1}$, từ công thức (6.25) ta có thể rút ra rằng ${}^i\boldsymbol{f}_i$${}^i\boldsymbol{n}_i$ tuyến tính đối với $\boldsymbol{\sigma}_i$. Khi áp dụng lặp lại mối quan hệ này với $j = n, \cdots, 1$, có thể nói rằng ${}^i\boldsymbol{f}_i$${}^i\boldsymbol{n}_i$ là tuyến tính đối với $\boldsymbol{\sigma}_j$ ($j = i, \cdots, n$). Do đó, từ công thức (5.55), lực dẫn động khớp $\tau_i$ trở nên tuyến tính đối với $\boldsymbol{\sigma}_j$ ($j = i, \cdots, n$), và $\boldsymbol{\tau}$ có thể được biểu diễn bằng công thức (6.24). Nói cách khác, ta có thể phân tách thành tham số động lực học không đổi $\boldsymbol{\sigma}$ và ma trận $\boldsymbol{W}$ không chứa tham số động lực học (ở đây, $\boldsymbol{W}$ được gọi là Ma trận hồi quy (Regressor / リグレッサ) liên quan đến $\boldsymbol{\sigma}$).

【Bài toán mẫu 6.2】 Xét cánh tay Robot 2 khớp như Hình 6.4, hãy khảo sát mối quan hệ giữa tham số động lực học và lực dẫn động khớp. Giả sử trọng lực hướng theo chiều âm trục $\boldsymbol{y}$.

Đối với Khâu $i$ cấu thành Robot, ta thiết lập hệ tọa độ $\Sigma_i$ theo phương pháp D-H như trong hình. Gọi $m_i$ là khối lượng Khâu $i$, $\hat{\boldsymbol{s}}_i = [\hat{s}_{ix}, \hat{s}_{iy}, \hat{s}_{iz}]^T$ là khối tâm của Khâu $i$ biểu diễn trong $\Sigma_i$, ${}^i\boldsymbol{I}_i = \{I_{ijk}\}$ là tensor quán tính Khâu tại gốc $\Sigma_i$ biểu diễn trong $\Sigma_i$, ta sẽ tìm phương trình chuyển động bằng phương pháp Newton-Euler. Kết quả, tương tự như Mục 5.3.3, ta thu được:

$$\boldsymbol{\tau} = \begin{bmatrix} M_{11} & M_{12} \\ M_{12} & M_{22} \end{bmatrix} \ddot{\boldsymbol{\theta}} + \begin{bmatrix} h_1 \\ h_2 \end{bmatrix} + \begin{bmatrix} g_1 \\ g_2 \end{bmatrix} \tag{6.27}$$

Trong đó:

$$M_{11} = I_{1zz} + m_2 L_1^2 + I_{2zz} + 2m_2 L_1(\hat{s}_{2x} C_2 – \hat{s}_{2y} S_2) \tag{6.28a}$$
$$M_{12} = I_{2zz} + m_2 L_1(\hat{s}_{2x} C_2 – \hat{s}_{2y} S_2) \tag{6.28b}$$
$$M_{22} = I_{2zz} \tag{6.28c}$$
$$h_1 = -m_2 L_1(\hat{s}_{2x} S_2 + \hat{s}_{2y} C_2)(2\dot{\theta}_1 \dot{\theta}_2 + \dot{\theta}_2^2) \tag{6.28d}$$
$$h_2 = m_2 L_1(\hat{s}_{2x} S_2 + \hat{s}_{2y} C_2)\dot{\theta}_1^2 \tag{6.28e}$$
$$g_1 = g[m_1(\hat{s}_{1x} C_1 – \hat{s}_{1y} S_1) + m_2 L_1 C_1 + m_2(\hat{s}_{2x} C_{12} – \hat{s}_{2y} S_{12})] \tag{6.28f}$$
$$g_2 = gm_2(\hat{s}_{2x} C_{12} – \hat{s}_{2y} S_{12}) \tag{6.28g}$$

Từ công thức (6.27), ta thu được:

$$\begin{aligned} \begin{bmatrix} \tau_1 \\ \tau_2 \end{bmatrix} &= \left[ \begin{array}{cccccccccc} 0 & gC_1 & -gS_1 & 0 & 0 & 0 & \ddot{\theta}_1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{array} \right. \\ &\quad \left. \begin{array}{cccccccccc} L_1^2\ddot{\theta}_1 + gL_1C_1 & w_{112} & w_{113} & 0 & 0 & 0 & \ddot{\theta}_1+\ddot{\theta}_2 & 0 & 0 & 0 \\ 0 & w_{212} & w_{213} & 0 & 0 & 0 & \ddot{\theta}_1+\ddot{\theta}_2 & 0 & 0 & 0 \end{array} \right] \begin{bmatrix} \boldsymbol{\sigma}_1 \\ \boldsymbol{\sigma}_2 \end{bmatrix} \end{aligned} \tag{6.29}$$

Trong đó:

$$w_{112} = L_1[(2\ddot{\theta}_1 + \ddot{\theta}_2)C_2 – (2\dot{\theta}_1 + \dot{\theta}_2)\dot{\theta}_2 S_2] + gC_{12} \tag{6.30a}$$
$$w_{113} = -L_1[(2\ddot{\theta}_1 + \ddot{\theta}_2)S_2 + (2\dot{\theta}_1 + \dot{\theta}_2)\dot{\theta}_2 C_2] – gS_{12} \tag{6.30b}$$
$$w_{212} = L_1(\ddot{\theta}_1 C_2 + \dot{\theta}_1^2 S_2) + gC_{12} \tag{6.30c}$$
$$w_{213} = L_1(-\ddot{\theta}_1 S_2 + \dot{\theta}_1^2 C_2) – gS_{12} \tag{6.30d}$$

Như vậy, ta đã khai triển được phương trình chuyển động thành dạng tuyến tính đối với tham số $\boldsymbol{\sigma}$ dưới dạng công thức (6.24).

≫ 6.2.2 Tính có thể nhận dạng của tham số (Identifiability of parameters / パラメータの可同定性)

Khi nhận dạng tham số $\boldsymbol{\sigma}$ từ các giá trị quan sát $\boldsymbol{q}$, $\dot{\boldsymbol{q}}$, $\ddot{\boldsymbol{q}}$ và lực dẫn động khớp $\boldsymbol{\tau}$ lúc cho Robot chuyển động thích hợp, tùy theo khả năng có thể nhận dạng hay không, tham số có thể được phân loại thành ba loại sau:

  1. Có thể nhận dạng (Identifiable / 可同定): Khi giá trị tham số chính xác có thể được ước lượng thông qua các chuyển động thích hợp.

  2. Chỉ có thể nhận dạng thông qua tổ hợp tuyến tính (Identifiable only by linear combination / 線形結合によってのみ可同定): Khi giá trị của tham số đã được tổ hợp tuyến tính có thể được ước lượng chính xác hơn thông qua chuyển động thích hợp.

  3. Không thể nhận dạng (Unidentifiable / 非可同定): Khi không thể ước lượng chính xác giá trị tham số bằng bất kỳ chuyển động nào.

Gọi $\sigma_i$ là phần tử thứ $i$ của $\boldsymbol{\sigma}$, và $\boldsymbol{w}_i$ là vector cột thứ $i$ của $\boldsymbol{W}$ tương ứng với $\sigma_i$. Những tham số không gây ra bất kỳ ảnh hưởng nào đến lực dẫn động khớp là không thể nhận dạng. Việc $\sigma_i$ không gây ảnh hưởng đến lực dẫn động khớp đồng nghĩa với việc $\boldsymbol{w}_i$ là một vector không. Do đó, khi $\boldsymbol{w}_i = \boldsymbol{0}$, $\sigma_i$ trở thành Tham số không thể nhận dạng (Unidentifiable parameter / 非可同定パラメータ).

Khi $\boldsymbol{w}_i$ không thể được biểu diễn bằng tổ hợp tuyến tính của $\boldsymbol{w}_j$ ($j \neq i$), thì $\sigma_i$ trở thành Tham số có thể nhận dạng (Identifiable parameter / 可同定パラメータ).

Khi $\boldsymbol{w}_i$ là một phụ thuộc bậc 1 có thể biểu diễn bằng tổ hợp tuyến tính của $\boldsymbol{w}_j$ ($j \neq i$) bất kể giá trị của $\boldsymbol{q}$, $\dot{\boldsymbol{q}}$, $\ddot{\boldsymbol{q}}$, thì bản thân $\sigma_i$ đứng độc lập là không thể nhận dạng, nhưng bằng một tổ hợp tuyến tính thích hợp, tham số đã tổ hợp đó sẽ trở nên có thể nhận dạng. Cụ thể, giả sử $\mu_j$ là hằng số vô hướng, khi $\boldsymbol{w}_i$ được biểu diễn bởi:

$$\boldsymbol{w}_i = \sum_j \mu_j \boldsymbol{w}_j \quad (j \neq i) \tag{6.31}$$

thì công thức (6.24) trở thành:

$$\begin{aligned} \boldsymbol{\tau} &= \sum_j \sigma_j \boldsymbol{w}_j \\ &= \sigma_1 \boldsymbol{w}_1 + \cdots + \sigma_{i-1} \boldsymbol{w}_{i-1} + \sigma_i \sum_j \mu_j \boldsymbol{w}_j + \sigma_{i+1} \boldsymbol{w}_{i+1} + \cdots \\ &= (\sigma_1 + \mu_1 \sigma_i)\boldsymbol{w}_1 + \cdots + (\sigma_{i-1} + \mu_{i-1} \sigma_i)\boldsymbol{w}_{i-1} + (\sigma_{i+1} + \mu_{i+1} \sigma_i)\boldsymbol{w}_{i+1} + \cdots \end{aligned}$$

Bằng cách thay $\boldsymbol{w}_i$ bằng vector $\boldsymbol{0}$ và thay $\sigma_j$ bằng $(\sigma_j + \mu_j \sigma_i)$, ta có thể triệt tiêu tham số $\sigma_i$. Lúc này, nếu $\boldsymbol{w}_j$ không thể biểu diễn bằng tổng tuyến tính của các vector cột khác, thì $(\sigma_j + \mu_j \sigma_i)$ trở thành có thể nhận dạng. Nếu $\boldsymbol{w}_j$ là phụ thuộc bậc 1, ta có thể triệt tiêu $(\sigma_j + \mu_j \sigma_i)$ bằng quy trình tương tự.

Thông qua tổ hợp tuyến tính, vector chỉ bao gồm các tham số có thể nhận dạng được gọi là $\boldsymbol{\sigma}_{\min}$ và được biểu diễn bởi:

$$\boldsymbol{\sigma}_{\min} = \boldsymbol{K}\boldsymbol{\sigma} \tag{6.32}$$

Trong đó, $\boldsymbol{K}$ là ma trận hằng số $m \times 10n$. Số lượng phần tử $m$ của $\boldsymbol{\sigma}_{\min}$ được quyết định bởi cấu trúc cơ cấu của Robot và hướng tác dụng của trọng lực. $\boldsymbol{\sigma}_{\min}$ này được gọi là Tham số cơ sở (Base parameters / ベースパラメータ). Tham số cơ sở cũng được gọi là Tập tham số động lực học tối thiểu (Minimum set of dynamics parameters / 最小動力学パラメータ) theo nghĩa là không thể giảm bớt số lượng tham số thêm nữa. Từ công thức (6.32), mối quan hệ giữa $\boldsymbol{\sigma}_{\min}$$\boldsymbol{\tau}$ là:

$$\boldsymbol{\tau} = \boldsymbol{W}_{\min} \boldsymbol{\sigma}_{\min} \tag{6.33}$$

Và có mối quan hệ:

$$\boldsymbol{W} = \boldsymbol{W}_{\min} \boldsymbol{K} \tag{6.34}$$

Rõ ràng là, một vector cột tùy ý thứ $i$ của $\boldsymbol{W}_{\min}$ không thể được biểu diễn bằng tổ hợp tuyến tính của các vector cột khác. Lưu ý rằng có nhiều cách biểu diễn tham số cơ sở, ví dụ:

$$\boldsymbol{\sigma}^*_{\min} = \boldsymbol{L}\boldsymbol{\sigma}_{\min} \tag{6.35}$$

cũng là một dạng biểu diễn của tham số cơ sở. Với $\boldsymbol{L}$ là một ma trận hằng số $m \times m$ không suy biến.

【Bài toán mẫu 6.3】 Hãy thử phân loại các tham số động lực học của cánh tay Robot 2 khớp ở Bài toán mẫu 6.2 từ góc độ nhận dạng tham số.

Tham số không thể nhận dạng: Các vector cột thứ 1, 4, 5, 6, 8, 9, 10, 14, 15, 16, 18, 19 và 20 của $\boldsymbol{W}$ trong công thức (6.29) là các vector không. Do đó, $m_1$, $m_1 \hat{s}_{1z}$, $m_2 \hat{s}_{2z}$$I_{ijk}$ ($j=1, 2$) ngoại trừ $I_{izz}$ là không thể nhận dạng.

Tham số có thể nhận dạng: Các vector cột thứ 3, 12, 13, 17 của $\boldsymbol{W}$ đều không thể biểu diễn bằng tổ hợp tuyến tính của các vector cột khác. Do đó, $m_1 \hat{s}_{1y}$, $m_2 \hat{s}_{2x}$, $m_2 \hat{s}_{2y}$, $I_{2zz}$ là có thể nhận dạng.

Tham số có thể nhận dạng bằng tổ hợp tuyến tính: Các tham số còn lại là những tham số có thể nhận dạng bằng tổ hợp tuyến tính, chúng không thể được nhận dạng nếu đứng đơn lẻ. Nghĩa là, có mối quan hệ $L_1\boldsymbol{w}_2 + L_1^2\boldsymbol{w}_7 = \boldsymbol{w}_{11}$, và $m_1 \hat{s}_{1x}$, $I_{1zz}$$m_2$ thuộc trường hợp này. Vì có một phương trình ràng buộc cho ba tham số, nên số lượng tham số độc lập là hai. Lấy ví dụ về tham số được tổ hợp tuyến tính, nếu ta triệt tiêu $\boldsymbol{w}_{11}$, ta sẽ thu được $m_1 \hat{s}_{1x} + m_2 L_1$, $I_{1zz} + m_2 L_1^2$.

Nếu ta đặt $\boldsymbol{\sigma}_{\min}$ chỉ bao gồm các tham số có thể nhận dạng là:

$$\boldsymbol{\sigma}_{\min} = \begin{bmatrix} m_1 \hat{s}_{1x} + m_2 L_1 \\ m_1 \hat{s}_{1y} \\ I_{1zz} + m_2 L_1^2 \\ m_2 \hat{s}_{2x} \\ m_2 \hat{s}_{2y} \\ I_{2zz} \end{bmatrix} \tag{6.36}$$

thì từ công thức (6.27) ta được:

$$\begin{aligned} \boldsymbol{\tau} &= \begin{bmatrix} gC_1 & -gS_1 & \ddot{\theta}_1 & w_{112} & w_{113} & \ddot{\theta}_1 + \ddot{\theta}_2 \\ 0 & 0 & 0 & w_{212} & w_{213} & \ddot{\theta}_1 + \ddot{\theta}_2 \end{bmatrix} \boldsymbol{\sigma}_{\min} \\ &= \boldsymbol{W}_{\min} \boldsymbol{\sigma}_{\min} \end{aligned} \tag{6.37}$$

Các vector cột của $\boldsymbol{W}_{\min}$ không thể được biểu diễn bằng tổng tuyến tính của các vector cột khác. Do đó, $\boldsymbol{\sigma}_{\min}$ có thể được gọi là tham số cơ sở. Lưu ý rằng, trong trường hợp hướng trọng lực là trục $\boldsymbol{z}$, tải trọng trọng trường không ảnh hưởng đến mô-men, nên phần tử thứ 1 và thứ 2 của $\boldsymbol{\sigma}_{\min}$ sẽ trở thành không thể nhận dạng.

Khi không thể bỏ qua lực ma sát của khớp $i$, ta có thể thực hiện nhận dạng với Lực ma sát Coulomb $fr_i$ và Hệ số ma sát nhớt $D_i$ dưới dạng các tham số chưa biết. Nghĩa là, thay vì công thức (6.24), ta thu được hệ thức:

$$\boldsymbol{\tau} = \boldsymbol{W}\boldsymbol{\sigma} + \text{diag}[\dot{q}_i]\boldsymbol{\sigma}_D + \text{diag}[\text{sgn}(\dot{q}_i)]\boldsymbol{\sigma}_{fr} \tag{6.38}$$

Trong đó, $\text{diag}[*_i]$ mang ý nghĩa là ma trận đường chéo chỉ có các phần tử $(i, i)$ mang giá trị $*_i$, các phần tử khác bằng 0, và:

$$\boldsymbol{\sigma}_D = [D_1, D_2, \cdots, D_n]^T \tag{6.39}$$
$$\boldsymbol{\sigma}_{fr} = [fr_1, fr_2, \cdots, fr_n]^T \tag{6.40}$$
 

Do đó, bằng cách đặt một vector $\boldsymbol{\sigma}$ mới bao gồm $[\boldsymbol{\sigma}^T, \boldsymbol{\sigma}_D^T, \boldsymbol{\sigma}_{fr}^T]^T$ và ma trận $\boldsymbol{W}$ mới liên kết nó với $\boldsymbol{\tau}$, ta có thể thu được một công thức có cùng dạng thức với công thức (6.24).

≫ 6.2.3 Phương pháp nhận dạng tuyến tính (Linear identification methods / 線形同定法)

(1) Phương pháp bình phương tối thiểu (Least squares method)

Trình bày phương pháp bình phương tối thiểu (Least squares method / 最小2乗法) để ước lượng $\boldsymbol{\sigma}_{\min}$ từ các giá trị quan sát của biến khớp, vận tốc khớp, cũng như gia tốc khớp và lực dẫn động khớp. Để đơn giản hóa trong phần dưới đây, $\boldsymbol{\sigma}_{\min}$$\boldsymbol{W}_{\min}$ được thay thế bằng $\boldsymbol{\sigma}$$\boldsymbol{W}$. Xét đến nhiễu quan sát và sai số tính toán, sai số phát sinh khi tính toán $\boldsymbol{\tau}$$\boldsymbol{W}$ được gọi là sai số phương trình, ký hiệu là $\boldsymbol{\psi}$. Thu thập dữ liệu từ thời điểm lấy mẫu 1 đến $N$, định nghĩa:

$$\boldsymbol{y} = \begin{bmatrix} \boldsymbol{\tau}(1) \\ \vdots \\ \boldsymbol{\tau}(N) \end{bmatrix}, \quad \boldsymbol{A} = \begin{bmatrix} \boldsymbol{W}(1) \\ \vdots \\ \boldsymbol{W}(N) \end{bmatrix}, \quad \boldsymbol{\nu} = \begin{bmatrix} \boldsymbol{\psi}(1) \\ \vdots \\ \boldsymbol{\psi}(N) \end{bmatrix} \tag{6.41}$$

Ta sẽ có:

$$\boldsymbol{y} = \boldsymbol{A}\boldsymbol{\sigma} + \boldsymbol{\nu} \tag{6.42}$$

Giá trị ước lượng tối ưu (Optimal estimate / 最適推定値) $\hat{\boldsymbol{\sigma}}$ là giá trị làm tối thiểu hóa hàm đánh giá:

$$PI = (\boldsymbol{y} – \boldsymbol{A}\boldsymbol{\sigma})^T \boldsymbol{\Omega} (\boldsymbol{y} – \boldsymbol{A}\boldsymbol{\sigma}) \tag{6.43}$$

Ở đây, $\boldsymbol{\Omega}$ là ma trận đối xứng xác định dương. Giá trị $\boldsymbol{\sigma}$ làm tối thiểu hàm sẽ thỏa mãn:

$$\frac{\partial PI}{\partial \boldsymbol{\sigma}} = 2\boldsymbol{A}^T \boldsymbol{\Omega} \boldsymbol{A} \boldsymbol{\sigma} – 2\boldsymbol{A}^T \boldsymbol{\Omega} \boldsymbol{y} = \boldsymbol{0} \tag{6.44}$$

Từ đó, khi ma trận nghịch đảo của $(\boldsymbol{A}^T \boldsymbol{\Omega} \boldsymbol{A})$ tồn tại, nó được cho bởi:

$$\hat{\boldsymbol{\sigma}} = (\boldsymbol{A}^T \boldsymbol{\Omega} \boldsymbol{A})^{-1} \boldsymbol{A}^T \boldsymbol{\Omega} \boldsymbol{y} \tag{6.45}$$

Lúc này, sai số ước lượng có thể thu được bằng cách thế công thức (6.45) vào công thức (6.42):

$$\hat{\boldsymbol{\sigma}} – \boldsymbol{\sigma} = (\boldsymbol{A}^T \boldsymbol{\Omega} \boldsymbol{A})^{-1} \boldsymbol{A}^T \boldsymbol{\Omega} \boldsymbol{\nu} \tag{6.46}$$

Trong đó, $\boldsymbol{\Omega}$ là ma trận trọng số, và khi $\boldsymbol{\Omega}$ là ma trận đơn vị thì nó trở thành phương pháp bình phương tối thiểu thông thường. Nếu giá trị trung bình của $\boldsymbol{\nu}$ bằng 0 và không có tương quan với $\boldsymbol{A}$, sai số ước lượng sẽ hội tụ về 0.

(2) Phương pháp biến công cụ (Instrumental variable method)

Việc quan sát biến khớp và vận tốc khớp với độ chính xác tương đối cao là dễ dàng, nhưng gia tốc khớp là đạo hàm bậc 2 của biến khớp nên thông thường rất khó để quan sát chính xác. Vì vậy, cần phải xem xét nhiễu quan sát của gia tốc. Gọi sai số quan sát của gia tốc là $\Delta\ddot{\boldsymbol{q}}(i)$, thì sai số phương trình gây ra do điều này từ công thức (6.23) sẽ là $-\boldsymbol{M}(\boldsymbol{q})\Delta\ddot{\boldsymbol{q}}$. Mặt khác, giá trị tính toán của $\boldsymbol{W}$$\boldsymbol{W}(\boldsymbol{q}, \dot{\boldsymbol{q}}, \ddot{\boldsymbol{q}} + \Delta\ddot{\boldsymbol{q}})$. Do đó, vì cả $\boldsymbol{\psi}(i)$$\boldsymbol{W}(i)$ đều chứa $\Delta\ddot{\boldsymbol{q}}$ nên chúng có sự tương quan, vì vậy phương pháp bình phương tối thiểu sẽ sinh ra sai số ước lượng như thể hiện ở công thức (6.46). Một phương pháp ước lượng để làm cho sai số này tiệm cận về 0 là Phương pháp biến công cụ (Instrumental variable method / 補助変数法) được trình bày dưới đây.

Phương pháp biến công cụ chọn $\ddot{\boldsymbol{q}}^*$ làm biến công cụ của $\ddot{\boldsymbol{q}}$ và định nghĩa:

$$\hat{\boldsymbol{W}}(i) = \boldsymbol{W}(\boldsymbol{q}(i), \dot{\boldsymbol{q}}(i), \ddot{\boldsymbol{q}}^*(i)) \tag{6.47}$$
$$\hat{\boldsymbol{A}} = \text{block diag}(\hat{\boldsymbol{W}}(1), \hat{\boldsymbol{W}}(2), \cdots, \hat{\boldsymbol{W}}(N)) \tag{6.48}$$

và sử dụng ma trận trọng số là:

$$\boldsymbol{\Omega} = \hat{\boldsymbol{A}}\hat{\boldsymbol{A}}^T \tag{6.49}$$

Ở đây, block diag mang ý nghĩa là ma trận đường chéo khối. Khi đó, giá trị ước lượng được cho bởi:

$$\hat{\boldsymbol{\sigma}} = \boldsymbol{\sigma} + (\boldsymbol{A}^T \hat{\boldsymbol{A}} \hat{\boldsymbol{A}}^T \boldsymbol{A})^{-1} \boldsymbol{A}^T \hat{\boldsymbol{A}} \hat{\boldsymbol{A}}^T \boldsymbol{\nu} \tag{6.50}$$

Ở đây, xác suất khi $N \to \infty$ được gọi là Giới hạn xác suất (Stochastic limit / 確率極限) và biểu diễn bằng plim:

(a)

$$\text{plim}_{N \to \infty} \frac{1}{N} \boldsymbol{A}^T \hat{\boldsymbol{A}} \hat{\boldsymbol{A}}^T \boldsymbol{A} \quad \text{là ma trận không suy biến} \tag{6.51}$$

(b)

$$\text{plim}_{N \to \infty} \frac{1}{N} \boldsymbol{A}^T \hat{\boldsymbol{A}} \hat{\boldsymbol{A}}^T \boldsymbol{\nu} = \boldsymbol{0} \tag{6.52}$$

Nếu các điều kiện này thỏa mãn, theo định lý Slutsky, $\hat{\boldsymbol{\sigma}}$ sẽ tiệm cận thành một Ước lượng vững (Consistent estimate / 一致推定値). Chú ý rằng, ước lượng vững biểu thị một lượng ước lượng sẽ trở thành giá trị thực khi $N \to \infty$. Hai điều kiện này sẽ thỏa mãn khi $\ddot{\boldsymbol{q}}^*(i)$$\ddot{\boldsymbol{q}}(i)$ có tương quan mạnh, và $\ddot{\boldsymbol{q}}^*(i)$ không có tương quan với $\boldsymbol{\psi}(i)$. Vì vậy, từ dữ liệu phác thảo thu được trước, ta tạo ra một mô hình phụ trợ (auxiliary model) tương đương với phương trình chuyển động:

$$\hat{\boldsymbol{M}}(\boldsymbol{q})\ddot{\boldsymbol{q}}^* + \hat{\boldsymbol{h}}(\boldsymbol{q}, \dot{\boldsymbol{q}}) + \hat{\boldsymbol{g}}(\boldsymbol{q}) = \boldsymbol{\tau} \tag{6.53}$$

và lấy $\ddot{\boldsymbol{q}}^*$ làm đầu ra của mô hình phụ trợ. Ở đây, $\hat{\boldsymbol{M}}$, $\hat{\boldsymbol{h}}$, $\hat{\boldsymbol{g}}$ lần lượt là ma trận quán tính, lực ly tâm/Coriolis, và tải trọng trọng trường của mô hình phụ trợ. Chừng nào $\boldsymbol{\tau}$ không bao gồm phản hồi gia tốc, có thể nói rằng $\ddot{\boldsymbol{q}}^*$ không có tương quan với $\boldsymbol{\psi}$ và có tương quan mạnh với $\ddot{\boldsymbol{q}}$. Do đó, các điều kiện của công thức (6.51) và (6.52) được thỏa mãn, và ta thu được ước lượng vững.

Tuy nhiên, khi các tham số là dư thừa (redundant), vì $\boldsymbol{A}^T \hat{\boldsymbol{A}} \hat{\boldsymbol{A}}^T \boldsymbol{A}$ không phải là ma trận không suy biến nên không thể áp dụng phương pháp bình phương tối thiểu hoặc phương pháp biến công cụ nêu trên. Mặc dù vậy, nếu sử dụng thuật toán tuần tự (sequential algorithm) của các phương pháp ước lượng này, việc nhận dạng tham số vẫn khả thi ngay cả khi các tham số dư thừa. Về thuật toán nhận dạng tuần tự, vui lòng tham khảo Phụ lục D. Khi ước lượng bằng thuật toán nhận dạng tuần tự với giá trị khởi tạo bằng 0, các tham số không thể nhận dạng sẽ vẫn bằng 0. Giá trị ước lượng của các tham số chỉ có thể nhận dạng thông qua tổ hợp tuyến tính sẽ chứa độ chệch (bias). Tuy nhiên, nếu là thuật toán tối thiểu hóa sai số mô-men, kết quả tính toán mô-men từ các tham số ước lượng sẽ làm triệt tiêu sai số mô-men. Do đó, có thể sử dụng các giá trị ước lượng đó cho việc điều khiển và phân tích.

≫ 6.2.4 Nhận dạng tải trọng Khâu tác động cuối

Sự thay đổi theo thời gian của tham số động lực học Robot có thể coi là hầu như không có ngoại trừ tải trọng Khâu tác động cuối và thành phần ma sát. Tải trọng Khâu tác động cuối (End-effector load / 手先負荷) thường biến động do sự thay đổi của nội dung công việc hoặc sự thay đổi của vật thể cần gắp. Tải trọng Khâu tác động cuối có thể được gộp chung vào Khâu $n$ để xem xét. Theo đó, do sự thay đổi của tải trọng Khâu tác động cuối, giả sử tham số của Khâu $n$ thay đổi từ $\boldsymbol{\sigma}_n$ thành $\boldsymbol{\sigma}_n + \Delta\boldsymbol{\sigma}_n$, và lực dẫn động khớp thay đổi từ $\boldsymbol{\tau}$ thành $\boldsymbol{\tau} + \Delta\boldsymbol{\tau}$, từ công thức (6.24) ta có:

$$\Delta\boldsymbol{\tau} = \boldsymbol{W} [\boldsymbol{0}^T, \boldsymbol{0}^T, \cdots, \boldsymbol{0}^T, \Delta\boldsymbol{\sigma}_n^T]^T \tag{6.54}$$

Nếu đặt công thức này là:

$$\boldsymbol{W} = [\boldsymbol{W}_1, \boldsymbol{W}_2, \cdots, \boldsymbol{W}_n] \tag{6.55}$$

Ta có thể biểu diễn thành:

$$\Delta\boldsymbol{\tau} = \boldsymbol{W}_n \Delta\boldsymbol{\sigma}_n \tag{6.56}$$

Trong đó, $\boldsymbol{W}_i$ là các phần tử ma trận của $\boldsymbol{W}$ tương ứng với $\boldsymbol{\sigma}_i$. Do đó, sử dụng công thức (6.56) ta có thể nhận dạng tham số $\Delta\boldsymbol{\sigma}_n$. Chú ý rằng, $\Delta\boldsymbol{\tau}$ được tìm như là phần chênh lệch giữa lực truyền động thực tế $\boldsymbol{\tau}_m$ khi có tải trọng Khâu tác động cuối và lực truyền động $\boldsymbol{\tau}_c$ được tính toán bằng giá trị danh định của tải trọng Khâu tác động cuối:

$$\Delta\boldsymbol{\tau} = \boldsymbol{\tau}_m – \boldsymbol{\tau}_c \tag{6.57}$$

【Bài toán mẫu 6.4】 Tìm hệ thức nhận dạng khi thêm một tải trọng Khâu tác động cuối vào cánh tay Robot 2 khớp ở Bài toán mẫu 6.2 như được biểu diễn trong Hình 6.6.

Hình 6.6: Cánh tay Robot 2 khớp nâng vật thể

Từ công thức (6.29) ta có:

$$\begin{bmatrix} \Delta\tau_1 \\ \Delta\tau_2 \end{bmatrix} = \left[ \begin{array}{cccccccccc} L_1^2\ddot{\theta}_1 + gL_1^2C_1 & w_{112} & w_{113} & 0 & 0 & 0 & \ddot{\theta}_1 + \ddot{\theta}_2 & 0 & 0 & 0 \\ 0 & w_{212} & w_{213} & 0 & 0 & 0 & \ddot{\theta}_1 + \ddot{\theta}_2 & 0 & 0 & 0 \end{array} \right] \Delta\boldsymbol{\sigma}_2$$

Rút ra các tham số có ảnh hưởng đến mô-men khớp và sắp xếp lại, ta được:

$$\begin{bmatrix} \Delta\tau_1 \\ \Delta\tau_2 \end{bmatrix} = \begin{bmatrix} L_1^2\ddot{\theta}_1 + gL_1^2C_1 & w_{112} & w_{113} & \ddot{\theta}_1 + \ddot{\theta}_2 \\ 0 & w_{212} & w_{213} & \ddot{\theta}_1 + \ddot{\theta}_2 \end{bmatrix} \begin{bmatrix} \Delta m_2 \\ \Delta m_2 \hat{s}_{2x} \\ \Delta m_2 \hat{s}_{2y} \\ \Delta I_{2zz} \end{bmatrix}$$

Từ hệ thức này, có thể nói rằng $\Delta m_2$, $\Delta m_2 \hat{s}_{2x}$, $\Delta m_2 \hat{s}_{2y}$, $\Delta I_{2zz}$ là có thể nhận dạng. Cần chú ý rằng $m_2$ của Khâu 2 không thể nhận dạng đơn lẻ, nhưng $\Delta m_2$ lại có thể nhận dạng được.

6.3【Bài tập thực hành】

6.1 Trong cánh tay Robot 2 khớp của Bài toán mẫu 6.1, giả sử chiều dài Khâu là $L_1 = L_2 = 100$ mm, hãy tìm sai số vị trí trong hai điều kiện sau. Cho $\theta_1 = 0^\circ$, $\theta_2 = 90^\circ$.

a) $\Delta\boldsymbol{\alpha} = \Delta\boldsymbol{\theta} = \Delta\boldsymbol{\beta} = [1^\circ, \, 1^\circ, \, 1^\circ]^T, \quad \Delta\boldsymbol{a} = \Delta\boldsymbol{d} = \boldsymbol{0}$

b) $\Delta\boldsymbol{\alpha} = \Delta\boldsymbol{\theta} = \Delta\boldsymbol{\beta} = \boldsymbol{0}, \quad \Delta\boldsymbol{a} = \Delta\boldsymbol{d} = [1, \, 1, \, 1]^T$ [mm]

6.2 Tìm tham số cơ sở của cánh tay 2 khớp ở Bài tập thực hành 5.1.

6.3 Khai triển phương trình chuyển động của cánh tay 3 khớp thu được ở Bài tập thực hành 5.5 thành dạng công thức (6.32), và tìm tham số cơ sở.

6.4 Cảm nhận

Phân tích sai số và nhận dạng tham số (Error Analysis and Parameter Identification / 誤差解析とパラメータ同定) là một chương mang tính thực tiễn rất cao trong kỹ thuật robot. Nó giải quyết một vấn đề cốt lõi: Sự sai lệch giữa “Mô hình toán học lý thuyết” và “Robot vật lý thực tế”.

Cụ thể, chương này giải quyết hai bài toán lớn tương ứng với hai phần chính của nó:

1. Bài toán về sự thiếu chính xác trong vị trí (Thuộc về Động học – Kinematics)

  • Vấn đề thực tế: Khi tính toán động học (để biết tay máy đang ở tọa độ nào), chúng ta sử dụng các Tham số Khâu (Link parameters / リンクパラメータ) như chiều dài cánh tay, khoảng cách lệch trục, góc xoắn khớp… dựa trên bản vẽ thiết kế (thường dùng phương pháp D-H). Tuy nhiên, trong quá trình gia công cơ khí và lắp ráp, luôn luôn tồn tại sai số (sai số gia công, độ rơ của khớp, linh kiện bị uốn cong…). Hệ quả là khi điều khiển robot đến tọa độ $(x, y, z)$ trên phần mềm, tay gắp thực tế ngoài đời lại bị lệch đi một vài milimet. Ngoài ra, phương pháp D-H truyền thống sẽ bị lỗi tính toán (điểm kỳ dị toán học) khi hai trục khớp song song hoặc gần song song với nhau.

  • Cách giải quyết của Chương 6:

    • Giới thiệu Phương pháp D-H hiệu chỉnh (Modified D-H method / 修正D-H法) để khắc phục nhược điểm kỳ dị toán học của D-H truyền thống.

    • Thực hiện Hiệu chuẩn tham số Khâu (Calibration / キャリブレーション): Cho robot di chuyển tay gắp đến nhiều vị trí khác nhau, dùng cảm biến đo lường (như máy ảnh 3D, laser tracker) để ghi nhận tọa độ thực tế. Từ độ lệch giữa tọa độ thực tế và tọa độ tính toán, sử dụng thuật toán (như Phương pháp bình phương tối thiểu) để “ước lượng ngược” ra bộ kích thước thực tế của robot. Từ đó, bộ điều khiển sẽ dùng bộ thông số mới này để tính toán, giúp robot định vị chính xác tuyệt đối.

2. Bài toán về sự thiếu thông tin để điều khiển lực/mô-men (Thuộc về Động lực học – Dynamics)

  • Vấn đề thực tế: Để robot chuyển động ở tốc độ cao mà không bị rung lắc, hoặc khi cần điều khiển lực tương tác mềm mại, bộ điều khiển cần tính toán chính xác Mô-men (Torque / トルク) xuất ra các động cơ. Việc tính toán này yêu cầu phải biết trước các Tham số động lực học (Dynamics parameters / 動力学パラメータ) của từng bộ phận như: Khối lượng (Mass), Mô-men quán tính (Inertia), Vị trí khối tâm (Center of mass), và hệ số Ma sát (Friction). Tuy nhiên, khi robot đã được lắp ráp nguyên khối, ta không thể tháo rời từng cánh tay ra để đem lên bàn cân hay máy đo quán tính được. Hơn nữa, việc thêm/bớt tải trọng ở tay gắp cũng làm thay đổi các thông số này.

  • Cách giải quyết của Chương 6:

    • Thực hiện Nhận dạng tham số (Parameter identification / パラメータ同定): Thay vì tháo rời robot, người ta giữ nguyên robot và cho nó “múa” (thực hiện các chuyển động thử nghiệm phong phú).

    • Trong lúc robot chuyển động, máy tính sẽ liên tục ghi nhận dữ liệu về Biến khớp (vị trí góc), Vận tốc, Gia tốc và Lực dẫn động khớp (dòng điện/mô-men động cơ).

    • Đưa các dữ liệu này vào phương trình động lực học, hệ thống sẽ tự động tính toán và “suy ngược” ra được các thông số về khối lượng, quán tính, ma sát của toàn bộ hệ thống. (Chương này cũng chỉ ra cách gộp các thông số không thể nhận dạng đơn lẻ thành một bộ Tham số cơ sở (Base parameters / ベースパラメータ) tối thiểu).

Tóm lại

Chương 6 giải quyết bài toán “Hiệu chỉnh hệ thống”. Nó cung cấp các công cụ toán học để bộ điều khiển có thể tự động học và hiểu được hình dáng vật lý thực sự (chiều dài, góc lệch) cũng như thể chất thực sự (cân nặng, sức ì, độ ma sát) của con robot mà nó đang điều khiển. Nhờ có chương này, robot từ chỗ chỉ là một mô hình lý thuyết trên máy tính trở thành một cỗ máy có thể hoạt động chính xác và trơn tru trong môi trường vật lý thực tế.

Leave a Comment

Chia sẻ:

6. Phân tích sai số và nhận dạng tham số (Error Analysis and Parameter Identification / 誤差解析とパラメータ同定)

Or copy link

CONTENTS