Apresentação de Monografia
Engenharia Elétrica - Universidade Federal de Minas Gerais



Modelagem e Controle de um Robô para Cirurgias




Aluno: Felipe Bartelt de Assis Pessoa
Prof. Orientador: Vinicius Mariano Gonçalves

Robótica Cirúrgica

Robótica Cirúrgica

  • Seres humanos são suscetíveis a variáveis não controláveis
  • Sistemas não autônomos
  • Robôs telemanipulados são os mais comuns
  • Sistema mais comum do mercado: da Vinci

Robótica Cirúrgica

Da vinci

  • Autorização para realizar cirurgias no Estados Unidos e Europa
  • Há mais de 4400 sistemas da Vinci instalados em mais de 60 países
  • Mais de 5 milhões de procedimentos realizados por cirurgiões
  • Torna a visualização e manipulação de tecidos o mais transparente e natural possível (DESAI et al., 2017).

Robótica Cirúrgica

Da vinci si

Robótica Cirúrgica

Da vinci si

  • Sistema consiste em três subsistemas
  • Manipulador do lado do paciente consiste em:
    • Parte passiva

  • Configuração: PRRR
Fonte: (LOMBARD; CÉRUSE; FUMAT, 2017)

Robótica Cirúrgica

Da vinci si

  • Sistema consiste em três subsistemas
  • Manipulador do lado do paciente consiste em:
    • Parte passiva
    • Parte atuada


  • Configuração: PRRRRR[RR]P
Fonte: (LOMBARD; CÉRUSE; FUMAT, 2017)

Robótica Cirúrgica

Da vinci si

  • Sistema consiste em três subsistemas
  • Manipulador do lado do paciente consiste em:
    • Parte passiva
    • Parte atuada


  • Configuração: PRRRRR[RR]P
Fonte: (LOMBARD; CÉRUSE; FUMAT, 2017)

Robótica Cirúrgica

Da vinci si

  • Sistema consiste em três subsistemas
  • Manipulador do lado do paciente consiste em:
    • Parte passiva
    • Parte atuada
    • Intrumentos EndoWrist



  • Configuração: PRRRRR[RR]PRRR

Robótica Cirúrgica

Da vinci si

  • Sistema consiste em três subsistemas
  • Manipulador do lado do paciente consiste em:
    • Parte passiva
    • Parte atuada
    • Intrumentos EndoWrist



  • Configuração: PRRRRR[RR]PRRR
  • Espaço de trabalho altamente dependente da orientação da base (DESAI et al., 2017)

UAIBot

UAIBot

Da vinci si

  • Simulador open-source desenvolvido pelo prof. Vinicius
  • Baixo-nível
  • Contém diversas funções embutidas
  • Contém vários modelos de robôs e permite a inclusão de novos
  • Link do repositório: https://github.com/viniciusmgn/uaibot_vinicius
Fonte: (GONÇALVES, 2022b)

OBJETIVOS

OBJETIVOS

  • Implementar o da Vinci SI no UAIBot
  • Estimar seus parâmetros de DH
  • Criar primitivas de colisão
  • Considerar a parte passiva como atuável: PRRRRR[RR]P
  • Controlar um dos braços para testar a implementação:
    • Atingir uma pose objetivo
    • Realizar evitamento de colisões externas e auto-colisão
    • Utilizar programação quadrática convexa para o controle com restrições

Detecção de colisões

Detecção de colisões

  • Alto custo computacional
  • Primitivas de colisão
  • Hierarquia de primitivas
  • Estimativa de distâncias

Método de Projeções Alternadas de Von Neumann

Sejam $C, D$ subespaços convexos do $\mathbb{R}^n$, $P_C(x)$ a projeção ortogonal de um ponto $x$ em $C$, $P_D(x)$ a projeção ortogonal de um ponto $x$ em $D$, então para cada $x \in\mathbb{R}^n$ vale (ESCALANTE; RAYDAN, 2011):

\[ \lim_{n\to\infty} (P_DP_C)^nx = P_{C\cap D}(x) \]

Se $C\cap D=\varnothing$ o método converge a pontos testemunha $x_c^*, x_d^*$, que correspondem ao par de pontos que minimiza a distância entre $C$ e $D$ (CHENEY; GOLDSTEIN, 1959).

Com interseção (colisão). Fonte:(BOYD;
DATTORRO, 2003)
Sem interseção (colisão). Fonte: (BOYD;
DATTORRO, 2003)
Esferas pretas indicam os pontos testemunha $x^*_c$. Esferas vermelhas indicam os pontos testemunha $x^*_d$
Função de distância

Seja $C$ o conjunto de pontos na superfície de um elo do robô e $D$ o conjunto de pontos na superfície de um obstáculo, pode-se definir a função de distância $\Psi_{CD}(q)$ e sua jacobiana $J_{\Psi}\equiv J_{\Psi_{CD}}(q):$

\[\begin{align*} &\Psi_{CD}(q) = \|x_c^*(q) - x_d^*(q)\|\\ &\implies \nabla \Psi_{CD}(q) = J_{\Psi} = \begin{pmatrix} \frac{\partial \Psi_{CD}(q)}{\partial q_1} \\ \frac{\partial \Psi_{CD}(q)}{\partial q_2} \\ \vdots \\ \frac{\partial \Psi_{CD}(q)}{\partial q_n}\end{pmatrix} \end{align*}\]
\[\begin{align*} &\Psi_{CD}(q) = \|x_c^*(q) - x_d^*(q)\|\\ &J_\Psi= \left(J_{{x_c}^*} - J_{{x_d}^*}\right)^T\left(\frac{x_c^*(q) - x_d^*(q)}{\Psi_{CD}(q)}\right), \end{align*}\]

onde

\[\begin{align*} &J_{{x_c}^*} = J_{v, p_o}(q) + S(p_o - x_c^*)J_{\omega,{p_o}}(q) \end{align*}\]

O resultado é análogo para $J_{x_d^*}$

IMPLEMENTAÇÃO

IMPLEMENTAÇÃO

Parâmetros de Denavit-Hartenberg

  • Limitada à visualização no simulador
  • Suscetível a erros de observação
  • Dependente da fidelidade do modelo 3D
  • Exige muito tempo empregado

IMPLEMENTAÇÃO

Primitivas de colisão

  • Escolha subjetiva de geometrias
  • Escolha de retesamento
  • Hierarquia intrínseca ao simulador
  • Exige muito tempo empregado

CONTROLE

CONTROLE

Programação quadrática convexa

Controle com restrições (MARINHO et al., 2019):

$$\begin{align*} \min_{\dot{q}}{}&{\| J_{r}\dot{q} + K_{r}r\|_2^2 + \|\epsilon\dot{q}}\|_2^2\\ \text{sujeito a} &\ W\dot{q}\leq w , \end{align*}$$

onde $q\equiv q(t)\in \mathbb{R}^n$ é o vetor de configurações do robô, $r\equiv r(q):\mathbb{R}^n\mapsto\mathbb{R}^m$ é uma função de tarefa, $J_r\equiv J_r(q)=\frac{\partial r(q)}{\partial q}\in \mathbb{R}^{m\times n}$ é a matriz jacobiana de tarefa e $K_r \in (0, \infty)$ é um ganho. $W\equiv W(q)\in \mathbb{R}^{\ell \times n}$ e $w\equiv w(q)\in \mathbb{R}^{\ell}$ definem as restrições de desigualdade.

CONTROLE

Função de tarefa

A tarefa corresponde a atingir uma pose alvo, portanto pode ser definida por (GONÇALVES, 2022a):

$$\begin{align*} r(q) = \begin{pmatrix}p_{e}(q) - p_{tg}\\1-x_{tg}^Tx_{e}(q)\\1-y_{tg}^Ty_{e}(q)\\1-z_{tg}^Tz_{e}(q)\end{pmatrix}\in\mathbb{R}^6, \end{align*}$$

onde $p_{e}(q) \in \mathbb{R}^{3}$ é a posição do centro do referencial do efetuador, $p_{tg}\in \mathbb{R}^{3}$ é a posição do centro do alvo, $x_e(q), y_e(q), z_e(q)\in\mathbb{R}^3$ são os eixos $x,y, z$ do referencial do efetuador e $x_{tg}, y_{tg}, z_{tg}\in\mathbb{R}^3$ são os eixos $x,y, z$ do alvo. Todos os elementos são medidos no referencial do mundo.

CONTROLE

Função de tarefa

$$\begin{align*} r(q) = \begin{pmatrix}p_{e}(q) - p_{tg}\\1-x_{tg}^Tx_{e}(q)\\1-y_{tg}^Ty_{e}(q)\\1-z_{tg}^Tz_{e}(q)\end{pmatrix}\in\mathbb{R}^6, \end{align*}$$

$$\begin{align*} J_r(q) = \frac{\partial r(q)}{\partial q}=\begin{bmatrix} J_p(q) \\ x_{tg}^TS\left(x_e\left(q\right)\right)J_\omega(q) \\ y_{tg}^TS(y_e(q))J_\omega(q) \\ z_{tg}^TS(z_e(q))J_\omega(q) \end{bmatrix} \in\mathbb{R}^{6\times n}, \end{align*}$$

onde $J_p(q)\in\mathbb{R}^{3\times n}$ é a jacobiana de posição do efetuador, que são as três primeiras linhas de sua jacobiana geométrica $J_{geo}\in\mathbb{R}^{6\times n}$, $J_\omega(q)\in\mathbb{R}^{3\times n}$ é a jacobiana de orientação do efetuador, que são as três últimas linhas de $J_{geo}$. $S$ é um operador que mapeia um vetor em sua respectiva matriz antissimétrica

CONTROLE

Restrições de colisão externa

Pode ser definida pela seguinte inequação diferencial, adotando-se uma distância de segurança $d_\text{safe}$ e um coeficiente de amortecimento $\eta$ (KANOUN; LAMIRAUX; WIEBER, 2011).

$$\begin{align*} \frac{d}{dt} \Psi_{C_iD_j} &\ge -\eta \left(\Psi_{C_iD_j}-d_\text{safe}\right)\\ \implies J_{\Psi_{C_iD_j}}^T\dot{q} &\ge -\eta \left(\Psi_{C_iD_j}-d_\text{safe}\right) \end{align*}$$

CONTROLE

Restrições de colisão externa

Dado

$$ \begin{align*} b= \begin{bmatrix} \Psi_{C_{1}D_{1}} \\ \Psi_{C_{2}D_{1}} \\ \vdots \\ \Psi_{C_{p}D_{1}} \\ \Psi_{C_{1}D_{2}} \\ \vdots \\ \Psi_{C_{p}D_{l}} \end{bmatrix} \in \mathbb{R}^{p\cdot l},\quad A= \begin{bmatrix} J_{\Psi_{C_{1}D_{1}}}^{T} \\ J_{\Psi_{C_{2}D_{1}}}^{T} \\ \vdots \\ J_{\Psi_{C_{p}D_{1}}}^{T} \\ J_{\Psi_{C_{1}D_{2}}}^{T} \\ \vdots \\ J_{\Psi_{C_{p}D_{l}}}^{T} \end{bmatrix} \in \mathbb{R}^{(p\cdot l)\times n} \end{align*} $$

A restrição é expressa por $$-A \dot{q} \leq \eta \left(b - d_\text{safe}\right) $$

CONTROLE

Restrições de colisão externa

O custo computacional para se calcular todas as distâncias e jacobianas é caro, portanto basta tomar as $k$ distâncias mais críticas (isso é feito internamente pelo simulador via hierarquia de primitivas).

Dessa forma, $\bar{b}\in\mathbb{R}^k$ que contém apenas as linhas de $b$ que apresentam as $k$ menores distâncias $\Psi_{C_iD_j}$. Suas respectivas jacobianas são armazenadas em uma matriz $\bar{A}\in\mathbb{R}^{k\times n}$. As restrições se tornam

$$-\bar{A} \dot{q} \leq \eta \left(\bar{b} - d_\text{safe}\right)$$

CONTROLE

Restrições de auto-colisão

Análoga às restrições de colisão externa, mas cada $D_j$ representa um outro elo não subsequente do robô. As restrições podem ser definidas por

$$-\bar{A}_\text{auto} \dot{q} \leq \eta_\text{auto} \left(\bar{b}_\text{auto} - d_\text{safe}\right),$$

onde, devido a hierarquia de primitivas, $\bar{A}_\text{auto}\in\mathbb{R}^{g\times n}, \bar{b}_\text{auto}\in\mathbb{R}^{g}$.

CONTROLE

Restrições de limites de juntas

Basta impor que a velocidade de junta $\dot{q}$ satisfaça

$$ \begin{align*}&\xi\left(q_{\text{min}} - q\right) \leq I\dot{q} \leq \xi\left(q_{\text{max}} - q\right)\\ &\implies \begin{cases} I\dot{q} \leq \xi\left(q_{\text{max}} - q\right)\\ - I\dot{q} \leq -\xi\left(q_{\text{min}} - q\right)\end{cases},\end{align*}$$

onde $q_\text{min}, q_\text{max}\in\mathbb{R}^n$ são, respectivamente, vetores que contém os valores mínimos e máximos de cada junta, $\xi$ um fator de amortecimento e $I$ a matriz identidade de tamanho $n \times n$.

CONTROLE

Restrições de juntas passivas

Basta garantir que a configuração das juntas $q_7$ e $q_8$ mantenham uma diferença constante com a configuração $q_6$, sendo o manipulador representado pela configuração $(q_1, q_2, \dots, q_9)$, ou seja

$$ \begin{align*} \dot{q}_7 - \dot{q}_6 &= -\sigma\left(q_7 - q_6 - \delta_{76}\right) \\ \dot{q}_8 - \dot{q}_6 &= -\sigma\left(q_8 - q_6 - \delta_{86}\right) , \end{align*}$$

onde $\sigma$ é um fator de amortecimento, $\delta_{76} \equiv q_{7,0} - q_{6,0}$ e $\delta_{86} \equiv q_{8,0} - q_{6,0}$, sendo $q_{6,0}, q_{7,0}\ \text{e}\ q_{8,0}$ as configurações iniciais das juntas $q_6, q_7$ e $q_8$, respectivamente.

CONTROLE

Restrições de juntas passivas

Tomando-se as definições matriciais

$$ \begin{align*} \widetilde{q}_{76} &\equiv \begin{bmatrix} 0 & 0 & 0 & 0 & 0 & -1 & 1 & 0 & 0 \end{bmatrix}\\ \widetilde{q}_{86} &\equiv \begin{bmatrix} 0 & 0 & 0 & 0 & 0 & -1 & 0 & 1 & 0 \end{bmatrix} \end{align*}$$

pode-se definir as restrições por meio da seguinte inequação.

$$ \begin{equation*} \begin{bmatrix} \widetilde{q}_{76}\\\widetilde{q}_{86} \\ -\widetilde{q}_{76}\\ -\widetilde{q}_{86} \end{bmatrix}\dot{q} \le \begin{bmatrix} -\sigma\left(q_7-q_6-\delta_{76}\right) \\ -\sigma\left(q_8-q_6-\delta_{86}\right)\\ \sigma\left(q_7-q_6-\delta_{76}\right) \\ \sigma\left(q_8-q_6-\delta_{86}\right) \end{bmatrix} \end{equation*} $$

CONTROLE

Conjunto total de restrições

Concatenando-se todas as restrições, tem-se

$$ \begin{equation*} W = \begin{bmatrix} -\bar{A}\\-\bar{A}_\text{auto}\\ I_{n\times n} \\ -I_{n\times n} \\ \widetilde{q}_{76}\\\widetilde{q}_{86} \\ -\widetilde{q}_{76}\\ -\widetilde{q}_{86} \end{bmatrix} \in \mathbb{R}^{(k+g+2n+4)\times n} ,\quad w=\begin{bmatrix} \eta\left(\bar{b} - d_\text{safe}\right) \\ \eta_\text{auto}\left(\bar{b}_\text{auto} - d_\text{safe}\right) \\ \xi\left(q_\text{max} - q\right) \\ -\xi\left(q_\text{min} - q\right) \\ -\sigma\left(q_7-q_6-\delta_{76}\right) \\ -\sigma\left(q_8-q_6-\delta_{86}\right) \\ \sigma\left(q_7-q_6-\delta_{76}\right) \\ \sigma\left(q_8-q_6-\delta_{86}\right) \end{bmatrix} \in \mathbb{R}^{(k+g+2n+4)} \end{equation*}$$

Obtendo-se por fim a representação

$$ \begin{equation*} W \dot{q} \le w \end{equation*} $$

CONTROLE

Constantes adotadas

Constante Valor
$K_r$ $2$
$\mu$ $0.5\,\text{m}$
$\mu_\text{auto}$ $0.25\,\text{m}$
$d_\text{safe}$ $0.01\,\text{m}$
$\eta$ $0.5$
$\eta_\text{auto}$ $0.5$
$\xi$ $1$
$\sigma$ $0.2$

RESULTADOS

Resultados

SEM RESTRIÇÕES DE COLISÃO

Resultados

SEM RESTRIÇÕES DE COLISÃO

Função de tarefa ao longo do tempo de execução

Resultados

SEM RESTRIÇÕES DE COLISÃO

Distâncias obtidas pela estimativa de colisões externas e auto-colisão ao longo do tempo de execução

Resultados

SEM RESTRIÇÕES DE COLISÃO

Primeira colisão
Segunda colisão

Resultados

SEM RESTRIÇÕES DE COLISÃO

Configuração das juntas ao longo do tempo de execução

Resultados

SEM RESTRIÇÕES DE COLISÃO

Velocidade das juntas ao longo do tempo de execução

Resultados

SEM RESTRIÇÕES DE COLISÃO

Tempo gasto para a construção do problema de otimização e para a sua respectiva solução em cada iteração

Resultados

COM RESTRIÇÕES DE COLISÃO

Resultados

COM RESTRIÇÕES DE COLISÃO

Função de tarefa ao longo do tempo de execução

Resultados

COM RESTRIÇÕES DE COLISÃO

Distâncias obtidas pela estimativa de colisões externas e auto-colisão ao longo do tempo de execução

Resultados

COM RESTRIÇÕES DE COLISÃO

Configuração das juntas ao longo do tempo de execução

Resultados

COM RESTRIÇÕES DE COLISÃO

Velocidade das juntas ao longo do tempo de execução

Resultados

COM RESTRIÇÕES DE COLISÃO

Número de restrições, ou número de linhas de $W$, por iteração

Resultados

COM RESTRIÇÕES DE COLISÃO

Tempo gasto para a construção do problema de otimização e para a sua respectiva solução em cada iteração

TRABALHOS FUTUROS

TRABALHOS FUTUROS

  • Estudar a possibilidade de se obter uma nova forma de representação para as restrições
  • Obter formas menos custosas de se estimar distâncias
  • Pensar em formas reativas de se evitar mínimos locais

CONCLUSÕES

CONCLUSÕES

  • Parâmetros de Denavit-Hartenberg obtidos se mostraram satisfatórios
  • A composição de primitivas de colisão escolhida também se mostrou eficaz
  • A hierarquia de primitivas se mostrou importante para a redução de custo computacional
  • Uso de programação quadrática convexa é proveitoso para o controle com restrições de desigualdade
  • Processo de estimar todas as distâncias $\Psi_{C_iD_j}$ lento
  • Estratégia empregada tem possibilidade de convergir a mínimos locais

referências

referências