Controle visual eye-in-hand de SCARA 3-DOF por erro de pixel discreto

João LeonardiJoão LeonardiORCID9 min
View on GitHub

No Atomos MSI, o payload de cinco bandas precisa apontar para regiões da bandeja com repetibilidade — e a especificação natural do operador é clicar neste pixel, não digitar juntas. Este post formaliza o controle visual eye-in-hand do SCARA 3-DOF: a lei Δq=λLscara1e\Delta\mathbf{q}=-\lambda\mathbf{L}_{\mathrm{scara}}^{-1}\mathbf{e} traduz um clique (cx,cy)(c_x,c_y) em correção de junta (Δθ0,Δθ2)(\Delta\theta_0,\Delta\theta_2) sob Jacobiana de imagem reduzida pan/tilt.

Diferencia-se do IBVS clássico: sem extração contínua de features e com um único movimento por waypoint, sincronizado por confirmação mecânica antes do próximo passo — requisito para aquisição MSI sequencial (um LED por quadro). Documentamos convergência para λ(0,2)\lambda\in(0,2), singularidades e a sincronização servo–imagem usada na bancada.


1. Problema e motivação científica

Na bancada Atomos, o payload MSI (5 LEDs + CMOS) deve apontar para regiões da carne ou do solo com repetibilidade. Interfaces de junta pura (θ0\theta_0, θ2\theta_2 em radianos) são pouco ergonômicas para o operador; a especificação natural é apontar para este pixel. O desafio fundamental é:

Como mapear (cx,cy)(c_x,c_y) em (Δθ0,Δθ2)(\Delta\theta_0,\Delta\theta_2) de forma que, após o movimento, o ponto da cena que estava em (cx,cy)(c_x,c_y) ocupe o centro óptico da imagem?

Formulamos três questões alinhadas ao documento de modelagem:

  1. Q1 — Qual a cadeia cinemática e a projeção perspectiva que ligam o espaço de juntas {θ0,θ2}\{\theta_0,\theta_2\} ao plano de imagem {I}\{I\} na montagem eye-in-hand?
  2. Q2 — Sob a restrição de correção discreta (um passo por waypoint), a lei Δq=λLscara1e\Delta\mathbf{q}=-\lambda\mathbf{L}_{\mathrm{scara}}^{-1}\mathbf{e} converge localmente, e sob quais condições sobre λ\lambda e det(Lscara)\det(\mathbf{L}_{\mathrm{scara}})?
  3. Q3 — Quais falhas de sincronização (sinais da Jacobiana, profundidade ZZ, latência servo–imagem) dominam a prática, e como diagnosticá-las?

O método é tratado como instrumento de posicionamento assistido, não como IBVS de alta taxa. Servo 1 (extensão do braço) é declarado opcional e não entra no laço visual direto; o controle reduz-se a pan (θ0\theta_0) e tilt (θ2\theta_2).

Setup laboratorial Atomos: SCARA 3-DOF com payload MSI sobre a bandeja.
Setup laboratorial Atomos: SCARA 3-DOF com payload MSI sobre a bandeja.

Diagrama esquemático: erro visual \mathbf{e} entre clique e centro (0{,}5,0{,}5).
Diagrama esquemático: erro visual \mathbf{e} entre clique e centro (0{,}5,0{,}5).


2. Fundamentos e trabalho relacionado

2.1 IBVS clássico versus correção discreta

O visual servoing clássico (Espiau et al., 1992; Chaumette & Hutchinson, 2008) opera em malha fechada contínua: captura → extração de características s\mathbf{s} → erro e=ss\mathbf{e}=\mathbf{s}-\mathbf{s}^* → velocidade de juntas q˙=λL+e\dot{\mathbf{q}}=-\lambda\mathbf{L}^{+}\mathbf{e} → integração em Δt\Delta t → repetir. O problema Atomos diverge em três pontos:

AspectoIBVS clássicoSCARA Atomos
AlvoFeatures visuais (pontos, linhas)Coordenada de pixel pura
LaçoContínuo até e<ε\|\mathbf{e}\|<\varepsilonUm movimento proporcional por waypoint
TrackingSim, ao longo do tempoNão; reposicionamento pontual
ExtraçãoNCC / detectoresNenhuma

2.2 Graus de liberdade do manipulador

JuntaPapelNo laço visual
Servo 0 (θ0\theta_0)Rotação da base no plano horizontal (pan)Sim
Servo 1 (θ1\theta_1)Extensão do braçoNão (opcional)
Servo 2 (θ2\theta_2)Inclinação do payload (tilt)Sim

A câmera está fixada rigidamente no payload, com eixo óptico ZCZ_C apontando para a cena (montagem para baixo ou para frente, conforme calibração).

2.3 Sistemas de coordenadas

  • Base {B}\{B\}: origem na interseção do eixo de θ0\theta_0 com o plano horizontal; ZBZ_B vertical; XBX_B na referência θ0=0\theta_0=0.
  • Câmera {C}\{C\}: origem no centro óptico; ZCZ_C ao longo do eixo óptico; XCX_C à direita na imagem; YCY_C para baixo.
  • Imagem {I}\{I\}: origem no canto superior esquerdo; uu colunas, vv linhas; resolução W×HW\times H. Coordenadas normalizadas:
u~=uW,v~=vH,u~,v~[0,1].\tilde{u}=\frac{u}{W},\qquad \tilde{v}=\frac{v}{H},\qquad \tilde{u},\tilde{v}\in[0,1].

3. Modelagem geométrica

3.1 Cadeia cinemática

A pose da câmera em relação à base é

TBC(θ0,θ2)=TB0(θ0)T02(θ2)T2C.\mathbf{T}_{BC}(\theta_0,\theta_2)=\mathbf{T}_{B0}(\theta_0)\cdot\mathbf{T}_{02}(\theta_2)\cdot\mathbf{T}_{2C}.

Para o SCARA simplificado pan/tilt:

TB0(θ0)=[cosθ0sinθ000sinθ0cosθ000001h00001],\mathbf{T}_{B0}(\theta_0)= \begin{bmatrix} \cos\theta_0 & -\sin\theta_0 & 0 & 0 \\ \sin\theta_0 & \cos\theta_0 & 0 & 0 \\ 0 & 0 & 1 & h_0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, T02(θ2)=[cosθ20sinθ2Lcosθ20100sinθ20cosθ2Lsinθ20001],\mathbf{T}_{02}(\theta_2)= \begin{bmatrix} \cos\theta_2 & 0 & \sin\theta_2 & L\cos\theta_2 \\ 0 & 1 & 0 & 0 \\ -\sin\theta_2 & 0 & \cos\theta_2 & L\sin\theta_2 \\ 0 & 0 & 0 & 1 \end{bmatrix},

com h0h_0 altura do eixo da base, LL comprimento do braço, e T2C\mathbf{T}_{2C} a transformação fixa payload→câmera (calibração hand-eye; Tsai & Lenz, 1989):

AiX=XBi,i=1,,N.\mathbf{A}_i\mathbf{X}=\mathbf{X}\mathbf{B}_i,\quad i=1,\ldots,N.

3.2 Projeção perspectiva

Um ponto PC=[XC,YC,ZC]\mathbf{P}_C=[X_C,Y_C,Z_C]^\top no sistema da câmera projeta-se como

[uv1]=1ZCKPC,K=[fx0cx0fycy001],\begin{bmatrix}u\\v\\1\end{bmatrix} =\frac{1}{Z_C}\mathbf{K}\mathbf{P}_C, \qquad \mathbf{K}= \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix},

onde (cx,cy)(c_x,c_y) é o centro óptico principal (tipicamente o centro da imagem) e fx,fyf_x,f_y as distâncias focais em pixels.


4. Erro visual, Jacobiana e lei de controle

4.1 Erro visual normalizado

Dado o clique (c~x,c~y)(\tilde{c}_x,\tilde{c}_y),

e=[euev]=[c~x0,5c~y0,5][0,5,0,5]2.\mathbf{e}=\begin{bmatrix}e_u\\e_v\end{bmatrix} =\begin{bmatrix}\tilde{c}_x-0{,}5\\\tilde{c}_y-0{,}5\end{bmatrix} \in[-0{,}5,0{,}5]^2.

e=0\mathbf{e}=\mathbf{0} significa que o ponto clicado já está no centro.

4.2 Matriz de interação Lscara\mathbf{L}_{\mathrm{scara}}

A relação diferencial s˙=L(s,Z)q˙\dot{\mathbf{s}}=\mathbf{L}(\mathbf{s},Z)\dot{\mathbf{q}} com q=[θ0,θ2]\mathbf{q}=[\theta_0,\theta_2]^\top e s=[u,v]\mathbf{s}=[u,v]^\top reduz-se, para pan/tilt e ponto próximo ao centro, a

Lscara=[uθ0uθ2vθ0vθ2]=[fxZyCfxZzCefffyZxCfyZxCeff],\mathbf{L}_{\mathrm{scara}}= \begin{bmatrix} \dfrac{\partial u}{\partial\theta_0} & \dfrac{\partial u}{\partial\theta_2} \\[6pt] \dfrac{\partial v}{\partial\theta_0} & \dfrac{\partial v}{\partial\theta_2} \end{bmatrix} = \begin{bmatrix} -\dfrac{f_x}{Z}\,y_C & \dfrac{f_x}{Z}\,z_C^{\mathrm{eff}} \\[6pt] \dfrac{f_y}{Z}\,x_C & -\dfrac{f_y}{Z}\,x_C^{\mathrm{eff}} \end{bmatrix},

onde ZZ é a profundidade ao longo do eixo óptico. θ0\theta_0 equivale a uma componente de ωz\omega_z (pan na imagem); θ2\theta_2 a ωy\omega_y (tilt).

4.3 Lei de controle discreta

Δq=λLscara1e\boxed{\Delta\mathbf{q}=-\lambda\,\mathbf{L}_{\mathrm{scara}}^{-1}\,\mathbf{e}}

ou, explicitamente,

[Δθ0Δθ2]=λLscara1[c~x0,5c~y0,5],\begin{bmatrix}\Delta\theta_0\\\Delta\theta_2\end{bmatrix} =-\lambda\,\mathbf{L}_{\mathrm{scara}}^{-1} \begin{bmatrix}\tilde{c}_x-0{,}5\\\tilde{c}_y-0{,}5\end{bmatrix},

com ganho λ(0,1]\lambda\in(0,1] na prática (tipicamente 0,3\approx 0{,}3 se houver oscilação). Seguem saturação de passo Δθmax\Delta\theta_{\max} e limites mecânicos [θimin,θimax][\theta_i^{\min},\theta_i^{\max}].

4.4 Invertibilidade e singularidades

Lscara\mathbf{L}_{\mathrm{scara}} é invertível sse det(Lscara)0\det(\mathbf{L}_{\mathrm{scara}})\neq 0. No modelo simplificado,

det(Lscara)=fxfyZ2(yCxCeffzCeffxC).\det(\mathbf{L}_{\mathrm{scara}})=\frac{f_x f_y}{Z^2}\bigl(-y_C\,x_C^{\mathrm{eff}}-z_C^{\mathrm{eff}}\,x_C\bigr).

A singularidade ocorre quando o ponto 3D está alinhado com o eixo de tilt da câmera (xC=yC=0x_C=y_C=0) — tipicamente diretamente abaixo da câmera. Próximo à singularidade, usa-se a pseudo-inversa de Moore–Penrose ou regularização de Tikhonov:

Lscara1(LscaraLscara+μI)1Lscara,μ>0.\mathbf{L}_{\mathrm{scara}}^{-1}\approx\bigl(\mathbf{L}_{\mathrm{scara}}^\top\mathbf{L}_{\mathrm{scara}}+\mu\mathbf{I}\bigr)^{-1}\mathbf{L}_{\mathrm{scara}}^\top,\qquad\mu>0.

4.5 Convergência local

Sob Lscara\mathbf{L}_{\mathrm{scara}} constante (válido para pequenos deslocamentos) e invertível, o sistema discreto

qk+1=qkλLscara1ek\mathbf{q}_{k+1}=\mathbf{q}_k-\lambda\mathbf{L}_{\mathrm{scara}}^{-1}\mathbf{e}_k

satisfaz qk+1q=1λqkq\|\mathbf{q}_{k+1}-\mathbf{q}^*\|=|1-\lambda|\,\|\mathbf{q}_k-\mathbf{q}^*\|. Convergência local exige 1λ<1|1-\lambda|<1, i.e.\ λ(0,2)\lambda\in(0,2), desde que o ponto clicado seja atingível pelo robô.


5. Protocolo de execução de waypoints

5.1 Captura

Lista W=\mathcal{W}=\emptyset; a cada clique, normalizar e armazenar wi=(c~x,c~y)\mathbf{w}_i=(\tilde{c}_x,\tilde{c}_y).

5.2 Waypoint único

  1. e=(c~x0,5,c~y0,5)\mathbf{e}=(\tilde{c}_x-0{,}5,\,\tilde{c}_y-0{,}5).
  2. Se e<εtol\|\mathbf{e}\|<\varepsilon_{\mathrm{tol}}, retornar (já centrado).
  3. Δq=λLscara1e\Delta\mathbf{q}=-\lambda\mathbf{L}_{\mathrm{scara}}^{-1}\mathbf{e}; saturar Δθi\Delta\theta_i.
  4. qnew=qcurr+Δq\mathbf{q}_{\mathrm{new}}=\mathbf{q}_{\mathrm{curr}}+\Delta\mathbf{q}; clamp mecânico.
  5. Comandar servos; aguardar confirmação de posição (feedback ou timeout).
  6. Declarar waypoint concluído.

5.3 Sequência

Para cada wkW\mathbf{w}_k\in\mathcal{W}: executar o passo único; opcionalmente recapturar e refinar se e>εtol\|\mathbf{e}\|>\varepsilon_{\mathrm{tol}} (modo iterativo). Retorno a q0\mathbf{q}_0 (home) ao fim.

O fluxograma abaixo formaliza esse laço. O ramo Não (eε\|\mathbf{e}\|\geq\varepsilon) calcula Δq\Delta\mathbf{q}, move os servos e aguarda posicionamento antes de recapturar a imagem — a sincronização servo–imagem que evita operar sobre quadro desatualizado. O ramo Sim declara o waypoint concluído e avança para o próximo clique da lista W\mathcal{W}.


6. Calibração, profundidade e diagnóstico

6.1 Intrínsecos e profundidade

K\mathbf{K} via padrão xadrez / ChArUco. A profundidade ZZ entra em Lscara\mathbf{L}_{\mathrm{scara}}; opções documentadas: (i) plano de trabalho a altura conhecida; (ii) RGB-D; (iii) estéreo no payload; (iv) Z=ZnominalZ=Z_{\mathrm{nominal}} constante para superfícies aproximadamente planas (caso típico da bandeja Atomos).

6.2 Matriz de diagnóstico

SintomaCausa provávelSolução
Oscilação em torno do alvoλ\lambda altoReduzir para 0,3\approx 0{,}3
Não convergeL\mathbf{L} ou ZZ incorretosRecalibrar ZZ; verificar sinais
Movimento em um só eixodet(L)0\det(\mathbf{L})\approx 0Pseudo-inversa; evitar alinhamento central
Direção opostaSinal invertido em L\mathbf{L}Inverter u/θ0\partial u/\partial\theta_0 ou v/θ2\partial v/\partial\theta_2
Atraso comando–imagemLatência de servo/COMConfirmar posição antes de nova captura

6.3 Verificação empírica de sinais

Com alvo visível em θ0=θ2=0\theta_0=\theta_2=0: aplicar Δθ0>0\Delta\theta_0>0 e observar se o alvo move para a esquerda (u/θ0<0\partial u/\partial\theta_0<0) ou direita (>0>0); idem para Δθ2\Delta\theta_2 e v/θ2\partial v/\partial\theta_2 (cima/baixo).

6.4 Extensões

  • Modo iterativo: qk+1=qkλkL1ek\mathbf{q}_{k+1}=\mathbf{q}_k-\lambda_k\mathbf{L}^{-1}\mathbf{e}_k com gain scheduling (λk\lambda_k decrescente).
  • Dinâmica de servos: τwait=τservo+τcom+τimage\tau_{\mathrm{wait}}=\tau_{\mathrm{servo}}+\tau_{\mathrm{com}}+\tau_{\mathrm{image}} (RC típico 100–200 ms).
  • Suavização: spline cúbica q(t)\mathbf{q}(t) entre waypoints com q˙(0)=q˙(T)=0\dot{\mathbf{q}}(0)=\dot{\mathbf{q}}(T)=\mathbf{0}.

7. Parâmetros do protocolo

ParâmetroValor / papel
DOF no laçoθ0\theta_0 (pan), θ2\theta_2 (tilt)
Erroe=(c~x0,5,c~y0,5)\mathbf{e}=(\tilde{c}_x-0{,}5,\,\tilde{c}_y-0{,}5)
LeiΔq=λLscara1e\Delta\mathbf{q}=-\lambda\mathbf{L}_{\mathrm{scara}}^{-1}\mathbf{e}
λ\lambda teórico(0,2)(0,2) para convergência local
λ\lambda prático(0,1](0,1]; 0,3\approx 0{,}3 se oscilar
Singularidadeponto sob a câmera; Tikhonov / L+\mathbf{L}^{+}
ZZnominal do plano de trabalho (bandeja)
Sincronizaçãoaguardar posição antes do próximo quadro
Montagemeye-in-hand no payload MSI

8. Limitações e validade

  1. Não é IBVS contínuo. Um passo por waypoint assume linearidade local; erros grandes ou ZZ mal estimado degradam o mapeamento.
  2. Dependência de ZZ. Sem profundidade medida, ZnominalZ_{\mathrm{nominal}} falha em relevo acentuado da amostra.
  3. Servo 1 fora do laço. Extensão do braço não é comandada pelo erro de pixel; o envelope de atingibilidade é o de pan/tilt na configuração atual.
  4. Calibração hand-eye. T2C\mathbf{T}_{2C} incorreta propaga erro sistemático de direção (sintoma “move ao contrário”).
  5. Latência. Sem confirmação de posição, o próximo clique opera sobre imagem desatualizada — falha de sincronização, não de Jacobiana.
  6. Escopo. O documento é de modelagem e implementação; não reporta métricas experimentais de erro residual em pixels nem taxa de sucesso por sequência de waypoints.

9. Direções de pesquisa

No horizonte do Atomos e da célula inline de carcaças:

  • Fechar o laço iterativo com critério e<ε\|\mathbf{e}\|<\varepsilon em pixels e log de convergência por waypoint.
  • Integrar profundidade (RGB-D ou Kinect do ecossistema) em Lscara(Z)\mathbf{L}_{\mathrm{scara}}(Z).
  • Planejador de 5 poses anatômicas multiangulares sobre a carcaça, usando a mesma lei de centragem por ROI.
  • Migrar de SCARA 3-DOF para manipulador de 6 eixos, preservando a interface clique→centro como camada de especificação de tarefa.
  • Validação quantitativa: erro residual médio, tempo até confirmação, robustez a variação de ZZ na bandeja MSI.

10. Conclusão

No âmbito do posicionamento do cabeçote Atomos MSI, o controle visual do SCARA 3-DOF formaliza o waypoint como erro de pixel puro e a atuação como correção discreta via Jacobiana de imagem invertida. A cadeia TBC\mathbf{T}_{BC}, a projeção K\mathbf{K} e a lei Δq=λLscara1e\Delta\mathbf{q}=-\lambda\mathbf{L}_{\mathrm{scara}}^{-1}\mathbf{e} respondem a Q1–Q2 sob hipóteses locais e λ(0,2)\lambda\in(0,2); a prática (Q3) concentra-se em sinais de L\mathbf{L}, calibração de ZZ e sincronização servo–imagem. Esse eixo não substitui o IBVS clássico de alta taxa — fornece o modelo mínimo necessário para que o operador especifique regiões de aquisição espectral por clique, com o robô centrando a cena antes de cada ciclo LED. A validade operacional depende, daqui em diante, de calibração hand-eye estável, profundidade conhecida do plano de trabalho e confirmação mecânica antes da captura multiespectral.


Referências

  • Chaumette, F., & Hutchinson, S. (2008). Visual servoing and visual tracking. In Springer Handbook of Robotics. Springer.
  • Espiau, B., Chaumette, F., & Rives, P. (1992). A new approach to visual servoing in robotics. IEEE Transactions on Robotics and Automation, 8(3), 313–326.
  • Corke, P. (2017). Robotics, Vision and Control: Fundamental Algorithms in MATLAB (2nd ed.). Springer.
  • Tsai, R. Y., & Lenz, R. K. (1989). A new technique for fully autonomous and efficient 3D robotics hand/eye calibration. IEEE Transactions on Robotics and Automation, 5(3), 345–358.
  • Malis, E. (2004). Visual servoing invariant to changes in camera intrinsic parameters. IEEE Transactions on Robotics, 20(1), 72–81.
  • Melo, L. S. (2026). Controle Visual de Robô SCARA com Câmera Montada no Efetuador — Correção de Posição Baseada em Erro de Pixel para Waypoints Interativos. Documento técnico Atomos MSI (docs/3DOF-Scara/main.tex).

Na série Tipificação e qualidade de carcaça

Pareamento verificável e análise por imagem de carcaças ovinas — Apex

Protocolo de aquisição e análise integrado à pesquisa de tipificação de carcaças ovinas por fotografia. Schema SQLite com vínculo imagem–animal–grau no ato da coleta, segmentação de gordura (ColorNaming + CNN, IoU ~0,92), convexidade integral-invariante do perfil e graus experimentais com status explícito na UI.

Série A · 1Computer Vision11 min

Segmentação de tecido com frontend ColorNaming congelado e decoder de 62 mil parâmetros

Arquitetura de dois estágios que combina um extrator ColorNaming sem treino com um decoder convolucional leve, avaliada na segmentação de gordura, músculo e fundo em carcaças ovinas.

Série A · 2Computer Vision5 min

Uma medida de convexidade invariante e sem treino para conformação de carcaças

Convexidade do perfil de carcaças ovinas calculada por um invariante integral de área, invariante a rotação, translação, escala e iluminação, sem qualquer etapa de treinamento.

Série A · 3Computer Vision6 min

Homologia persistente da cobertura de gordura como descritor de acabamento

Descritores topológicos invariantes a iluminação e pose, aplicados à máscara de gordura de carcaças ovinas, comparados com a transformada de scattering na classificação do grau de acabamento.

Série A · 4Computer Vision6 min

Protótipo multiespectral DIY para inspeção de carcaças bovinas e ovinas (660 nm + 850 nm)

Projeto de um sistema de refletância difusa de baixo custo com câmera Logitech C270 modificada, iluminação sequencial em 660 nm e 850 nm, normalização radiométrica e índices espectrais para segmentar músculo e gordura subcutânea em carcaças.

Working paperSérie A · 5Spectroscopy8 min

Simulação radiométrica de iluminação multiespectral LED para carcaça ovina

Modelo forward Lambertiano de um array de cinco bandas (UV–NIR) a 1 m e superfície procedural de Longissimus dorsi com mistura de mioglobina estilo Krzywicki. Uniformidade de irradiância na ROI ≥87%; gordura subcutânea espectralmente separável; músculo, perimísio e IMF quase sobrepostos no domínio espectral puro.

Série A · 6Spectroscopy15 min

MSI-sensor — imagem multiespectral proximal por LEDs discretos para solo e microbiota

Sensor open-source de aquisição sequencial UV–Vis (400, 450, 530, 620 nm; IR na v2) com ESP32-C3 e CMOS USB. Calibração radiométrica, Kubelka–Munk, índices de solo (BI, CI, RI, IOI), autofluorescência microbiana (44 colônias), dual UV–vermelho para carne, PCA/GLCM e enquadramento em sensoriamento remoto proximal — com roadmap JCDE de 8 bandas (365–940 nm) e lições PIXL/SHERLOC.

Série A · 7Remote Sensing19 min

Atomos MSI — plataforma robótica multiespectral para qualidade de carne e classificação de carcaças

Sistema de 5 bandas (365–850 nm) em SCARA 3-DOF com pilha Electron/FastAPI/BLE. Aquisição sequencial LED–CMOS, aproximação de Krzywicki por razões de absorbância, índices OxI/TVB-N/IFU e ensaio laboratorial em frango (classe Degradado; OxiMb 14,7%, MetMb 53,4%). Posicionado como instrumento de método e protótipo industrial sob MAPA IN 9/2004.

Working paperSérie A · 8Spectroscopy12 min