OK-Robot: framework aberto e modular de robô doméstico capaz de pegar e mover objetos em qualquer lugar
(ok-robot.github.io)- OK-Robot é um framework robótico aberto e modular que busca executar, em zero-shot, tarefas de pick-and-drop encontrando, pegando e movendo objetos em novos ambientes domésticos apenas com instruções em linguagem natural
- Combina modelos de visão-linguagem (VLMs), primitivas de navegação e primitivas de preensão para conectar reconhecimento de objetos, deslocamento e manipulação sem treinamento adicional
- Foram avaliadas 171 tarefas em 10 residências reais na cidade de Nova York, registrando 58,5% de taxa de sucesso em casas totalmente novas
- Em ambientes limpos e sem desordem, a taxa de sucesso subiu para 82%, e o sistema mostrou desempenho cerca de 1,8x superior a trabalhos anteriores em Open Vocabulary Mobile Manipulation (OVMM)
- As principais falhas ocorreram em busca de objetos, posturas de manipulação difíceis e problemas de hardware, mostrando que a integração fina entre modelos de conhecimento abertos e módulos robóticos é decisiva para o desempenho
Composição e objetivo do framework
- OK-Robot é um framework aberto e modular para executar tarefas de pick-and-drop em zero-shot, condicionadas por linguagem, em casas arbitrárias
- O sistema combina três componentes
- Modelo de visão-linguagem (VLM): detecção de objetos com base em consultas em linguagem natural
- Primitivas de navegação: controle de deslocamento do sistema móvel
- Primitivas de preensão: manipulação de objetos diversos
- Sem uma etapa de treinamento separada, adota uma abordagem system-first que integra reconhecimento de objetos, deslocamento e preensão para realizar tarefas reais em ambientes domésticos
- Materiais do projeto:
Avaliação em residências reais e fatores de falha
- Foram tentadas 171 tarefas de pick-and-drop em 10 ambientes domésticos na cidade de Nova York
- A taxa de sucesso em casas totalmente novas foi de 58,5%, com desempenho cerca de 1,8x superior a trabalhos anteriores em Open Vocabulary Mobile Manipulation (OVMM)
- Taxa de sucesso: {p:58}
- Em ambientes mais limpos e sem desordem, a taxa de sucesso subiu para 82%
- Taxa de sucesso em ambiente organizado: {p:82}
- As causas das falhas seguem uma distribuição de cauda longa, e as três maiores foram as seguintes
- Não encontrar, na memória semântica, o objeto correto a ser movido: 9,3%
- O módulo de manipulação receber uma postura difícil: 8,0%
- Dificuldades de hardware: 7,5%
- Ao combinar sistemas de conhecimento abertos como VLMs com módulos robóticos, não basta apenas o desempenho do modelo; memória de objetos, postura de manipulação e estabilidade de hardware também precisam estar alinhadas
3 comentários
https://hello-robot.com/purchase
O produto em si custa US$ 25 mil...
Além disso, precisa de um iPhone Pro
O carregador com dock custa US$ 995 kkkkk
É um preço pra fazer otário de trouxa?
Por que a docking station é realmente tão cara assim?
O jeito de conexão também parece ser de encaixar diretamente um conector DC.. kkk
https://hello-robot.com/stretch-docking-station
Comentários do Hacker News
Parece que o mercado para esse tipo de robô será pequeno até que ele consiga lidar com obstáculos
Brinquedos que o gato deixa no meio do chão, papéis que voaram da mesa por causa de uma janela aberta, brinquedos espalhados pelas crianças, lápis que caíram da mesa enquanto ninguém estava olhando, roupa no chão, desníveis entre carpete e piso de madeira, portas abertas ou fechadas, tudo isso vira problema
Antes da tarefa principal, podem surgir várias tarefas intermediárias, como guardar brinquedos, pegar papéis, recolher roupa ou abrir portas
Cabos, pilhas de coisas que não podem ser movidas, móveis, animais de estimação dormindo ou montes de caixas de entrega podem bloquear um robô com rodas de forma quase permanente
Por isso, um robô doméstico de uso geral deveria ter pernas, não rodas, e talvez mais de duas para dar estabilidade
Pode soar estranho, mas o design ideal talvez fique em algum ponto entre uma aranha grande e simpática e um cachorro
É estranho como a robótica em geral parece presa à ideia de ver o mundo como uma superfície 2D plana, como se tivesse idealizado e eliminado o problema realmente difícil de mobilidade em um mundo 3D
Tudo o que esse robô faz também acontece apenas em superfícies horizontais planas, e parece que, para funcionar, uma pessoa primeiro precisa andar pelo cômodo arrumando tudo
O Roomba tem o mesmo problema
Bastaria não deixar cabos espalhados pelo chão, dá para colocar fita de marcação nos móveis, e também seria possível deixar o robô pegar e guardar objetos para que não virem risco de tropeço
Também poderíamos trocar os objetos por versões amigáveis para robôs e para humanos, como acontece com utensílios que a lava-louças consegue pegar, mover e lavar com facilidade
Já fazemos isso ao comprar produtos compatíveis com micro-ondas ou lava-louças, e chega a surpreender quando algo não é
Também aceitamos o custo de instalar uma portinhola para pets em uma porta humana para que os animais possam usá-la sozinhos
Humanos são uma espécie muito adaptável
Em segundo lugar, sempre gostei da ideia de suspender o robô em trilhos no teto
Dá para ver isso no excelente filme Moon, e a vantagem é que ele pode flutuar por cima dos móveis, tendo melhor mobilidade do que humanos
Basta fazer o braço conseguir pegar objetos no chão à frente do robô
Não parece impossível, e a demonstração em que vários modelos foram conectados para permitir dizer “leve os Takis para a mesa de cabeceira do quarto” e ver isso ser executado é impressionante
Então só restaria o “pequeno” problema de robótica de fazer o braço ser articulado o bastante para alcançar o chão
Lá isso é resolvido com um code pusher
É um tipo de grade, parecida com um protetor contra gado, que empurra os objetos do chão para fora do caminho
Nem todo problema precisa de uma solução complexa
O grande mérito deste projeto, na minha opinião, está especialmente na simplicidade do design do robô
Muito legal
Talvez seja uma pergunta boba, porque tenho pouquíssima experiência com robótica, mas fiquei curioso
Como ele sabe o que é um objeto? Usa algo como uma rede neural de classificação de objetos em tempo real, e quais são as limitações?
O robô sabe quando não consegue executar um pedido? Por exemplo, se mandarem mover uma caixa grande ou um kettlebell muito pesado?
Quão bem ele lida com objetos escondidos ou obstruídos? Ele sai procurando? E o que acontece quando precisa remover outros objetos para alcançar o objeto solicitado?
Esse trabalho é realmente muito legal, mas também expõe várias limitações dos sistemas modernos de aprendizado para robótica
Está explicado aqui(https://github.com/ok-robot/ok-robot/tree/main/ok-robot-navi...) e, pelo que entendi, basicamente ele usa um modelo ViT, ou seja, um modelo de classificação de imagens, para rotular imagens e projetá-las em uma grade de voxels
Depois conecta a linguagem e a grade de voxels com embeddings linguísticos do CLIP
A limitação é que, para rodar isso em um robô, não dá para usar versões gigantescas desses modelos
Dá para usar modelos grandes na nuvem, mas isso introduz muita latência
Se o pedido estiver fora do que os embeddings de linguagem conseguem abranger, o robô talvez simplesmente não faça nada
Mas, tirando os limites de hardware do controlador físico, esse sistema aparentemente não tem conhecimento de física
A rotulagem por voxels depende de um módulo que atribui rótulos aos voxels, e sem informação visual não há como rotular
Também não parece haver raciocínio complexo de alto nível do tipo “o garfo está na gaveta, a gaveta está na cozinha, e a cozinha normalmente fica nos fundos da casa”
Em casos de oclusão parcial, pode até funcionar, mas isso depende dos limites do classificador visual
O ViT é muito bom, mas vai depender de quanto o objeto está encoberto
O reconhecimento de objetos usa principalmente o Lang-SAM(https://github.com/luca-medeiros/lang-segment-anything), e o trabalho pesado de ligar imagem e texto fica com embeddings do CLIP(https://openai.com/research/clip)
Uma das vantagens dos modelos do tipo CLIP é que você não precisa definir antecipadamente quais classes poderão ser consultadas depois; dá para usar diretamente expressões pensadas no momento da execução
Atualmente o robô não sabe quando um pedido é impossível de executar
O modelo atual é bem simples e não tenta fazer nenhum processamento especialmente inteligente
Mas foi justamente por isso que publicamos o código, na esperança de que a comunidade consiga construir por cima deste projeto robôs mais inteligentes, que aproveitem melhor as pistas visuais do ambiente
Se um objeto estiver escondido ou obstruído na varredura inicial, ele falha
Ainda assim, isso pode ser um bom ponto de partida para pesquisas adicionais
Uma vantagem é que ele considera a informação 3D como um todo, então, se um objeto aparecer apenas em alguns ângulos, ainda há chance de o robô encontrá-lo
Parece ser uma tecnologia capaz de mudar vidas para pessoas com deficiência, idosos, gamers, pessoas extremamente preguiçosas e quem cuida delas
Se você torna as calçadas acessíveis para cadeiras de rodas, isso também ajuda pais empurrando carrinhos de bebê, pessoas carregando peso, pessoas com bengala, crianças de bicicleta e pessoas com baixa visão
Pessoalmente, espero que possamos ensinar a IA a assumir os trabalhos que ninguém quer, e não os empregos que todo mundo quer
Muito legal
Se fosse possível treiná-lo para dobrar roupa e guardá-la no lugar, eu consideraria seriamente comprar um robô de 25 mil dólares
Para resolver tarefas longas, como encontrar algo que está faltando, daria para transformar uma cena anotada em descrições padronizadas e colocá-las em um modelo grande o bastante treinado com ficção interativa
“Você está na cozinha. À sua frente, à direita, há uma geladeira grande com a maçaneta do lado direito. À esquerda há armários, e no balcão acima deles há pratos.”
> get beer“Você não vê nenhuma cerveja aqui.”
<< COT: eu sei que cerveja costuma ficar na geladeira. Devo abrir a geladeira> open fridge“Ao abrir a geladeira, você vê quatro latas de cerveja.”
> get beer“Pegou”
Claro, ainda faltam alguns anos para isso funcionar de verdade, mas, pensando bem, é muito interessante
Seria uma forma de combinar uma narrativa de ficção interativa alimentada por sensores reais com blocos de cadeia de pensamento como monólogo interno
Basta tirar uma foto da cozinha e perguntar ao ChatGPT onde procurar a cerveja
Na prática, eu uso isso com bastante frequência
Por preguiça, tiro foto de componentes e placas e pergunto como fazer a fiação no ESP32; só com algumas fotos ele distingue a placa, o chip e o layout dos pinos, diz qual fio ligar onde e ainda aponta cuidados a tomar
Muitas vezes também sugere bibliotecas úteis para os componentes, e honestamente parece magia
A análise de falhas está muito bem feita
Fico curioso sobre o que significa uma falha de hardware
Por exemplo, há 5 tentativas com “o Realsense forneceu profundidade incorreta”; queria saber como isso foi determinado
Nessas 5 tentativas mencionadas, o Realsense produziu valores de profundidade incorretos em objetos transparentes ou semitransparentes, então a nuvem de pontos gerada pela câmera na cabeça do robô já estava errada
Mesmo sendo open source, isso custa quase 25 mil dólares
Fico pensando por que é tão caro
A maioria dos robôs móveis de manipulação custa cinco dígitos ou mais, principalmente porque o mercado é pequeno, o custo de materiais e engenharia é alto, e construir robôs em si já é uma dor de cabeça
Trabalho não é de graça
Fazer PCBs customizadas e hardware em pequena escala também não sai barato, e construir, calibrar e testar robôs também não
Queria saber se existe um link para a página do produto
O hardware é proprietário e protegido por patente
Isso não é a mesma coisa que o Dobb-E?
https://dobb-e.com/
Mas há algumas das mesmas pessoas na equipe
Por exemplo, eu sou o primeiro autor do Dobb-E, e meu orientador supervisiona os dois projetos
A principal diferença é que este projeto é zero-shot, então não precisa de nenhum dado novo em uma casa nova, mas só tem duas habilidades: pegar e colocar
Já o Dobb-E pode ter várias habilidades, mas exige algumas demonstrações na casa nova
Ambos são mencionados no site do robô usado pelos dois: https://hello-robot.com/stretch-embodied-ai
Venho acompanhando este projeto há algum tempo, e o progresso é excelente
Consigo imaginar isso integrado a um dispositivo de auxílio à mobilidade, como uma cadeira de rodas, para pessoas com controle limitado dos braços e pernas
Se virar algo como um exoesqueleto “inteligente” que ajude em tarefas antes impossíveis, isso pode realmente mudar o jogo para muita gente
Eu realmente queria um veículo-plataforma estabilizado no qual eu pudesse colocar carga e mandar de um ponto a outro
Seria ótimo ter uma plataforma estabilizada por giroscópio, tipo um Segway, que pudesse ir do ponto A ao ponto B e voltar por um trajeto como uma trilha irregular, não terrível, mas acidentada
Já tentei várias vezes procurar opções, mas nunca vi nada adequado para esse uso
Queria saber se alguém conhece algum produto novo voltado para esse caso de uso
Mais especificamente, ele precisaria transportar uma bandeja com bebidas e hors d’oeuvres de um lado ao outro de uma propriedade sem derramar nada, então pelo menos alguma capacidade off-road seria necessária
Não sei se já vi transportando bebidas, mas comida com certeza transporta
A tecnologia já existe; só falta integrar tudo direito
A gravidade mantém o fundo dos copos sempre apontado para baixo, então não é preciso estabilização eletrônica