Calibração Automática Mão-Olho para Robôs Industriais com OpenCV em C++
Este artigo detalha o processo de calibração automática mão-olho ("eye-in-hand") utilizando OpenCV em C++. O cenário de aplicação envolve um braço robótico de seis eixos que executa tarefas de inserção, onde uma câmera montada na ferramenta (gripper) do robô captura um objeto para alinhá-lo com um alvo.
Princípios da Calibração
1. Sis ...
Publicado em 7-13 12:55
Resolução de Problemas com Busca Binária em C++
Introdução à Busca Binária em Problemas de Programação Competitiva
A busca binária é um algoritmo fundamental amplamente utilizado na programação competitiva devido à sua eficiência (complexidade de tempo logarítmica O(log N)). Este artigo explora diversas aplicações da busca binária em problemas comuns, desde a localização de elementos até a c ...
Publicado em 7-13 10:38
Análise reversa de aplicações Qt em C++ com Ghidra
Introdução
Analisar aplicações compiladas a partir de C++ é consideravelmente mais desafiador do que trabalhar com código C, principalmente devido a construções como classes, polimorfismo, herança e templates. No entanto, ao final, todo objeto ocupa um bloco contínuo de memória e toda função é chamada por mecanismos previsíveis. Compreender o A ...
Publicado em 7-13 09:32
Desenvolvimento de Robô Bípede com Arduino Uno e Cinemática Inversa
A construção de um robô bípede exige não apenas precisão mecânica, mas também um controle lógico refinado para coordenar os movimentos de múltiplas articulações de forma síncrona. Utilizando uma placa Arduino Uno, é possível controlar seis servomotores que compõem os eixos das pernas (quadril, joelho e tornozelo), permitindo a execução de ciclo ...
Publicado em 7-13 07:14
Segment Trees: Estrutura e Aplicações
Uma Segment Tree é uma estrutura de dados do tipo árvore binária, projetada para particionar intervalos em subintervalos unitários. Cada folha corresponde a um elemento da sequência original, facilitando operações eficientes em intervalos específicos. Essa estrutura permite consultas em O(log N), tornando-a ideal para problemas que envolvem bus ...
Publicado em 7-13 07:12
Armazenando Arquivos em Banco de Dados MySQL com Qt
Durante o desenvolvimento de uma aplicação desktop com Qt, surgiu a necessidade de salvar arquivos gerados pelo programa diretamente no banco de dados MySQL.
Inicialmente, tentei ler o arquivo para uma variável do tipo QByteArray e inserir em um campo do tipo mediumblob, porém os dados sempre apareciam como NULL na tabela. Também tentei utiliza ...
Publicado em 7-13 03:00
Análise pós-concurso do AtCoder Beginner Contest 383
Problema A
A solução é uma simulação direta. Não há grandes complicações.
int main() {
int linhas, colunas;
cin >> linhas >> colunas;
vector grade(linhas);
for (int i = 0; i < linhas; i++) cin >> grade[i];
int contador = 0;
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
if (grade[i ...
Publicado em 7-13 02:36
Compilação da Biblioteca Boost no Ambiente Windows
Compilação da Biblioteca Boost 1.69.0 no Windows
Download do Boost 1.69.0
Baixe o arquivo boost_1_69_0.zip do site oficial do Boost. Extraia o conteúdo para um diretório de sua escolha, por exemplo, E:\fonte\boost_1_69_0.
Compilação do Boost 1.69.0
No diretório extraído, execute o script bootstrap.bat. Isso gerará a ferramenta de build bjam.exe ...
Publicado em 7-12 19:52
Fundamentos de Redes TCP, C++ Moderno e Estruturas de Dados para Backend
Mecanismos de Retransmissão do Protocolo TCP
O protocolo TCP garante a entrega confiável de dados através de diversos mecanismos de retransmissão. Abaixo estão os principais métodos utilizados:
1.1. Retransmissão por Tempo Limite (Timeout Retransmission)
Este é o mecanismo mais fundamental. O TCP associa um temporizador (RTO - Retransmission ...
Publicado em 7-12 17:52
Explorando Variações do Problema da Mochila com Programação Dinâmica
Problema da Mochila 0/1 (0-1 Knapsack)
No cenário clássico da mochila 0/1, dispomos de $N$ itens e uma mochila com capacidade máxima $V$. Cada item possui um volume $v_i$ e um valor $w_i$. A restrição fundamental é que **cada item pode ser escolhido apenas uma vez**. O objetivo é maximizar o valor total sem exceder a capacidade $V$. ### Defi ...
Publicado em 7-12 10:06