Pular para o conteúdo principal

🔋 Sistema de Energia e Bateria

Objetivo

Dominar o sistema de energia do G1: bateria, BMS, carregamento, otimização de autonomia e segurança.


🔋 Bateria Principal

Especificações Técnicas

Tipo: LiPo 12S (12 células em série)

┌─────────────────────────────────────┐
│ UNITREE G1 BATTERY PACK │
├─────────────────────────────────────┤
│ Configuração: 12S2P │
│ • 12 cells em série (voltagem) │
│ • 2 cells em paralelo (capacidade) │
├─────────────────────────────────────┤
│ Voltagem Nominal: 48V (44.4V) │
│ Voltagem Máxima: 50.4V │
│ Voltagem Mínima: 36V │
├─────────────────────────────────────┤
│ Capacidade: 9000mAh (9Ah) │
│ Energia Total: 432 Wh │
│ Corrente Contínua: 30A │
│ Corrente Pico: 90A (10s) │
├─────────────────────────────────────┤
│ Peso: 2.1kg │
│ Dimensões: 250x150x80mm │
│ Química: LiPo (LiCoO₂) │
└─────────────────────────────────────┘

Química da Bateria

LiPo vs Outras Tecnologias:

TipoEnergia/kgPotência PicoCiclosCusto
LiPo180 Wh/kg⭐⭐⭐⭐⭐500💰💰
Li-Ion250 Wh/kg⭐⭐⭐1000💰💰💰
LiFePO₄120 Wh/kg⭐⭐2000💰
NiMH80 Wh/kg⭐⭐500💰

Vantagens LiPo para Robótica:

  1. Alta potência de pico (90A = 4.3kW!)

    • Necessário para saltos, corrida
    • Motores podem puxar muita corrente instantaneamente
  2. Baixa resistência interna

    • Menos aquecimento durante descarga
    • Voltagem estável mesmo com alta carga
  3. Formato flexível

    • Pode ser moldada no quadril do robô
    • Centraliza peso (melhor para balanço)

Desvantagens:

  • ❌ Ciclos de vida menor (500 vs 1000 Li-Ion)
  • ❌ Mais perigosa se mal utilizada (risco de fogo)
  • ❌ Degrada mais rápido se armazenada carregada

🛡️ BMS (Battery Management System)

Funções do BMS

O BMS é o "cérebro" que protege a bateria e maximiza vida útil.

Proteções Implementadas:

  1. Sobre-corrente (Overcurrent Protection)

    Se corrente > 90A por <10s → Desliga saída
  2. Sub-voltagem (Under-voltage Protection)

    Se qualquer célula < 3.0V → Desliga para proteger
  3. Sobre-voltagem (Over-voltage Protection)

    Se qualquer célula > 4.25V → Para carregamento
  4. Temperatura

    Se temp > 60°C → Reduz corrente máxima
    Se temp > 70°C → Desliga emergência
    Se temp < 0°C → Bloqueia carregamento
  5. Balanceamento de Células

    Durante carga, equaliza voltagem de todas células
    Método: Passive balancing (dissipa excesso em resistor)

Leitura de Dados do BMS

from unitree_sdk import Robot

robot = Robot()
battery = robot.get_battery_status()

print(f"🔋 Estado da Bateria")
print(f"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
print(f"Voltagem Total: {battery.voltage:.2f}V")
print(f"Corrente: {battery.current:.2f}A")
print(f"SOC (Estado): {battery.soc}%")
print(f"Capacidade Resta: {battery.remaining_capacity:.2f}Ah")
print(f"Temperatura: {battery.temperature}°C")
print(f"Ciclos de Vida: {battery.cycle_count}")
print(f"Health: {battery.health}%")
print(f"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")

# Voltagens individuais das células
for i, cell_v in enumerate(battery.cell_voltages):
print(f"Célula {i+1:2d}: {cell_v:.3f}V")

# Checar warnings
if battery.soc < 20:
print("⚠️ Bateria baixa! Retornar à base.")

if battery.temperature > 55:
print("⚠️ Bateria quente! Reduzir carga.")

if max(battery.cell_voltages) - min(battery.cell_voltages) > 0.1:
print("⚠️ Células desbalanceadas! Fazer carga completa.")

⚡ Sistema de Carregamento

Carregador Oficial

Unitree G1 Smart Charger

Especificações:
├─ Input: 100-240V AC (universal)
├─ Output: 50.4V DC @ 5A (252W)
├─ Tempo de Carga:
│ ├─ 0→80%: 1.5h (fast charge)
│ ├─ 80→100%: 0.5h (trickle charge)
│ └─ Total: ~2h
├─ Proteções:
│ ├─ Curto-circuito
│ ├─ Sobre-temperatura
│ ├─ Polaridade reversa
│ └─ EMI filtering
└─ Conectividade:
└─ LED status + comunicação BMS

Processo de Carregamento

CC-CV Protocol (Constant Current - Constant Voltage):

Corrente/Voltagem

5A ├─────────┐ STAGE 1: CC (Constant Current)
│ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
│ │ • 5A constante
│ │ • Voltagem sobe gradualmente
│ │ • 0% → 80% SOC
│ └──────────┐ • Rápido (~1.5h)
│ │
│ │ STAGE 2: CV (Constant Voltage)
│ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
│ │ • 50.4V constante
│ └── • Corrente cai gradualmente
│ • 80% → 100% SOC
0A └─────────────────────── • Lento (~0.5h) para balancear células
0% 80% 100%
Estado de Carga (SOC)

Por que CV é lento?

  • Células precisam balancear
  • Previne sobre-voltagem em células individuais
  • Maximiza vida útil da bateria

📊 Autonomia e Otimização

Consumo por Atividade

Benchmark Oficial:

AtividadePotência MédiaAutonomia
Standby (motores off)20W20h+
Damping (gravidade)50W8h
Parado em pé80W5h
Caminhada lenta (0.5 m/s)150W4.5h
Caminhada normal (1 m/s)250W2.8h
Caminhada rápida (2 m/s)400W1.7h
Corrida (3 m/s)600W1.1h
Manipulação (braços)+30W-20min
LIDAR ativo+8W-15min
Processamento IA (GPU)+15W-25min

Estimativa de Autonomia

def estimate_runtime(activities):
"""
Estima autonomia baseado em perfil de uso.

activities: lista de (potência_W, duração_min)
"""
BATTERY_WH = 432 # Wh

total_energy = 0 # Wh

for power, duration_min in activities:
energy = (power * duration_min) / 60 # W * h
total_energy += energy

remaining = BATTERY_WH - total_energy
return remaining, (remaining / BATTERY_WH) * 100

# Exemplo: Missão de inspeção
mission = [
(150, 30), # 30min caminhando lento
(80, 10), # 10min parado (inspecionando)
(180, 5), # 5min manipulando (tirando foto)
(150, 30), # 30min retornando
]

remaining_wh, soc = estimate_runtime(mission)
print(f"Energia restante: {remaining_wh:.1f} Wh ({soc:.0f}%)")
print(f"Missão OK: {soc > 20}") # Mínimo 20% reserva

# Output:
# Energia restante: 256.5 Wh (59%)
# Missão OK: True

Dicas de Otimização

1. Desligar Sensores Desnecessários

# Se não precisa de LIDAR indoor
robot.lidar.disable() # Economiza 8W

# Reduzir framerate de câmeras
robot.camera_front.set_fps(15) # Default: 30fps
# Economiza ~3W

# Modo de IA econômico
robot.set_ai_mode('power_save')
# Usa GPU apenas quando necessário
# Economiza ~10W em média

2. Otimizar Trajetórias

# Preferir caminhos retos (menos correções)
path = planner.plan(start, goal, optimize='energy')

# Velocidade ótima: 0.8-1.2 m/s
robot.set_walk_speed(1.0) # Sweet spot eficiência

# Evitar acelerações bruscas
robot.set_acceleration(0.5) # m/s² (default: 1.0)

3. Modo de Hibernação

# Durante pausas longas (&lt;5min)
robot.hibernate()
# - Desliga motores
# - Senta no chão
# - Mantém apenas sistemas vitais
# Consumo: 15W (vs 80W em pé)

# Despertar
robot.wake_up() # 10s para ficar em pé novamente

🔥 Segurança e Manutenção

Armazenamento de Longo Prazo

Se não vai usar o G1 por <1 semana:

  1. Carregar até 50-60% (não 100%!)

    # Verificar SOC
    robot.get_battery_soc() # Deve estar em 50-60%

    # Se &lt;60%, descarregar operando até 55%
    # Se &lt;50%, carregar
  2. Desconectar Bateria

    • Pressione clipes laterais
    • Remova bateria do quadril
    • Armazene separadamente
  3. Condições de Armazenamento

    • Temperatura: 15-25°C (ideal: 20°C)
    • Umidade: <60%
    • Local seco, sem sol direto
    • Check a cada 3 meses, recarregar se <40%

Por que 50-60% e não 100%?

  • Células cheias degradam mais rápido
  • Estresse químico menor em 50%
  • Pode durar 6+ meses sem recarga

Descarte Seguro

Bateria LiPo fim de vida (<60% health):

  1. Descarregar Completamente

    # Conectar resistor de carga até 0V
    # OU submergir em água salgada por 24h (terminals isolados)
  2. Levar para Reciclagem

    • Lojas de eletrônicos aceitam LiPo
    • Não jogar no lixo comum
    • Risco de incêndio em aterros
  3. Substituir por Nova


Troubleshooting

Problemas Comuns:

Sintoma: LED carregador não acende

Checklist:

  1. ✅ Tomada tem energia? (testar outro aparelho)
  2. ✅ Carregador conectado corretamente? (click audível)
  3. ✅ Bateria não está muito quente/fria? (tocar para sentir)
  4. ✅ BMS não está em proteção? (LEDs bateria piscando?)

Solução:

# Reset BMS
1. Desconectar bateria do robô
2. Pressionar botão bateria por 10s
3. Aguardar 30s
4. Reconectar e tentar carregar

# Se não resolver
Contatar suporte Unitree

✅ Checklist de Conhecimento

Após este módulo, você deve saber:

  • Especificações da bateria (48V, 9Ah, 432Wh)
  • Diferença entre LiPo e Li-Ion
  • Funções do BMS (proteção, balanceamento)
  • Tempo de carga (2h padrão, ~1h rápido)
  • Autonomia por atividade (4.5h caminhada lenta)
  • Como armazenar bateria longo prazo (50-60% SOC)
  • Quando substituir bateria (<60% health)

🔗 Próximos Passos

Próximo Módulo

🖥️ Sistema Computacional →

Deep dive no Jetson Orin NX: processamento, IA, ROS2 e otimizações.


⏱️ Tempo de estudo: 40-50 minutos 📊 Nível: Intermediário 🔋 Hands-on: Praticar leitura de BMS via API