Pular para o conteúdo principal

Guia de Desenvolvimento do StackForce Giant Bipedal Wheeled Robot

dica

Este guia foi projetado para desenvolvedores profissionais e pesquisadores, oferecendo uma solução completa desde a configuração básica até o desenvolvimento de aplicações avançadas. Se você é iniciante, recomendamos começar pela versão Mini.

📋 Índice

Visão Geral do Produto

Posicionamento do Produto

O StackForce Giant Bipedal Wheeled Robot é um sistema de robô sobre rodas e pernas de nível profissional construído sobre a plataforma leve de desenvolvimento de robôs StackForce. Em comparação com a versão Mini, a versão completa apresenta melhorias significativas em configuração de hardware, funcionalidade de software e capacidade de expansão, sendo especificamente projetada para desenvolvimento profissional, pesquisa acadêmica e aplicações comerciais.

Arquitetura Técnica Central

Sistema de Controle Colaborativo de Dois Chips

  • Chip de Controle Principal S1: Responsável pelo controle de motor, execução do algoritmo FOC e controle de movimento
  • Chip Coprocessador S3: Responsável pelo controle de servo, fusão de sensores e comunicação sem fio

Modelo de Cinemática Omnidirecional

  • Algoritmo de cálculo de atitude baseado em quaternions
  • Solução de cinemática inversa em tempo real

Algoritmo Inteligente de Equilíbrio

  • Controle PID adaptativo
  • Ajuste dinâmico do centro de gravidade
  • Estabilização adaptativa em terrenos complexos

BOM Lista de Materiais

Lista de Materiais da Estrutura de Grande Roda-Perna

Nome do ItemQuantidadeObservações
Componentes Eletrônicos
Placa de Controle Principal StackForce1
Placa de Alta Corrente StackForce A1
Placa de Alta Corrente StackForce B1
Placa de Servo StackForce1
Placa CAN StackForce1
Placa de Expansão IO StackForce1
Placa Hall StackForce1
Peças Estruturais de Fibra de Carbono
Painel Lateral2Espessura de 5mm
Estrutura Base do Painel Lateral2Espessura de 3mm
Guia Frontal4Espessura de 5mm
Defletor2Espessura de 3mm
Peças Impressas em 3D em PLA
Perna Superior4
Perna Inferior4
Painel Frontal/Traseiro4
Conector de Painel Frontal/Traseiro4
Conector de Defletor4
Base de Controle Principal1
Tampa do Motor4
Placa de Cobertura V12
Placa de Cobertura V22
Compartimento da Bateria1
Tampa da Bateria1
Peças Usinadas em CNC
Conector de Perna 302
Conector de Perna 402
Perfil de Alumínio
4030100 espessura 1mm4Requer perfuração
6020320mm espessura 1mm2Requer perfuração
Fixadores
M2*101Cabeça arredondada preta
M3*84Cabeça arredondada
M3*832Preta, sextavada interna
M3*1012Preta, sextavada interna
M3*1416Preta, sextavada interna
M3*2012Preta, sextavada interna
M3*2524Preta, sextavada interna
M3*4016Preta, sextavada interna
M3*458Preta, sextavada interna
M3*508Preta, sextavada interna
M3*508Preta, cabeça chata
M4*3044Preta, sextavada interna
M4*302Cabeça arredondada preta
Pilar de Cobre22M3*8+4
Prisioneiro410M830
Porca M310Preta
Porca Travante M354Preta
Porca Travante M420Preta
Porca Travante M64
Porca Travante M84
Rolamento com Rosca Externa49C2L15M6
Rolamento F6000ZZ810268
Motores
Motor de Cubo 5,5 polegadas 24v2
GIM6010-8-Standard Version4

Recursos Principais

1. 🚀 Plataforma de Hardware de Alto Desempenho

Sistema de Controle Principal

  • Arquitetura de Dois Chips: Processamento colaborativo S1 + S3
  • Desempenho em Tempo Real: Tempo de resposta em nível de microssegundos
  • Interfaces de Expansão: Interfaces ricas I2C, SPI, PWM

Sistema de Controle de Movimento

  • Controle Vetorial FOC: Controle de torque preciso

2. 🧠 Sistema de Percepção Inteligente

Configuração de Sensores

  • IMU de Alta Precisão: Fusão de sensores de 9 eixos
  • Encoder Magnético: Realimentação de posição com precisão de 14 bits

3. 🌐 Poderosas Capacidades de Comunicação

Comunicação Sem Fio

  • WiFi 6: Transmissão de dados em alta velocidade
  • Bluetooth 5.2: Conexão de baixo consumo de energia
  • Protocolo Personalizado: Pilha de protocolo de comunicação eficiente para conexão com controle remoto

Interfaces Com Fio

  • USB Type-C: Depuração serial
  • Barramento CAN: Acionamento de motor

4. 🔧 Suporte Flexível ao Desenvolvimento

Cadeia de Ferramentas de Desenvolvimento

  • PlatformIO: Ambiente profissional de desenvolvimento embarcado
  • ROS/ROS2: Compatibilidade com o Sistema Operacional de Robôs

Ecossistema Open Source

  • Totalmente Open Source: Código de controle é open source
  • Design Modular: Facilita a expansão de funcionalidades

Início Rápido

Requisitos de Sistema

Requisitos de Hardware

  • Kit de Robô Versão Completa StackForce
  • Computador com Ubuntu 20.04+ ou Windows 10+ instalado
  • Pelo menos 8GB de RAM, 100GB de espaço de armazenamento disponível

Requisitos de Software

  • Visual Studio Code
  • Extensão PlatformIO IDE

Guia de Operação por Controle Remoto

1. Fiação do Receptor

O diagrama abaixo mostra a sequência de fios de saída do receptor; apenas os três fios a seguir são necessários: CH1/PPM, GND, VCC.

O receptor faz a saída na seguinte ordem: CH1/PPM, GND, VCC

A placa de expansão possui 40 pinos, com GND e 3V3 na fileira do meio, conforme mostrado no diagrama abaixo.

2. Pareamento de Frequência entre Receptor e Controle Remoto

Antes de fazer o pareamento de frequência, primeiro desligue o controle remoto, depois ligue e desligue o receptor três vezes em até 10 segundos para entrar no modo de pareamento. O indicador do receptor acenderá e apagará após um segundo.

Em seguida, mova a chave de habilitação do controle remoto para baixo para ativar a transmissão de sinal, mova o joystick esquerdo do controle remoto para a posição mais baixa e então ligue o controle remoto. O pareamento de frequência será bem-sucedido. Após o pareamento bem-sucedido, o indicador do receptor apagará.

3. Instruções Básicas de Uso do Controle Remoto

Funções dos Joysticks e Chaves

ControladorFunçãoDescrição
Joystick de HabilitaçãoSe o controle remoto envia sinal ou nãoDeve ser acionado antes de controlar o robô
Joystick Esquerdo (cima/baixo)Controlar a altura do robôPara cima eleva, para baixo abaixa
Joystick Esquerdo (esquerda/direita)Controlar a altura de ambos os lados das pernas do robôPrecisa habilitar a função de balanço do ombro
Joystick Direito (cima/baixo)Controlar o movimento para frente/para trás do robôPara cima move para frente, para baixo move para trás
Joystick Direito (esquerda/direita)Controlar a virada para esquerda/direita do robôVira para a esquerda, vira para a direita

Uso do Joystick Esquerdo com o Botão Esquerdo

  • Quando o botão esquerdo é girado no sentido horário até o topo: Mover o joystick esquerdo para baixo habilita a função de balanço do ombro; mover para cima desabilita
  • Quando o botão esquerdo é girado no sentido anti-horário até o fundo: Mover para baixo faz o robô pular, mover para cima desabilita o pulo

Joystick Direito e Botão Direito

  • O joystick direito possui três posições:

    • Posição superior: Desabilitar motor de cubo
    • Posição intermediária: Habilitar motor de cubo
    • Posição inferior: Ativar mecanismo autoestabilizante
  • Botão direito: Ajustar o desvio de equilíbrio

4. Etapas de Operação de Ligar o Robô

Processo Detalhado de Operação

  1. Preparação do Controle Remoto

    • Mova o joystick esquerdo do controle remoto até a posição mais baixa e então ligue o controle remoto
    • Certifique-se de que as pernas do robô estejam suspensas e paralelas ao solo
    • As pernas do robô devem ficar penduradas naturalmente, garantindo rotação suave das rodas para calibração
  2. Ligar o Robô

    • Ligue a chave de alimentação do robô
    • Aguarde a conclusão da calibração do motor de cubo
  3. Reset da Placa de Controle Principal

    • Mova o joystick esquerdo completamente para cima para resetar o chip S3 na placa de controle principal
    • Aguarde a conclusão da calibração
  4. Recolhimento das Pernas

    • Mova o joystick esquerdo completamente para baixo para recolher as pernas do robô
    • Coloque o robô no chão
  5. Ativação do Motor de Cubo

    • Mova o joystick direito para a posição intermediária para iniciar o motor de cubo
    • Se o robô não conseguir manter o equilíbrio, faça um ajuste fino no botão direito do controle remoto até que o robô mantenha o equilíbrio
atenção

Lembretes Importantes:

  • Não descarregue demais a bateria do controle remoto
  • Você pode usar um multímetro para medir a tensão da bateria
  • A faixa normal de descarga é geralmente de 25-21V
  • Se a tensão cair abaixo de 21V, carregue a bateria a tempo
  • Se você não entender as etapas acima, pode entrar em contato com a equipe técnica para assistir ao vídeo de operação de ligar o robô!

Guia de Depuração do Sistema

dica

Esta seção usa o número de ID da placa do motor de junta como rótulo para explicação. Conecte estritamente de acordo com o diagrama de fiação.

1. Guia de Fiação

dica

Diagrama de Fiação - Faça a fiação estritamente de acordo com o diagrama para garantir que cada conexão esteja correta

Overall wiring diagram

1. Fiação do Motor de Cubo

Fiação da linha trifásica do motor de cubo e da linha trifásica Hall:

  • Sequência de soldagem dos fios trifásicos do motor de cubo (da esquerda para a direita): Verde, Amarelo, Azul
  • Sequência dos fios do encoder (da esquerda para a direita): Amarelo, Verde, Azul, Preto, Vermelho

Diagrama detalhado de fiação:

Motor wiring detail image 1

Figura 1: Fiação da linha trifásica do motor

Motor wiring detail image 2

Figura 2: Detalhes da fiação do encoder

Distribuição da fiação dos motores de cubo esquerdo e direito:

  • Motor de cubo esquerdo:
    • Linha trifásica → Placa de alta corrente B
    • Linha do encoder Hall → Porta M0 da placa Hall

Esquema detalhado de fiação das rodas esquerda e direita:

Left hub motor wiring

Esquema de fiação do motor de cubo esquerdo

Right hub motor wiring

Esquema de fiação do motor de cubo direito

2. Gravação do Firmware S1

Preparação antes da gravação

atenção

Lembrete Importante - A direção de inserção do cabo USB é crucial, a inserção incorreta pode causar danos ao dispositivo

  1. Insira a ponta tipo-c do cabo USB com o lado da emenda voltado para baixo na interface tipo-c da placa de controle principal
  2. Verifique o LED indicador da placa de controle principal:
    • Se a placa de controle principal acender amarela → Normal, pode gravar diretamente
    • Se a placa de controle principal acender verde → Pressione o botão branco de travamento automático ao lado para alternar para a luz amarela
USB cable insertion direction diagram

⚠️ Observe a direção de inserção do cabo USB

Etapas de gravação

Passo 1: Abrir a ferramenta de gravação

  1. Clique duas vezes para abrir a ferramenta flash_download_tool_3.9.2.exe
  2. Após a ferramenta abrir, uma caixa de diálogo aparecerá, selecione ESP32
Flashing tool startup interface

Passo 2: Selecionar o arquivo de firmware

  1. Clique nos três pontos (ícone 📁) na primeira linha
  2. Na pasta que abrir, selecione o arquivo target.bin
Firmware file selection interface

Passo 3: Configurar os parâmetros de gravação

info

Lista de Verificação de Configuração de Parâmetros - Configure de acordo com os seguintes parâmetros para garantir a gravação bem-sucedida

Configure os seguintes parâmetros:

  1. Selecionar caminho do arquivo (exibido automaticamente)
  2. Marcar seleção
  3. Endereço de escrita: 0x00
  4. Frequência de clock: 80MHz
  5. Modo de flash: QIO
  6. Seleção de porta serial: Verifique a porta correspondente ao CH340 através do Gerenciador de Dispositivos
  7. Taxa de baud: 921600
Flashing parameter configuration 1

📋 Etapa 1 de configuração de parâmetros

Flashing parameter configuration 2

📋 Etapa 2 de configuração de parâmetros

Flashing parameter configuration 3

📋 Etapa 3 de configuração de parâmetros

Passo 4: Verificar resultados da gravação Após a gravação bem-sucedida:

  1. Monte a placa e conecte os fios
  2. Abra o assistente serial (VOFA) e selecione a porta correspondente
  3. Ligue o robô:
    • Primeiro ligue o controle remoto
    • Empurre o joystick esquerdo do controle remoto para cima
    • Empurre a alavanca superior direita para cima (posição L)
  4. Pressione o botão de reset do chip S1 (posição marcada com caixa vermelha)
success

Etapas de Verificação - Verifique de acordo com as seguintes etapas após a conclusão da gravação

S1 chip reset button position

✅ Posição do botão de reset do chip S1

Serial debugging assistant interface

📊 Interface do assistente de depuração serial

Se as informações impressas na serial forem como mostrado na figura abaixo, significa que a fiação do motor de cubo está correta e o firmware S1 foi gravado com sucesso.

Flashing success verification information

🎉 Gravação bem-sucedida! Ver esta mensagem indica que tudo está normal

3. Verificando a Resistência de Terminação

Números de ID da Placa Controladora do Motor de Junta

As placas controladoras dos motores de junta têm firmware gravado antes do envio e são etiquetadas com rótulos que são os números de CAN ID:

Posição da JuntaNúmero CAN ID
Placa controladora do motor da junta dianteira esquerda0x04
Placa controladora do motor da junta dianteira direita0x03
Placa controladora do motor da junta traseira esquerda0x02
Placa controladora do motor da junta traseira direita0x01

Conexão e Configurações de Resistência de Terminação

  1. Usar cabo XT30 (2+2) para conexão:

    • Conecte as quatro placas controladoras de motor de junta em série
    • Só é necessário abrir a resistência de terminação de uma das placas controladoras de motor na fiação
    • As outras três não precisam abrir resistência de terminação
  2. Verificação da Resistência de Terminação da Placa CAN:

    • Verifique se a resistência de terminação na placa CAN está aberta
    • Use o modo de resistência de um multímetro para medir a resistência dos terminais H e L da placa CAN
    • A resistência normal deve ser em torno de 60Ω
  3. Solução de Problemas:

    • Se a resistência estiver incorreta, verifique se os interruptores de resistência de terminação na parte de trás das outras três placas controladoras de motor de junta estão fechados
    • Certifique-se de que apenas uma resistência de terminação esteja em estado aberto

4. Calibrando a Posição Zero

Passo 1: Modificar Configurações de Código

No arquivo can.cpp:

  1. Role para baixo para encontrar a função CAN_control()
CAN_control function in can.cpp file

📝 Localização do código-chave em can.cpp

No arquivo main.cpp:

posInit function in main.cpp file

📝 Localização do código-chave em main.cpp

Passo 2: Preparação de Hardware e Gravação

  1. Preparação do robô:

    • Primeiro deixe as pernas do motor de junta penduradas naturalmente para baixo na vertical
    • Insira o cabo USB na placa de controle principal (observe que o lado da interface tipo-c com a emenda fica para baixo, o lado sem emenda fica para cima)
    • Após a inserção, a porta serial S3 da placa de controle principal deve acender luz verde
    • Se acender amarela, pressione o botão branco na placa de controle principal para alternar para o chip S3
  2. Gravação do Programa:

    • Grave o programa modificado
Hardware preparation completed diagram

🔧 Estado de conclusão da preparação de hardware

  1. Teste de Energização:

    • Abra o assistente serial após gravar o programa
    • Ligue o robô (empurre a alavanca superior direita do controle remoto para cima (L))
    • Redefina o chip S3
    • Observe que os ângulos iniciais dos motores de junta impressos pela porta serial estão todos próximos de 0
  2. Verificar Dados de Ângulo:

    • Balance um dos grandes braços do robô
    • Os dados que mudarem correspondem aos dados de ângulo daquela posição do grande braço
Serial output angle data verification

📊 Saída serial - verificação de dados de ângulo

Passo 3: Concluir Configurações da Posição Zero

No arquivo main.cpp:

main.cpp zero position setting completed

✅ Configuração da posição zero em main.cpp concluída

No arquivo can.cpp:

  1. Após comentar posInit(), você precisa remover o comentário do envio de comandos CAN na função CAN_Control() no arquivo can.cpp
  2. Comente a impressão do ângulo elétrico do motor de junta
can.cpp final configuration

✅ configuração final de can.cpp concluída

Etapa 4: Ajuste Final

  1. Regrave o programa no chip S3
  2. Teste de Controle:
    • Ligar o robô
    • Controlar o joystick de altura das pernas
    • Observar se as mudanças na altura das pernas seguem o controle do joystick esquerdo
  3. Ajuste de Balanceamento de Altura:
    • Colocar o robô no chão
    • Recolher as pernas do robô ao mínimo
    • Observar se as alturas em ambos os lados do plano do robô são consistentes
    • Se não forem consistentes, ajustar os valores leftY e rightY no arquivo robot.cpp

Diagrama de Ajuste de Balanceamento de Altura:

Height adjustment before and after comparison 1

⚖️ Diagrama de ajuste de altura - antes do ajuste

Height adjustment before and after comparison 2

⚖️ Diagrama de ajuste de altura - depois do ajuste

5. Depuração de Valores de Parâmetros PID

Preparação para Depuração

Interface de Depuração de Parâmetros PID:

PID parameter debugging step 1

🔧 Etapas de depuração PID - comentários de função

PID parameter debugging step 2

🔧 Etapas de depuração PID - impressão de parâmetros

Etapas de Depuração

Depurar parâmetros PID em três valores de altura:

Valor de AlturaPosição CorrespondentePreencher Parâmetros
0Ponto mais baixopid0
100Ponto médiopid1
200Ponto mais altopid2

Cada parâmetro pid inclui:

  • Kp do loop de velocidade
  • Kp do loop de verticalidade
  • Kd do loop de verticalidade
  • Kp do eixo X do robô

Processo de Depuração

  1. Depurar cada altura individualmente:

    • Depurar os valores de parâmetros PID para três diferentes valores de altura separadamente
    • Garantir que o robô possa manter o equilíbrio em cada altura
  2. Preencher parâmetros:

    • Preencher os parâmetros PID depurados dos três valores de altura na função de ajuste linear PID em ordem
    • Preencher os valores de parâmetros PID do ponto mais baixo em pid0
    • Preencher os valores de parâmetros PID do ponto médio em pid1
    • Preencher os valores de parâmetros PID do ponto mais alto em pid2
  3. Verificação final:

    • Após concluir a depuração, remova o comentário da função de ajuste linear PID
    • Gravar o programa no S3
    • Ligar o robô de acordo com as etapas de energização do robô
    • Verificar em solo se os parâmetros PID atendem ao equilíbrio de movimento e aos requisitos operacionais do robô
dica

Se você precisar consultar vídeos de operação, pode entrar em contato com a equipe técnica no grupo para obter o vídeo de operação de energização do robô!

Montagem de Hardware

Guia Detalhado de Montagem

Documentos e Vídeos de Montagem

📄 Documentos de Montagem
🔧 Ferramentas de Desenvolvimento
💻 Firmware e Programas
📚 Documentação Técnica
🗂️ Modelos 3D e Esquemáticos
🎥 Tutoriais em Vídeo

Etapas Detalhadas de Montagem

Fase 1: Construção da Estrutura Mecânica

  • Montar a estrutura da base
  • Instalar os componentes de roda-perna
  • Conectar a estrutura do corpo principal

Fase 2: Integração do Sistema Eletrônico

  • Instalar o sistema de controle principal (placas S1/S3)
  • Configurar módulos de sensores
  • Configurar interfaces de comunicação

Fase 3: Depuração do Sistema

  • Executar auto-verificação de hardware
  • Verificar a funcionalidade do sistema

Conclusão

O Robô Gigante Bípede com Rodas StackForce representa o mais recente nível de desenvolvimento da tecnologia de robôs roda-perna. Estamos empenhados em fornecer aos desenvolvedores as ferramentas mais poderosas e o suporte mais abrangente para promover conjuntamente o desenvolvimento da tecnologia de robôs.

Seja você estudante, pesquisador ou engenheiro, StackForce pode oferecer uma plataforma inovadora com possibilidades ilimitadas. Esperamos ver você criar aplicações incríveis!

Suporte Técnico & Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...