Robótica e Visão Computacional em Python Sem Licenças MATLAB Pagas
Por Que Engenheiros de Robótica Ficaram Presos ao MATLAB por Tanto Tempo
Se você estudou ou trabalhou em robótica há cinco a dez anos, provavelmente lembra da Robotics Toolbox para MATLAB. Peter Corke a criou em meados dos anos 1990. Por um longo tempo, esta biblioteca permaneceu como o padrão para academia e laboratórios de engenharia. Precisava construir uma matriz de transformação espacial, plotar uma trajetória de manipulador ou calcular cinemática inversa—você imediatamente abria o MATLAB.
O principal inconveniente é imediatamente aparente: custos de licenciamento. Integrar código MATLAB em pipelines de produção modernos também apresenta desafios significativos. Há alguns anos, o autor reescreveu completamente as ferramentas em Python e, em 2023, lançou a terceira edição do livro Robotics, Vision & Control junto com o repositório open-source RVC3-python.
O Que Está Incluído
O repositório contém exemplos e um wrapper unificado para quatro bibliotecas especializadas:
- Robotics Toolbox lida com cinemática, dinâmica e trajetórias de manipuladores.
- Machine Vision Toolbox aborda processamento de imagem, detecção de pontos de interesse e visão estéreo.
- Spatial Maths Toolbox cuida da matemática de transformações 3D, quaternions e grupos de Lie SE(3)/SO(3).
- BDSim ajuda a simular sistemas dinâmicos e diagramas de blocos.
Todo o código-fonte é distribuído sob a licença MIT. Para eliminar o gerenciamento manual de dependências, os criadores empacotaram tudo em um único pacote.
Início Rápido via Console Interativo
Os desenvolvedores criaram um utilitário CLI conveniente rvctool. Ele inicia uma sessão IPython com todos os módulos necessários, funções matemáticas e modelos prontos de hardware popular pré-importados.
A instalação leva um comando:
pip install rvc3python
Então inicie o ambiente de trabalho:
rvctool
O console segue a experiência de sintaxe do MATLAB. Se você omitir o ponto e vírgula no final de uma linha, o resultado da expressão é impresso imediatamente no terminal. Ao mesmo tempo, você tem acesso completo ao Python regular com todas as suas conveniências.
Cinemática de Manipulador em Algumas Linhas
Vamos definir um modelo do robô industrial Franka Emika Panda, calcular a pose da flange e resolver o problema de cinemática inversa.
panda = models.ETS.Panda()
T = panda.fkine(panda.qz)
sol = panda.ikine_LM(SE3.Trans(0.4, 0.5, 0.2) * SE3.Ry(np.pi/2))
O método fkine calcula a cinemática direta e retorna uma matriz de transformação rígida SE3. O método ikine_LM encontra os ângulos das juntas usando o algoritmo de Levenberg-Marquardt.
Chamar o método panda.teach(panda.qz) abre uma janela gráfica onde você pode mover os sliders das juntas e observar as poses do robô mudando.

Processamento de Imagem e Visão Computacional
Para tarefas básicas de visão computacional, não há necessidade de conectar frameworks externos pesados. Por exemplo, correspondência de keypoints SIFT em dois quadros fica assim:
sf1 = Image.Read("eiffel-1.png", mono=True).SIFT()
sf2 = Image.Read("eiffel-2.png", mono=True).SIFT()
matches = sf1.match(sf2)
matches.subset(100).plot("w")
Por baixo dos panos, ele usa NumPy e SciPy testados em batalha. Se você precisar de exemplos de deep learning do Capítulo 11 do livro (como segmentação por rede neural), o PyTorch é carregado com uma flag separada:
pip install rvc3python[pytorch]
Simulação de Sistemas de Controle
O pacote bdsim merece menção especial. É uma tentativa de criar uma alternativa ao Simulink sem o ambiente de desenvolvimento pesado.
Diagramas de blocos são criados diretamente em código Python ou montados visualmente através do editor gráfico bdedit. Os dados são salvos em arquivos JSON comuns com a extensão .bd. O repositório já inclui 25 modelos tutoriais prontos do livro, que você pode executar diretamente de rvctool.
Pontos a Considerar Antes de Executar
Antes de começar, há três pontos dignos de nota:
- Python 3.8 ou superior é necessário devido ao uso ativo de type annotations.
- Chips Apple Silicon (M1/M2/M3) podem ter problemas de renderização com o Open3D. A wiki do projeto tem uma página separada com soluções alternativas.
- O código funciona no Jupyter Notebook e Google Colab, mas animações 3D complexas podem apresentar lentidão devido às especificidades da transmissão de quadros para a interface web.
Quem Encontrará Este Repositório Útil
Se você ensina robótica, está escrevendo uma tese, pesquisando algoritmos de navegação, ou quer testar rapidamente uma hipótese sem configurar ambientes pesados como o ROS 2, o RVC3-python economizará muito do seu tempo. O projeto elimina a necessidade de escrever wrappers personalizados para matrizes de transformação e fornece uma base pronta para prototipagem.
Projetos relacionados