Pular para o conteúdo

Tudo é LLM — programação por vibe de uma tarefa para robô

Ver no idioma original →

Autoria: sentdex · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: Everything is LLM - Vibe coding a robot task · Canal: sentdex · 1:13:03 · Assistir no YouTube

Tópicos: Agentes de IA, Modelos locais e open source, Modelos multimodais, Robótica e sistemas autônomos

sentdex demonstra como usar GLM53 Flash para desenvolver, ao vivo, um sistema que controla um robô quadrúpede com rodas e braço para localizar e pegar um cubo. O trabalho combina comandos de movimento, leitura de câmeras, detecção visual e sequências de ações para posicionar o robô, aproximar a garra e levantar o objeto. Durante os testes, o sistema é ajustado iterativamente para corrigir problemas de latência, postura, alcance e movimento do braço. O vídeo também compara LLMs com modelos VLA e discute como um harness para robótica poderia padronizar tarefas e prevenir erros. No fim, o robô consegue pegar e levantar o cubo, e o autor sugere aplicações futuras com outros objetos e navegação pelo ambiente.

  • LLMs podem ajudar a escolher e coordenar técnicas adequadas para tarefas robóticas, em vez de exigir que toda a percepção e o controle sejam feitos por um único modelo.
  • O vídeo usa GLM53 Flash para criar uma interface de controle e iterar sobre a tarefa de pegar um cubo com o robô.
  • A detecção por máscara HSV é suficiente para localizar o cubo, enquanto modelos de segmentação ou LLMs com visão podem generalizar para objetos mais variados.
  • O posicionamento precisa ser repetível: altura do corpo, inclinação medida pela IMU e postura do braço afetam a possibilidade de alcançar o objeto.
  • A sequência dos movimentos do braço importa: o cotovelo deve se afastar antes de o ombro retrair, para evitar colisões com a cabeça do robô.
  • A abordagem automatizada combina centralização do objeto na imagem, aproximações curtas, entrada na postura de coleta, fechamento da garra e elevação do objeto.
  • Comandos lentos ou acumulados e movimentos inconsistentes dificultam o controle; o autor destaca a necessidade de cancelar comandos antigos e melhorar os ajustes finos.
  • Um harness para robótica poderia reutilizar procedimentos entre robôs e tarefas, além de detectar colisões e coordenar percepção, sensores e ações.
  • Como próximos passos, o autor propõe lidar com objetos mais variados, usar mapas de ocupação e levar itens encontrados no chão até uma caixa.
Início Capítulo Resumo
00:00 Demonstração e proposta O autor apresenta o objetivo de usar um LLM para controlar uma tarefa de coleta com um robô.
06:29 Configuração do projeto e interface Ele prepara o projeto, fornece ao modelo informações do robô e pede uma interface com câmeras e controles de movimento.
13:21 Primeiros testes de controle A interface inicial apresenta falhas e lentidão, que o autor relata para orientar novas correções.
18:10 Ajuste da postura de coleta O autor testa rodas, altura e inclinação do corpo e busca uma postura de coleta repetível.
24:15 Sequência do braço e da garra Ele especifica as posições desejadas para o braço e pede que o robô retorne de forma consistente à postura de coleta.
31:15 Planejamento da aproximação ao cubo O autor define como detectar e centralizar o cubo, aproximar-se e posicionar o braço sem perder o objeto de vista.
38:28 Detecção visual e ajustes finos A detecção do cubo funciona, mas ainda há problemas nos movimentos de aproximação, nas rotações e na latência dos comandos.
46:03 Primeiro teste de coleta automática O sistema percorre a sequência de aproximação e chega à distância de alcance, mas a coleta ainda demora ou falha.
52:08 Falha ao levantar o cubo O robô agarra o cubo, mas não o levanta corretamente, e o autor pede correções na recuperação do braço.
57:35 Ajustes na força da garra Após uma tentativa quase bem-sucedida, o autor identifica que a garra precisa apertar melhor e o braço deve evitar bater na cabeça do robô.
1:03:31 O resultado e as opções de percepção O autor comemora a coleta e explica como LLMs, máscaras HSV e modelos de segmentação podem atender a diferentes tarefas visuais.
1:06:09 Comparação entre modelos e velocidade Ele compara a capacidade e a velocidade de GLM53 Flash e Astra, além de comentar os riscos de conceder acesso a um computador.
1:09:17 Um harness para robótica O autor defende um harness que padronize procedimentos e ajude a evitar colisões e outros erros recorrentes.
1:10:53 Próximas tarefas e aplicações Ele propõe usar mapas do ambiente para encontrar objetos no chão e levá-los até uma caixa.
1:12:32 Encerramento O autor menciona o link do robô e outros robôs que pretende apresentar em vídeos futuros.

Sinto que estamos prestes a ver um harness para robótica com LLMs ser muito útil. — 11:44

Com pouquíssimo esforço, temos um robô que consegue encontrar um cubo e pegá-lo. — 45:28

Você passa ao LLM as informações do SDK e começa a pedir: quero construir isto. — 1:04:01

Quero criar algum tipo de harness, porque muitas dessas coisas são óbvias e se repetem. — 1:10:21

  • LLM (conceito): Modelo de linguagem usado para interpretar instruções, ajudar a desenvolver o sistema e coordenar ações robóticas.
  • GLM-5.3-Flash (modelo): Modelo usado no vídeo para auxiliar no controle do robô, na análise visual e na programação da tarefa.
  • XO mini (modelo): Robô quadrúpede com rodas, câmera, IMU e braço com garra usado na demonstração.
  • XGO Mini (modelo): Robô citado como referência para o SDK, os arquivos de modelo e a configuração de controle.
  • OM harness (ferramenta): harness mencionado pelo autor como contexto com memória de trabalhos anteriores.
  • Whisper (modelo): Modelo que o autor recomenda executar localmente para converter fala em texto.
  • OpenCV (ferramenta): Biblioteca citada como opção para técnicas rápidas de visão computacional, como máscaras de cor.
  • HSV mask (conceito): Técnica de segmentação por cor usada para detectar o cubo verde na imagem da câmera.
  • IMU (ferramenta): Sensor usado para medir a orientação do robô e ajustar a inclinação do corpo durante a coleta.
  • VLA (conceito): Abordagem de modelo que combina informação visual e ações, comparada no vídeo com o uso de LLMs.
  • Segment Anything (modelo): Família de modelos de segmentação mencionada como alternativa para detectar uma variedade maior de objetos.
  • Raspberry Pi (ferramenta): Computador embarcado mencionado como parte do robô e como possível local para executar detecção visual.
  • sentdex (pessoa): Criador do vídeo, que apresenta e testa o sistema de coleta com o robô.

00:00 Então, acho que ele chegou um pouquinho perto demais. Nossa, agora está muito rápido. Ele simplesmente vai com tudo. É bem legal ver isso. Idealmente, ele provavelmente deveria ter chegado um pouco mais perto, mas vamos ver se ele fica de pé… Meu Deus, [risos], foi rápido demais, cara. Não, acho que ele nem chegou a fazer a pegada completa. Poxa, chegamos tão perto. Eu podia literalmente sentir o gosto da vitória, pessoal. E aí, gente? Bem-vindos a um vídeo sobre como agora tudo é LLM. E o que quero falar hoje é sobre usar

00:34 LLM em robótica, especificamente este pequeno robô XO mini, mas dá para fazer isso com praticamente qualquer robô, inclusive braços fixos e tudo mais. E o que vocês estão vendo aqui é o GLM 53 Flash controlando basicamente o controle de alto nível. Então, você não usaria isso para locomoção ou para uma marcha, como a forma de andar. Ainda usaria aprendizado por reforço e escala extrema, e resolveria isso em uns 30 minutos. Pronto. Mas, para fins de decidir o que você quer pegar, onde talvez eu possa encontrar essa

01:06 coisa que você quer que eu pegue e, então, como uso de fato as ferramentas do meu kit para ir buscar essa coisa com o robô? Os LLM estão se mostrando muito bons nisso, bem melhores que a concorrência e muito mais agradáveis de usar que a concorrência. [risos] A concorrência é algo como VAS, ACT ou algum outro tipo de modelo visual-motor, em que você precisa tentar usar simulação. Mas simular é bem difícil, porque você tem que construir toda a simulação, e isso leva muito

01:38 tempo. Depois, você tem o problema de sim-to-real, especialmente quando se trata de informações da câmera, ou tem a teleoperação, em que precisa mover o robô manualmente e fazer várias vezes, manualmente, o que quer que esteja tentando fazer. E, no fim das contas, ainda há o problema de que não é sim-to-real, mas é mais como: se alguma coisa no ambiente mudar — se a iluminação mudar o bastante ou se a tarefa mudar só um pouquinho —, como acontece com o modelo GLM, você pode pedir para ele pegar o cubo verde. Você também poderia pedir para ele pegar um cubo de qualquer outra cor.

02:08 Provavelmente, você poderia pegar uma bola de qualquer outra cor. Qualquer coisa que caiba na garra, desde que você já tenha uma ideia de como quer fazer. O que você fez vai funcionar e se adaptar muito bem a superfícies diferentes, condições de iluminação diferentes, tudo. É muito promissor. Enfim, é isso que vou mostrar hoje. Vamos ver. Vou fazer tudo ao vivo. Já existe… Vou usar o harness OM, então ele sabe algumas coisas que fiz por causa da memória. Vou trabalhar com o XCO, onde já tenho alguns arquivos.

02:39 Então, é quase certo que o LLM vai olhar alguns dos outros arquivos. Mas só quero mostrar como eu resolveria um problema desses e dar uma ideia do que dá para fazer com LLMs em tarefas como essa, com robôs pequenos, porque acho que estamos vivendo um momento muito bom para desenvolver robôs, tanto em termos de como dotar o hardware de inteligência quanto para simplesmente instalar um SDK e brincar com um robô pequeno como este. Algumas

03:11 dessas coisas que vamos fazer hoje em um minuto ou cinco minutos levariam horas, dias ou talvez até uma semana. E é simplesmente incrível onde estamos. Então, o robô que vou usar é este, o robô XO mini de duas rodas. Eu gosto bastante dele. Acompanho essa empresa há, acho, pouco mais de cinco anos. Tenho, acho, quatro desses quadrúpedes e talvez dois com braço. Não tenho nenhum com LAR.

03:42 E a grande novidade desta vez são estas rodas. Há muito tempo eu queria um quadrúpede pequeno com rodas, porque elas permitem andar em terrenos que não são ideais. Quase certamente daria para levar este robô para cascalho ou até para pedras grandes, de uns 57, sabe? Provavelmente daria para colocá-lo lá. E a questão é que você pode andar sem as rodas girarem, andar só com as rodas, ou seja, rolar, ou andar com as rodas girando e as pernas dando passos.

04:16 E isso permite que, se você chegar a uma beirada ou algo assim, com uns dois centímetros e meio de altura, às vezes seja meio difícil passar por cima dela, e aí você precisa carregar uma marcha completamente diferente para ultrapassá-la. Mas, neste caso, não precisa. Basta girar as rodas. Assim que você chega à beirada, mesmo que o pé não tenha passado direito por cima dela, a roda continua girando. Então, ela simplesmente vai puxar você para o outro lado. Isso é muito legal. Também gosto bastante do braço. Ele também gira. Então, tem uma rotação aqui, depois a articulação do ombro gira, e há uma articulação do cotovelo que também gira, e então você

04:49 tem a garra. Gosto disso. Sempre foi assim, mas a novidade é que o ombro gira. O que é bem legal. Ainda não encontrei um bom caso de uso, porque você ainda precisa enxergar o que está fazendo. E acho que, se eu pudesse mudar alguma coisa neste robô, seria a câmera, que fica bem aqui. Na verdade, eu queria que ela ficasse aqui na garra, porque às vezes a garra acaba batendo na câmera. Primeiro, ela fica meio no caminho. Segundo, se estivesse aqui, você ainda teria sempre uma câmera voltada para a frente. Mas o problema é que, quando você está tentando pegar alguma coisa

05:21 do chão, provavelmente a parte mais difícil com este robô é chegar perto o bastante do objeto para ainda conseguir vê-lo e, ao mesmo tempo, fazer contato com a garra. Outra opção seria talvez colocar na garra umas pinças mais compridas. Não sei como chamar aquilo. Elas poderiam ser um pouco mais compridas. O braço, como o antebraço, também poderia ser mais comprido, para dar um pouco mais de alcance e torná-lo mais versátil. São coisas que você provavelmente poderia simplesmente modificar, certo? Seria muito fácil. Sinceramente, dava para prender com fita um pedaço de compensado ou algo assim

05:55 [risos] nos cachorros e provavelmente alcançar um objetivo melhor. Outra opção seria colocar uma cobertura sobre a câmera e um espelho em cima dessa cobertura. Isso também ajudaria. Há várias coisinhas que eu talvez modificasse, mas vou tentar manter tudo como veio de fábrica hoje. Enfim, vamos começar a trabalhar com ele e vou mostrar como é fácil acessar tudo isso. Então, vou tirar isto do caminho. Vou criar uma nova pasta aqui. Vamos chamá-la de Xcode. Vamos abri-la. E vou

06:29 abrir o terminal aqui. E acho que não precisamos mais disto. Certo. Então, agora vamos tentar fazer tudo com GLM 53 Flash NVIP4. Fiz tudo isso com a precisão nativa. O NVIP4 parece funcionar muito bem com o GLM 53 Flash, mas vamos descobrir. Então, a primeira coisa que quero fazer é simplesmente colar um pedacinho de código. Copia e cola.

07:02 Então, o que acabei de passar — deixa eu fazer isso — é que estou explicando para o GLM: “Olha, temos esse XGO mini, seja lá o que for. Aqui está o SDK, aqui está o URDF, aqui estão os STLs, as malhas, tudo isso. E também configuramos o Wi-Fi. Aqui estão o endereço IP e a senha.” E só agora percebi que não liguei o robô. >> [risos] >> Deixa eu ir ligá-lo. Certo, vamos tentar de novo. Além disso, daqui em diante, eu também

07:33 tenho conversão de fala em texto. Sei que muita gente usa serviços para isso. Peço que considerem como esses serviços funcionam. Vocês precisam enviar seus dados de voz e, quase certamente, eles armazenam esses dados. Isso foi há muitos anos. Baixei meus dados do Google Takeout, e uma das coisas mais chocantes era que todas as gravações de “Ok Google”, ou algo assim, ainda estavam lá. Eram gravações de mais de cinco anos e eu pensei: “Por que salvaram isso?” [risos] E, a partir daquele

08:05 momento, não uso — não estou disposto a usar o serviço de conversão de fala em texto de ninguém. E você também não precisa: temos o whisper, dá para executar o whisper localmente. É um modelo minúsculo, você nem vai perceber que está rodando, então nem se preocupe. Vou usar isso, então às vezes vou falar no microfone e, espero, vocês vão perceber a diferença. Certo. Na senha. Isso. Isso. Isso. Certo. Certo. Beleza. [fungada] Certo. Ótimo. Você poderia, por favor, nos dar

08:37 um frontend bem básico? Quero ver a transmissão da câmera da cabeça no XO. Quero controles bem básicos para a marcha. Por exemplo, deveríamos poder dizer: queremos ir para a frente, para trás, girar, mudar a altura do corpo para cima ou para baixo e também alterar a inclinação do corpo com base na IMU. O ideal seria permitir que a gente controlasse diretamente a IMU, por exemplo, indicando o ângulo desejado. Porque, no fim das contas, o que vamos tentar fazer é pegar

09:08 alguma coisa do chão. Para pegar coisas do chão, precisamos conseguir abaixar o corpo o máximo possível e também agachar ao máximo as pernas dianteiras, mantendo as pernas traseiras esticadas o máximo possível. Faz sentido? Então, preciso de um frontend que me permita fazer isso e, ao mesmo tempo, mover o robô usando todas as marchas disponíveis. Ou seja, só com passos, passos e rodas, ou uma combinação dos dois, e também só com rodas. E, por fim, há uma terceira câmera

09:41 que talvez vamos usar para alguma depuração. É a câmera da Logitech. Também poderíamos transmitir essa câmera ao vivo e fazer tudo isso em um frontend com visual bem simples, que possamos executar nesta máquina? Certo, vamos ver. Vamos ver como vai. Se alguma coisa ficar processando por tempo demais, vou simplesmente editar essa parte para fora. Vamos ver. O objetivo, acho, hoje

10:12 — o que eu gostaria de mostrar no vídeo, se tivermos tempo, de qualquer forma — é pelo menos fazer esse exco pegar aquele cubo e então encerrar por aí. Seria só um tipo de caçador de cubos, e mostrar mais ou menos como fazer isso. Agora, como isso vai acontecer? Já tenho uma ideia da orientação física necessária para isso. Mas quanto ao modo como vamos fazer de fato, vamos ver se ele faz do mesmo jeito que eu

10:43 já vi antes. Mas há muitas, muitas maneiras diferentes, porque você poderia simplesmente mascarar a cor verde, certo? E então procurar só pelo verde, certo? Também poderia usar o GLM para análise de imagem. Talvez eu mostre um pouco disso acontecendo. E estou tentando pensar no que mais. Sinceramente, você poderia simplesmente usar uma máscara HSV. Também dá para usar alguns desses modelos do tipo segment anything, que também funcionariam muito bem. E, no fim das contas, o que estamos tentando fazer

11:14 não é necessariamente fazer tudo com um LLM. Mas alguns desses VLA, alguns dos VLA maiores, meio que fazem isso: obrigam você a fazer tudo com aquele VLA. Acho que o caminho a seguir é usar um LLM para ajudar a descobrir qual é a melhor maneira de realizar qualquer tarefa que você queira fazer com o robô. E, no futuro, seria legal se fosse rápido o bastante para fazer isso na hora. Definitivamente ainda não chegamos a esse ponto. E isso me fez pensar em

11:44 algo como… Temos muitos harnesses voltados à programação e harnesses voltados a assistentes. Tenho a impressão de que estamos prestes a ver um harness para robôs com LLMs se tornar muito útil. Porque precisamos de algo para meio que remendar e disfarçar essa lacuna até que isso fique realmente bom. É a mesma coisa com os harnesses de programação. De certa forma, os harnesses surgiram porque temos essa inteligência muito avançada, mas seguimos padrões parecidos para, sabe, obter

12:16 valor deles. E se simplesmente automatizássemos isso? Daí surgiram os harnesses. Então, queremos fazer mais ou menos a mesma coisa, mas para robótica. Tenho tentado descobrir como poderíamos fazer isso. Como poderíamos deixá-lo ciente de todos os vários modelos existentes ou das técnicas do OpenCV que existem para executar algumas dessas tarefas bem rápido? Porque, se você tentar usar um LLM apenas para pegar um cubo e identificar onde ele está em cada imagem, isso vai limitar você a algo como uma a três imagens por segundo para fazer essa identificação. Vamos garantir

12:48 que ele não esteja… Certo, ótimo. Já com uma máscara HSV ou algo assim, dá para chegar tranquilamente a mais de 30 imagens por segundo. Agora, se estamos usando… tem um pequeno Raspberry Pi Zero aqui, então talvez sejam mais cinco ou dez imagens por segundo, mas dá para executar isso diretamente no robô. Enfim, vamos ver. Vamos ver como isso se desenrola. [risos] Certo, diz que terminou. Aqui está nosso frontend. Esta é a câmera frontal. Esta é a câmera lateral. Ah, outra vantagem legal

13:21 deste robô é que este é o cabo de alimentação para carregar. E, como a bateria fica embutida no robô, não dá para ter várias baterias e simplesmente fazer a troca rápida, ou trocá-las de qualquer forma. A bateria dura talvez uns 30, 40 minutos, algo assim, dependendo do que você está fazendo. Nesta versão — não acho que nenhuma das versões anteriores funcionasse enquanto estava conectada à tomada —, mas esta funciona. E, às vezes, como o robô é tão leve, é muito fácil ele ficar preso em um dos cabos

13:52 e isso atrapalha; se você tentar girar, o cabo pode continuar no caminho. Mas, no geral, fazer pesquisa e desenvolvimento com ele conectado à tomada é muito bom. Provavelmente, ainda é melhor desconectá-lo e completar um ciclo da bateria [risos], só para garantir que tudo continue equilibrado. Mas, no geral, gosto muito de poder desenvolver com ele conectado tão facilmente. Certo, temos o modo de marcha. Deixa eu ajustar isso para saber se estou fora da tela para vocês. Pronto. Certo, temos só passos, rodas. Vamos lá.

14:22 e simplesmente testar. Ih, portão, trote, caminhada, caminhada alta, trote lento. Não conheço nenhum desses. Vamos usar trote lento. Ritmo. Já temos isso. Então, qual é a diferença? Não sei. Vamos apertar para a frente. Nada aconteceu. Vamos descer até aqui. Temos alguma gravação sem erro? Certo. Vou dizer: “Ei, cara. Tentei usar essa interface.” Cliquei em caminhada para a frente. E nada acontece. Qual é, cara. Faça alguns testes antes de me dizer que terminou, idiota. Certo.

14:56 Então, vamos fazer uma caminhada. Quero só tentar rodas com passos. É, nenhuma dessas opções funciona. Vamos descer até aqui. E estas? Funcionam? Não. Isso não funciona. Isso não funciona. Nada funciona. Que diabos? Esses desenvolvedores juniores. O que vamos fazer com esses caras? [risos] Aí está, chefe. Fiz meu trabalho. Até amanhã. [risos] Certo. Depois de uma conversa séria,

15:27 ele está dizendo que terminou. Vamos ver. Opa. Temos nossas câmeras. Vamos descer até aqui e tentar avançar. Não acredito. Ah. Cliquei duas vezes. Isso demorou muito. Por que demorou tanto? É, está demorando pra caramba. Que estranho. É quase como se você tivesse que tocar duas vezes. Certo. Certo. Por que demorou tanto da

15:59 primeira vez? Que estranho. Além disso… Opa. Por que está lento? Precisamos descobrir isso o quanto antes. Passos, rodas. Certo. E isto? É, está bem… estranhamente lento. É, funciona mais ou menos. O problema é que está estranhamente

16:34 lento. Além disso, não consigo definir… bom, deixa pra lá. Nem quero tocar nesse assunto. Mas, quando altero os alvos, como o alvo da IMU, demora uns cinco segundos ou mais só para aplicar a alteração, o que é estranho. Deveria ser instantâneo. Por que está demorando tanto pela interface? Ah, você já tem uma pose de coleta no chão. Vamos ver. Além disso, quando estou no modo

17:06 só rodas e tento ir para trás, nada acontece. Só rodas, tento avançar. Vou esperar cinco segundos para ver se acontece alguma coisa. Não parece que vai acontecer. Agora vamos tentar passos mais rodas. Nem consigo selecionar passos mais rodas na interface. O que está acontecendo? Volte e faça seu maldito trabalho, cara. Não me diga que algo está pronto quando não está pronto. Você precisa fazer alguns testes de verdade, garoto. O principal é o atraso. Só passos. Eu gostaria de passos mais

17:37 rodas, provavelmente. E também precisamos ajustar as rodas para que funcionem. É assim que vamos ajustar nossas posições. Isso talvez também seja uma função de quanta força você está tentando usar enquanto se move, mas não sei. Descubra, cara. Certo. Nosso pequeno lacaio programador garantiu que está tudo pronto de novo. Aqui está a interface. Ah, nem percebi que podia mudar a taxa de quadros da câmera. Enfim, supostamente podemos… Vamos ver, avançar

18:10 e voltar. Certo. Agora temos um pouco mais… o que… Ah, vamos tentar só rodas também. Certo. Precisamos de um pouco mais de força nelas. Acho que também… Vamos ver. Deixe-me garantir que vocês conseguem ver tudo. Deixe-me… Certo, esse é o braço. Certo, a IMU. Vamos trocar as configurações da IMU. Vamos deixá-la um pouco… Isso é interessante. Um pouco mais alta. E vamos tentar avançar de novo. Certo, as rodas estão um pouco fracas. Então, vamos relatar isso rapidinho.

18:43 Certo, o movimento só com rodas está um pouco fraco. É fraco demais para realmente fazer qualquer coisa. Então, precisamos de um pouco mais de força. Fora isso, os outros comandos parecem estar funcionando bem. E vamos ver o que mais. Vamos ver a pose de coleta no chão. Certo, cliquei na pose de coleta no chão. Parece que ela faz as coisas em sequência. Se for isso mesmo, então

19:16 acho que pode estar funcionando mais ou menos, mas me pergunto se tem algo a ver com a definição da altura do corpo. Neste momento, estou vendo a leitura real da IMU. Cliquei na pose de coleta no chão e estou vendo 7,52 graus. Isso é literalmente péssimo. Deveríamos estar… Nosso objetivo deveria ser chegar a uns 20 graus. Mas provavelmente vamos chegar a algo como 18 ou 16 graus. E

19:47 o mais importante é que, seja qual for o número, ele precisa ser superconsistente. Por exemplo, se o alvo for 18, precisamos sempre chegar a 18 com a mesma altura do corpo. Caso contrário, a capacidade de agarrar vai… Se variar o suficiente, não poderemos ter regras para pegar objetos, porque a situação será sempre diferente. Então, será que poderíamos… Deixe-me tentar mexer em… Certo, se ajustarmos para, digamos, 22. Então,

20:20 se eu ajustar a inclinação do corpo para 22, estou observando. Estou observando. Parece que o máximo a que vamos chegar é 1432. Ou seja, 14°. Agora, curiosamente, se eu aumentar a altura do corpo… [risos] Desculpa, isso é engraçado. Por que será? Não sei. Vamos voltar para baixo. Ótimo. [risos] Ah. Isso é divertido demais. Mas ainda estou tendo dificuldade para atingir a

20:54 leitura-alvo da IMU, e isso pode ser um problema daqui para a frente. De novo, precisamos de uma leitura consistente e, idealmente, gostaríamos de chegar a algo entre 16 e 18 graus, mesmo que 22 não seja razoável, se por algum motivo não conseguirmos chegar a 22. Então, quando uso o mergulho máximo ou a pose de coleta no chão, precisamos descobrir qual é a combinação certa. Então, talvez você pudesse fazer

21:26 algumas ablações ou algo do tipo para descobrir como atingir uma altura do corpo de 75 milímetros e também o alvo máximo da IMU. Qual é a sequência de ações necessária para chegar lá? Porque… Ah, na verdade, agora a IMU está lendo 183. Então, a próxima coisa… O que é isto? Ah, este é o ombro. Certo. Para o braço, outra coisa que provavelmente precisamos deixar pré-programada é colocar a garra na posição. Então, vou… Certo. O ombro, na verdade…

22:02 Certo. Primeiro, devemos mover o cotovelo. Uau, que estranho. Então, provavelmente devemos ajustar o cotovelo para -41° e, quanto à garra, nem sei qual é a posição aberta. Sim, abrir a garra totalmente. Então, -65 antes de agarrarmos. E depois moveríamos o ombro.

22:34 Mas, antes de mover o ombro, com certeza você deve mover o cotovelo. Está aberto? É, provavelmente para uns 53 e depois descer, talvez para -53. Não consigo ver direito. Mas parece estar bem perto do chão. Certo. Este é o ombro. Estou só… Certo, isso é o chão. Certo, na verdade… A posição em que o robô está neste exato instante é realmente uma

23:07 posição muito boa. Será que poderíamos salvá-la de alguma forma? Assim poderíamos ver o que estamos prestes a tentar agarrar. Faz sentido? Minhas leituras aqui… Estou tentando decidir se queremos mesmo tocar o chão. Certo. Se girássemos o cotovelo para fora, desse jeito, acho que é isso que devemos fazer. [limpa a garganta] Digamos que queremos manter exatamente as posições em que estou. Então, a

23:40 altura do corpo é 75. O alvo de inclinação do corpo para a IMU é 22 graus. A leitura real é 183. Agora, é essencial que cheguemos o mais perto possível de 183, de maneira consistente e repetível. Quando estivermos prontos, quando tivermos alcançado essa posição, estaremos prontos para posicionar o braço e realizar a pegada. Para isso, primeiro precisamos soltar o cotovelo, ou seja, movê-lo para 57°, e abrir a garra para 65°

24:15 e então podemos mover o ombro para 80 graus. Isso vai deixar a garra praticamente bem na frente da câmera. Então, tudo o que precisamos fazer é colocar o objeto na frente do nosso robô. O que preciso de você é: pode nos ajudar a chegar a uma pose repetível, a chamada pose de pegar algo do chão? Precisamos que ela seja repetível quando decidirmos pegar algo do chão. Precisamos que ela seja repetível de modo que praticamente sempre

24:45 tenhamos essa leitura da IMU em torno de 18°. A altura do corpo em 75 e, em seguida, o braço como já descrevi. Você acha que consegue fazer isso por nós? Certo, vamos deixar ele digitar tudo isso. Foi uma quantidade enorme de informações, mas vamos ver se ele consegue entender. Acho que preciso colar isso na área de transferência, em vez de deixar que ele escreva de fato.

25:18 Meu Deus, [risos] isso é um livro. Certo, muito bom. Vamos ver o que ele vai fazer. Espero que possamos voltar a isso todas as vezes. Esse seria o sonho. Vou salvar enquanto posso. Acho que, se conseguirmos voltar a isso de maneira repetível, seria ótimo. Assim poderemos realmente enxergar. Historicamente, tive que agarrar coisas sem conseguir ver o que estava pegando. Mas isso nos permite levar a garra até o

25:49 chão e, teoricamente, poderíamos ver o que está dentro da garra. Acho que quero continuar explorando essa possibilidade. Vai, amiguinho. Vai. Certo. Esta parte é interessante. Tive que levantar um pouco o ombro. Acho que ele está testando várias posições para ver se consegue prosseguir. Não sei. Estou tentando decidir. Será que isso vai… Não, infelizmente acho que não vai continuar atualizando para nós. Queria que ele me mostrasse aqui. Mas acho que está tentando ir de

26:19 posições aleatórias até essa posição da IMU. Mas aqui acho que ele estava um pouco mais alto. Vou expressar essa preocupação, porque acho que queremos que a cabeça fique um pouco mais baixa; caso contrário, a garra não ficará no mesmo lugar. Se baixássemos esse braço… Na verdade, quero tentar. Vamos ver. É assim? Sim. Quanto era? 50. Já esqueci. Qual era… Salvei numa foto. Ombros a 80 graus. Certo. Nossa.

26:51 Certo. Então, se eu fosse para… Acho que ainda encostaria. Não, não vai tocar o chão. Então, acho que a parte da frente não está baixa o suficiente. Interessante. O cotovelo está na mesma… Sim. Ah, certo. Então, ele acabou chegando àquela altura. Que estranho. Agora está batendo com força. Calma, amiguinho. Devagar. [risos] Pode pegar o abrigo, por favor? Não quero continuar batendo no chão. Meu Deus. Ah, que engraçado. Certo. Entendi.

27:24 Acho que você está fazendo isso, mas lembre-se de que, além da IMU, também precisa atingir a altura do corpo. Parece que provavelmente já está fazendo isso. Só quero confirmar que você cumpriu todos esses requisitos, não apenas o da IMU. Legal. Certo. Acho que vamos deixar ele… Quer dizer, isso parece muito bom. Se conseguíssemos atingir isso de forma consistente, seria o ideal. Aí poderíamos procurar aquele cubo. Mas isso está alto demais, não está? Então, não tenho muita certeza. Talvez ele esteja

27:58 fazendo isso primeiro. Não sei bem. Quero fazê-lo avançar um pouco para poder enxergá-lo melhor. Você acha que ele vai avançar? Ah, era só as rodas. Espera. Pronto. Está vendo? Isso está alto demais. Ele precisa descer. Não tenho muita certeza do motivo. Pelo menos pelo que estou vendo, enquanto você vai ajustando, costuma conseguir um bom ângulo, mas não fica tão baixo quanto precisamos. Às vezes,

28:30 você fica um pouco mais baixo do que em outras ocasiões, e precisamos garantir que também cheguemos sempre o mais baixo possível. Certo, vamos deixar ele trabalhar e já voltamos. Certo, nosso pequeno trabalhador disse que terminou. Vamos conferir. Terminou? Vamos ver. Isso parece bom. Deixe-me verificar a pose de pegar do chão. Será que consigo… Já nem lembro. É assim que levanto? Sim. Certo, legal. Isso vai levantá-lo. 80 graus

29:03 é o que queremos. Agora, quero ver se, ao pressionar Neutral, ele volta à posição inicial. Ele… Ah, certo. Volta. Vamos avançar só um pouquinho. Olá, amiguinho. Certo, momento da verdade. Ele está se agachando, inclinando para baixo. Certo, continua. Queria que fosse mais rápido, mas vamos ver. Ainda estou vendo… Talvez eu precise atualizar a página à força. Vou fazer isso, só por precaução.

29:41 Inclinação máxima, H… Ah, certo. Nem sei. Não sei o que estou vendo aqui. Mas isso está muito bom. Ah, ele vai agarrar. Ei. Certo. Certo. Mangueira de pegar do chão. Não sei o que é inclinação máxima. Do que estamos falando? H90 dá isso de forma confiável. Então, se… Certo.

30:12 Pegar do chão H75H90. Certo. Só para esclarecer: qual é a diferença entre inclinação máxima e pegar do chão? Por que você manteve as duas? É só porque pegar do chão abre um pouco menos, ou qual é a questão?

30:43 Ah, entendi. Então, pegar do chão… Ah, altura 75. Entendi. O corpo fica na posição mais baixa. Certo. Acho que vamos usar esta, porque conseguimos enxergar. Certo, então a pergunta é… Gostei disso. Gostei muito. [risos] Legal. Certo. O que quero fazer agora é… Isso parece muito bom. Acho que o próximo passo deveria ser:

31:15 precisamos ir atrás do cubo e colocar o centro do cubo no meio da tela, mais para baixo, certo? Assim, quando baixarmos a garra, conseguiremos pegar o cubo. Faz sentido? Vou levantar o braço. E talvez fosse legal conseguir colocar o braço de volta na parte de trás e, então, baixá-lo instantaneamente até essa posição de agarrar, sem precisar ajustar cada junta manualmente. Faz sentido? Então

31:48 o ombro, por exemplo… precisamos levantar esse braço. Meu Deus. O ombro poderia ir para 54 graus e o cotovelo poderia ir para… Ah, entendi. Sim, o ombro poderia ir para 54, o cotovelo para 1 ou algo assim. Estou tentando ver até que ponto conseguimos encolhê-lo. Ah, dá para deixá-lo bem encolhido.

32:24 Hum. Certo, vamos ajustar o ombro para -68, o cotovelo para 31 e, quando chegarmos à posição e entrarmos na pose de pegar do chão, não sei bem. Vou pressionar Neutral rapidinho. Você acha que ele vai… Ah, ele se nivela. Outra coisa é a pose neutra. Ah, ele realmente… Certo, ele se nivela. Legal. Então, acho que, quando avistarmos o cubo, precisamos chegar até ele. À medida que nos aproximarmos do

32:58 cubo, temos que inclinar para baixo enquanto nos aproximamos. Caso contrário, não vamos conseguir vê-lo, vamos perdê-lo de vista na câmera. Então, provavelmente, assim que avistarmos o cubo, assim que o identificarmos, deveríamos imediatamente inclinar o alvo da IMU para… Estou esperando ele ajustar. Talvez para 10 ou até mais. Estou tentando avaliar. Talvez 14. E, quando chegarmos bem perto, nós

33:29 iria querer. Então, talvez, não sei, talvez eu ajuste o pitch do IMU para uns 18 e aí, uau. Olha só, veja quanto ele consegue esticar as pernas nessa pose. É isso que eu não entendo: se ele consegue fazer isso, por que não posso simplesmente inserir 22 aqui e depois descer? Não sei direito. Certo. Então, se virássemos à esquerda… Ah, ele ainda está ocupado. Acho que está tentando atingir esse alvo.

34:00 Deixa eu fazer isso. É, estou tentando fazê-lo virar. Parece que ele está ocupado. Mas sabe de uma coisa? Acho que a primeira coisa é me mostrar como você detectaria onde está o cubo verde. Quais métodos você poderia usar para detectar onde está o cubo verde com essa câmera na cabeça? Quais são algumas das suas ideias para isso? E também, como devemos abordar isso? Porque acho que, assim que identificarmos que há um cubo verde, queremos inclinar o corpo para cima, mas eu… Ah, certo, agora ele está trabalhando. Então agora o… o

34:32 giro está funcionando; simplesmente não estava funcionando antes. Estou pensando que, quando você vir o cubo ao longe, deve imediatamente ajustar o pitch para 17 graus e começar a se aproximar do cubo. Provavelmente mais devagar do que isso. Ah, isso está muito, muito bom. E você se aproxima do cubo até ele ficar na parte inferior do quadro. Depois, precisamos garantir que ele fique centralizado de novo. Agora, um problema que tenho é que não parece que consigo afastá-lo. Vamos ver se isso funciona agora. Certo, só as rodas ainda não parecem ter força suficiente, ou simplesmente não funcionam. Fica o aviso. E outra coisa: quando esse cubo estiver

35:06 mais ou menos centralizado, meu problema é que não temos uma boa maneira, no modo de condução, de avançar com menos força ou por menos tempo. Precisamos muito de algo assim. E também precisamos do modo só com as rodas para podermos fazer ajustes finos quando chegarmos mais perto. Além disso, o que mais precisamos fazer? Só precisamos trabalhar nessa aproximação do cubo. Então, queremos centralizar o cubo, nos aproximar dele e, conforme chegarmos cada vez mais perto do cubo, precisamos

35:37 começar a entrar na pose de pegar algo no chão. Vou testar isso agora. Ah, quando clico para entrar na pose de pegar algo no chão, vejo imediatamente que você não está movendo o cotovelo como eu disse para fazer. E você está ficando preso no… já esqueci, no ombro. Precisamos abaixar esse ombro, se pudermos. Agora ele está todo irritado. Quando eu disse para entrar na pose de pegar algo no chão, você moveu o… Estou tentando decidir. Acho que você moveu o ombro antes de mover o cotovelo. E precisa mesmo mover o cotovelo antes de mover o ombro.

36:11 Caso contrário, você vai ficar preso na cabeça da frente. Então, precisa corrigir isso. Mas, sim, quando entrarmos nessa pose de pegar algo no chão, você basicamente quer assumir todas as partes dessa pose, exceto… exceto abaixar aquele braço, porque primeiro precisamos chegar mais ou menos perto e, quando estivermos numa boa posição, aí sim nos aproximamos. Então, vou… Sim, estamos… Uau, isso funciona muito bem. Vamos ver até onde ele vai para a frente. [risos] Ah, meu Deus. Vamos fazer mais uma faixa. Vamos ver se funciona.

36:44 Acho que está bem na frente? [risos] Sim, infelizmente precisamos de uma maneira de fazer ajustes finos. Mas, enquanto fazemos esses ajustes, precisamos mesmo deixar a garra fora do caminho. Então, vamos fazer todas essas coisas e ver o que conseguimos. Certo, isso foi bastante informação. Provavelmente vai levar um tempo. Mas, sim, precisamos fazer algo assim. Temos que trabalhar em como vamos realmente fazer essa aproximação e depois automatizá-la. Quer dizer, eu não… eu

37:18 sei como gostaria de fazer isso manualmente, e nem precisamos mesmo fazer isso. Não preciso desses controles manuais, mas seriam úteis para fins de pesquisa e desenvolvimento. Quer dizer, tenho muita confiança de que essa é uma boa maneira de fazer isso, e você conseguiria ver se o objeto está na garra. Então, gosto muito da pose que temos aqui. Esta é, na verdade, a melhor que já vi. Mas precisamos de uma maneira… precisamos tirar a garra do caminho para podermos fazer ajustes finos e colocar o cubo bem lá embaixo. Ou seja, provavelmente uma regra seria não haver nenhuma faixa de pixels abaixo do objeto, nada abaixo dele,

37:52 basicamente. Acho que seria uma boa regra. Nenhum pixel abaixo dele. É assim que você sabe que está perto o suficiente. Depois, abaixa o braço e pega o objeto. Acho que vai funcionar. Então, é nisso que vou me concentrar. Vamos ver se ele consegue nos levar até lá. O que ele está fazendo? Ah, nem sei o que ele está fazendo. Enfim, vou pausar aqui e voltamos quando ele terminar de fazer isso. [risos] Certo, nosso amiguinho diz que terminou de novo. Vamos ver. Cubo desligado. Deixa eu… não gosto nem um pouco dessa pose. Ah, um empurrãozinho. Legal. Certo. Vamos entrar

38:28 numa pose neutra. Certo. Mas você precisa recolher esse braço. Vamos tentar recolher o braço. Sempre… [risos] Seu filho da… Você está me matando, cara. Está me matando. Certo. A gente… Ah, ele só… Certo, ele só vai arrastá-lo para cá. Precisamos corrigir isso. Essa é uma das coisas que vamos corrigir. Certo. E também temos a detecção do cubo.

38:59 Deixa eu inclinar esse cara para a frente. Certo, vamos testar a detecção do cubo. Ah. Ah. Ah, que incrível. Meu Deus, olha só! [risos] Isso aí. Certo. Vamos tentar inclinar um pouco para baixo, se der. Por algum motivo, ele não quer fazer isso. Esse detector de cubos é ótimo. Vamos voltar. Certo, não sei se estamos esperando ou com o que estamos travados. Vou começar meu relatório aqui porque ele está sendo meio chato. Certo, cara. O detector de cubos…

39:33 definitivamente funciona. O recolhimento do braço… funciona. O único problema é que o braço está batendo no rosto enquanto tenta voltar, porque acho que o ombro começou a recuar antes do cotovelo. O cotovelo precisa se abrir primeiro e só depois começar a recolher o braço; aí, então, o cotovelo se dobra para dentro. Acho que você tentou fazer na ordem errada. Por isso, ele ficou meio travado. Vejo a direção do cubo, mas não tenho certeza do que estou vendo. Eu adoraria testar os

40:05 empurrõezinhos, mas… Ah. Ah, agora as coisas estão funcionando. Que maravilha! [risos] Quando cliquei nos botões, parece que travou. Agora acho que tudo está sendo executado. É uma pena ver isso. Certo, voltamos a ter comandos com atraso, e isso é muito irritante. Não sei bem por que aparece algo como “recurso de controle ocupado” ou seja lá o que for. Não existe alguma maneira de, quando enviarmos um novo comando, limpar o comando anterior e tirá-lo do caminho?

40:36 porque está ficando muito irritante. Além disso, certo, a minha rotação funciona. Então, o meu giro com um empurrãozinho não faz nada. O avanço com um empurrãozinho funciona mais ou menos. Vou tentar mais uma vez. O empurrãozinho para a direita não faz nada. Então, um giro para a direita com um empurrãozinho não faz nada. Um giro para a esquerda com um empurrãozinho também não faz nada. Vamos tentar um deslocamento lateral. Acho que ele tenta fazer o deslocamento lateral. Não acho que faça alguma coisa. Ele tenta se deslocar para o lado, mas

41:08 Na verdade, ele não se desloca lateralmente. Vamos fazer um deslocamento lateral completo. Sinceramente, não acho que um deslocamento lateral completo faça diferença. [risos] Eles simplesmente não fazem nada. Então, vou fazer uma volta completa, uma rotação completa para a esquerda. Isso parece funcionar. Vou clicar nisso mais uma vez. Certo, isso é bem legal. Vou dar um empurrãozinho para a frente. O empurrãozinho para a frente funciona. Gostei disso. Então, enquanto avançamos, precisamos ajustar a IMU. Por algum motivo, essa IMU está simplesmente ignorando tudo

41:40 sobre mim. Certo, ótimo. Agora vou começar a dar empurrõezinhos para a frente de novo. Bem, achei que fosse. Ah, lá vai ele. Certo, então o empurrãozinho para a frente funciona mais ou menos. Vamos fazer isso mais uma vez. Ele não avançou nada. [risos] Meu Deus. Chegue mais perto, cara. Ele não está sendo detectado. Certo, isso está bem bom. Depois vou clicar em uh pose de coleta no chão.

42:11 Mais uma vez, o cotovelo se contrai completamente, e estou preocupado que a gente acabe abrindo primeiro a articulação do ombro, o que vai causar um problema. E o que você está fazendo agora? Certo, talvez ele esteja entrando. Certo, pose de coleta no chão. Então, antes de posicionar o braço, preciso… Temos alguns problemas. Primeiro, vamos dar um empurrãozinho para a frente. Vamos ver se funciona. Legal. Funciona. Minha única preocupação é que talvez não esteja centralizado, mas aposto que está. Certo,

42:43 o cubo está ali. Agora vou mandar posicionar o braço. Quando eu fizer isso, preciso ver o cotovelo se mover antes do ombro. Estou preocupado que isso não aconteça. Vamos ver o que acontece. Cliquei em posicionar o braço. Ainda não aconteceu nada. Ah, aparece “ao alcance de agarrar”. Parte inferior: 100. Certo. Então, ele definitivamente parece saber que está ao alcance de agarrar. Nem tinha percebido isso. Estou clicando em posicionar. Ah, certo. O segundo comando para posicionar o braço. Certo, posso confirmar que o cotovelo se abre. Depois, a garra se abre e, em seguida, o ombro desce.

43:15 Então, parece estar funcionando. Ah, que lindo. Ah, perfeito. [risos] Meu Deus, funcionou mesmo. Certo, então só teríamos que fechar a garra a partir daí. É por aqui? Ah, sim. Ah, sim. Então, fechamos a garra e depois só teríamos que levantar o objeto. Ah, me perdi. Certinho. É por aí? Nem sei. Acho que provavelmente queremos mover o ombro. Por algum motivo, estou tentando ajustar

43:49 o ombro depois de agarrar, mas não consigo fazer o ombro levantar. Vou clicar em recolher o braço e vamos ver o que acontece. [risos] Certo, cliquei em recolher o braço. Ainda não estou vendo nada. Talvez tenha mais coisas na fila. Não tenho muita certeza do que está acontecendo, mas todo o resto parece ter funcionado muito bem. Então, agora eu gostaria de automatizar tudo. Sabemos que temos todas as pecinhas de que precisamos. Sabemos como centralizar o cubo no quadro. Sabemos como

44:22 dar empurrõezinhos para a frente e coisas assim. Então, acho que todas essas coisas, como virar à esquerda, virar à direita ou girar, ou seja lá o que for, funcionam tão bem quanto o empurrãozinho. Mas talvez a gente queira ajustar o empurrãozinho. Fora isso, todo o resto parece muito bom. Então, acho que estamos prontos para automatizar isso de verdade. Vou colocar o cubo mais longe e vamos ver se você consegue chegar até ele. O que acha? E depois também precisamos fazer o retorno ao ponto de partida funcionar.

44:54 Isso talvez leve quatro anos para preencher. Mas gosto da conversão de fala em texto. Isso deixa tudo muito mais prático. Eu não gostaria de ter que digitar tudo isso. Pronto. Certo. Vou deixá-lo trabalhar nisso. Acho que vou reiniciar o cubo e tudo mais, e então vamos ver. Vamos ver se ele consegue chegar ao ponto de ir pegar aquele cubo. Acho que deveria conseguir. Acredito que aqui estamos usando uma máscara HSV, o que está perfeitamente bem. O Segment Anything provavelmente vai ser melhor para objetos mais genéricos. Isso aqui…

45:28 Não sei o que ele está fazendo aí. Espera. Vou enviar isso mais uma vez. Certo. A pose que você está assumindo agora não é aceitável. Ela faz as pernas e os pés levantarem do chão. Não faça isso. Certo, vou deixá-lo trabalhar nisso e depois voltamos. Beleza. Tomei café da manhã e o GLM me garante que agora temos uma variante funcional.

46:03 Agora vamos ver. Reiniciei o cubo e o robô Xcode, e vamos ver o que acontece. Temos alguns botões novos. Supostamente, posso simplesmente clicar em coleta automática. Vamos clicar e ver o que acontece. Podemos ativar o rastreamento do cubo, espero. Vamos ver se funciona. Curiosamente, parece que talvez o GLM tenha quebrado essa parte, mas vamos ver o que acontece. Vou avisá-lo disso. Talvez eu precisasse…

46:35 Será que eu precisava atualizar a página forçando a atualização? Talvez só precisasse de uma atualização forçada. Não sei bem por que o zoom… Parece que o zoom acabou de mudar. O quê? Ah, talvez seja este texto. Isso é um texto de depuração. Basicamente, ele meio que informa o que está acontecendo. Então, acho que… Sim. Certo. Detectou a pose de coleta no chão. Então, entra no estado de coleta. Ah, lá está o cubo. Talvez a detecção do vermelho esteja um pouco lenta, mas agora ele está usando as rodas para avançar aos poucos. Até aqui, tudo parece bom.

47:09 Vamos ver. Vamos ver como ele se aproxima com nosso robô programado no vibe coding [risos], enquanto tomamos café da manhã. Que época para estar vivo. Estamos comendo, e nossos robôs estão aprendendo a fazer coisas. Vamos ver. Isso provavelmente está perto o suficiente. Vamos ver. Ah, ele vai avançar aos poucos. Certo, muito bem. Está seguindo as regras. Eu disse que o objetivo era não ter pixels visíveis embaixo. Vamos ver se ele realmente vai. Alinhado, sem pixels, parte inferior ao alcance de agarrar. Certo, parece que talvez ele vá

47:40 tentar. Não sei bem qual é o atraso neste momento. Vou anotar isso. Vou copiar aqui, por precaução. Ei, deixa eu… Certo, não consigo fazer isso. [limpa a garganta] Vou só avisá-lo. Certo, estamos executando a coleta automática. A aproximação pareceu bem boa, eu diria. A única coisa estranha é que agora estamos junto ao cubo. Aparece “ao alcance de agarrar”. E não entendo por que há qualquer atraso, já que o agarramento é todo… é

48:12 tudo baseado em regras, certo? Quer dizer, é só agarrar. Então, assim que estivermos ao alcance de agarrar, por que o agarramento não acontece imediatamente? Talvez seja um bug. Mais uma vez, pode ser que eu esteja na versão errada, ou talvez não tenha atualizado a página forçando a atualização. [fungada] [limpa a garganta] Vamos ver o que ele diz sobre isso. Ah, vou trazê-lo para cá. Mas estamos perto. Bem perto, com certeza. E gosto muito mais desta

48:44 na verdade, do que da outra. Esta coleta é muito melhor porque o ângulo fica bom. E acho mesmo que podemos deixar essas pernas um pouco mais altas. Acho que, para fazer isso, teríamos que controlar cada servo individualmente, em vez de usar a API de nível mais alto. Não queria me aprofundar demais nos detalhes, mas acho que podemos deixá-las um pouco mais inclinadas. Mas, se fizermos isso, bem, espera. Vamos falar disso daqui a pouco. Deixa eu… o agarramento é baseado em regras, mas o que é baseado em regras inclui… Certo. Sim, mas ainda assim…

49:19 Tudo bem. Mas por que ainda não tentamos pegar? Para mim, parece tudo certo. E por que o cubo está fora? Isso também não faz sentido. Espera aí. Vou fazer uma atualização forçada. Não acho que seja isso que precisamos fazer. Preciso começar a prestar atenção em qual build estamos usando, ou algo assim. É, simplesmente não faz sentido. Achei. Para cima. É o excesso de alcance do bloqueio da minha garra. Tudo bem quando a IA simplesmente culpa a si mesma. É a coisa mais divertida do mundo. Ah,

49:51 verificar a garra novamente depois de corrigir o portão. Gosto quando ela começa a usar palavras como “engatado” e… estou tentando lembrar de algumas outras que você sempre vê e pensa: “Poxa, será que dá para parar com isso?”. Então, este é um exemplo perfeito do motivo pelo qual eu realmente quero um harness, porque muita coisa deveria ser detectada e resolvida automaticamente. Certo. Deixa eu ver aqui. Consertar o urso. Por que não pegar? Agora ela vai tentar pegar ou não? Ah, acho que não. Certinho. Pressione “coleta automática” uma vez. Eu meio que queria recuar e

50:26 fazer isso, mas vou pressionar “coleta automática” só para ver. Ah, ele provavelmente vai perder o cubo se fizer isso. Vamos ver. Também quero ver meu cubo. Girando para encontrar o cubo. Está bem ali, cara. [risos] Detectado automaticamente. Ah, vamos ver se ele vira. Ele precisa virar para a direita. Historicamente, ele tem se saído bem nisso, mas, é, infelizmente está perto demais do cubo. Eu meio que achei que isso poderia ser um problema. [fungada] Ah, ele localizou. Certo.

51:02 Tem que centralizar isso direitinho. Ah, é. Olha só, [risos] está indo direto para dentro. Por isso eu disse que deveria ser baseado em regras. Assim que você estiver nessa posição, deveria ser muito rápido. Certo. Muito bom. Muito bom. Vamos lá. Olha só. Ah, pegou. “Nenhum cubo no quadro”. Isso é meio estranho. Ele deveria simplesmente saber que fez a pega. Ah, a única coisa que não sei é: já que fizemos a pega, por que ele não levanta o braço?

51:34 Porque aposto que eu poderia simplesmente… apertar “recolher braço”. Opa. Não sei se eu realmente… Ah, certo. Ele meio que arrastou o cubo. Acho que a função de recolher o braço também tem algumas falhas. Acho que ele simplesmente deixou o cubo cair. Filho da… Certo, a aproximação foi boa, a pega também, tudo isso funcionou muito bem, mas, quando fizemos… quando o cubo estava na garra, não conseguimos realmente levantá-lo. Vou recuar. Na verdade, vou apertar “parar”. Posso simplesmente… Isso vai funcionar? Enfim, não conseguimos realmente levantá-lo

52:08 e, quando tentei recolher o braço, ele arrastou o cubo pela cabeça e acabou deixando o cubo cair. Tenho quase certeza de que temos uma função de coleta que não deveria fazer isso. E recolher o braço também não deveria fazer isso. Mas, o mais importante, não conseguimos realmente pegar… quer dizer, agarramos o cubo perfeitamente. Só precisávamos levantar o cubo e depois ficar de pé, só isso. Aí teríamos o ciclo completo. Então, será que podemos analisar algum problema que adicionamos e que está causando isso e…

52:39 corrigir? Aí acho que basicamente terminamos. Quer dizer, a aproximação foi boa. A pega foi boa. Tudo funcionou muito bem. Acho que só precisamos daquela última etapa de levantar o cubo. Depois disso, acho que quero adicionar a tarefa de colocá-lo numa caixa, tipo pegar coisas do chão e colocá-las em algum local de armazenamento. Até agora, na minha opinião, esse LAR não teve nenhuma utilidade. Mas, no futuro, quero conseguir mapear o ambiente e fazer algo como uma grade de ocupação, e então apenas registrar

53:13 onde está a caixa, onde fica a caixa de depósito, por assim dizer, para as coisas no andar térreo. Usando o LAR, você pode descobrir, com base em padrões, onde está nessa planta do prédio que você conhece. Aí você sabe onde fica a caixa nessa planta e pode ir até lá. Depois, desde que vá na direção da caixa e fique de frente para ela, poderá identificá-la, como fizemos aqui. Ah, outra coisa que eu gostaria de adicionar é segmentar tudo, talvez, ou algum outro

53:43 modelo bem pequeno, talvez, para ampliar bastante a variedade, porque, no fim das contas, não quero necessariamente pegar cubos. Peças de Lego são um bom exemplo. Eu gostaria de pegá-las. Mas também há todo tipo de coisa, como bichos de pelúcia, meias e sapatos. Bem, não acho que este robô consiga pegar sapatos, mas mais tarde teremos outros robôs que, em teoria, poderão pegar um sapato. Então queremos que ele consiga lidar com isso. Mas vocês já podem ver que, quer dizer, eu falei bastante com vocês. Não sei exatamente quanto tempo

54:16 este vídeo vai ter. Mas, com um esforço muito pequeno, temos um robô que, em praticamente qualquer condição variável, consegue ir encontrar um cubo e pegá-lo. Podemos mudar a iluminação. Podemos mudar o piso. Podemos mudar várias coisas e ele ainda consegue fazer isso. E não precisa ser um cubo. Podemos mudar isso, porque, basicamente, só precisa ser algo que possamos detectar e delimitar com uma caixa delimitadora. A partir daí, podemos nos aproximar literalmente de qualquer coisa. Talvez isso nos custe um pouco mais de tempo na detecção inicial, mas nem tanto. Quer dizer, na maioria dessas coisas dá para fazer uma detecção até mesmo

54:48 com o GLM53 flash. Eu estava fazendo detecções com ele em cerca de 200 a 500 milissegundos. Então, mesmo que você queira o detector de imagens ou de objetos mais poderoso e absurdo, poderia simplesmente usar o GLM53 flash. Então, é muito legal. Espero… não quero terminar este vídeo sem termos literalmente a aproximação, a pega e o robô ficando de pé. Simplesmente vai parecer errado se eu parar por aqui. Tenho muita confiança de que vamos conseguir, mas preciso ver isso. Então, curiosamente, olha só,

55:20 isso é um erro. Meu Deus, se ele tentar pegar isso, vou enlouquecer. Por favor, não tente pegar [risos] isso. Eu ia enlouquecer. É. Teste de recolhimento… ah, acho que está só testando recolher o braço. Não sei bem. Não faço ideia. Não tenho certeza. Está claramente dizendo que está fazendo algum trabalho de pesquisa e desenvolvimento aqui. Então vou deixar continuar. É. Uma coisa que vou acrescentar é que muita gente está usando modelos como Astra e outros para fazer isso. Espera aí, deixa

55:54 eu confirmar. Vou reiniciar, se conseguir. Certo, vou fazer uma atualização forçada só para ter 100% de certeza. Vamos fazer “cubo no elevador, iniciar coleta automática”. Talvez isso esteja no lugar de “recolher braço”. Não tenho muita certeza. Para recuperação manual. Entendi. Certo, então a coleta automática deve funcionar. Vou apertar. Vamos com tudo, pessoal. Vamos ver. >> [limpa a garganta]

56:30 >> Ah, essa detecção não parece boa. [risos] O que está acontecendo aí? O que está acontecendo aí? Que estranho. Vamos ver se ele realmente faz a aproximação. Aposto que é um bug, mas vamos ver. Ah, é. Algum tipo de bug esquisito. Vibe coding. Isso provavelmente… nem é muito difícil, porque você precisa girar. Mas acho que a outra pega também exigia uma rotação. Então vocês vão ter que acreditar em mim ou ter assistido àquilo para saber que funcionou mesmo. Gosto disso. É legal. Vamos ver.

57:03 Isso está bom o bastante ou…? Meu Deus. Ele tem que ir direto. Interessante. Então, acho que ele chegou um pouco perto demais. Nossa, agora está tão rápido. Ele simplesmente vai com tudo. É meio legal de ver isso. Idealmente, ele provavelmente deveria ter chegado um pouco mais perto, mas vamos ver se ele se levanta desta vez. Meu Deus, [risos], foi rápido demais, cara. Não, acho que ele nem chegou a agarrar por completo. Poxa, estivemos tão perto. Eu

57:35 conseguia literalmente sentir o gosto da vitória, gente. Ainda consigo sentir. Ele está com a mão, a garra, na cara. Certo, espera aí. Tudo bem, estamos tão perto. Sinto o gosto da vitória, cara. Mas, é, você cometeu alguns erros. Um deles é que provavelmente só precisávamos chegar um pouquinho mais perto, mas, para ser sincero, acho que fizemos uma boa pegada. Acho que você simplesmente não apertou o suficiente. Tipo, o cubo nem se mexeu quando você tentou pegá-lo. Então, acho que a principal falha aqui foi que você literalmente não o agarrou

58:06 com força suficiente. Então, precisamos corrigir isso. Além disso, quando o braço vai voltar para a posição de elevação, ele ainda está tentando esfregar na cabeça do robô XO. Isso é idiota. Não deveríamos fazer isso. Poderíamos até mover um pouco o cotovelo para fora primeiro, ou algo assim, e depois recolher o ombro e, em seguida, recolher o cotovelo, ou algo do tipo. Ficar batendo no rosto é idiota. Temos que parar com isso, cara.

58:39 Além disso, a aproximação, a pegada, está tudo bem. Como eu disse, na verdade acho que você deixou o cubo cair simplesmente porque… simplesmente porque, sinceramente, eu estava tentando fazer com que ele não ficasse centralizado. Acho que ainda está no modo de pegar automaticamente. Enfim, esqueci que estava gravando enquanto falava com vocês, espectadores. Mas enfim, é, vamos corrigir isso. Quando formos pegar, precisamos garantir que estamos apertando com força. Você provavelmente pode simplesmente continuar tentando

59:11 agarrar com mais força, e vai agarrar com mais força. [risos] Acho que você precisa fazer isso. Fora isso, acho que estamos prontos. Mas, sim, temos que corrigir isso. Temos que apertar um pouco mais. Temos que parar de acertar o próprio rosto com o objeto que acabamos de tentar pegar e vamos terminar isso. Vamos terminar isso. Certo, vou enviar isso. E, com sorte, vamos conseguir. Eu achei que talvez, só talvez, enquanto assistíamos, ele fosse conseguir. Mas sinto o gosto da vitória. Estamos tão perto. Estamos tão perto. Então, vamos deixar ele trabalhar nisso. Com sorte, com sorte, estamos

59:44 a poucos instantes do sucesso. Tudo bem, mais uma vez, o GLM está afirmando que fez tudo por nós. Vamos ver. Vamos ver o que temos. Pelo visto, também tem um bug bônus que ficou ligado o dia todo. [risos] Que diabos? Não sei. “Current pro silently break.” Interessante. Certo. É, vamos enviar. Vamos ver o que acontece. Vamos fazer uma

1:00:15 atualização forçada e, é, posso simplesmente fazer isso? Só quero forçar. Então, cubo ligado. Será que o cubo…? Ah. Ah, interessante. Então, o cubo é o controle. Isso é hilário. E depois, pegar automaticamente. Então, isso vai ficar sempre no controle. Espera aí. Desculpa, só preciso mexer nisso. Isso é engraçado. Quer dizer que provavelmente dá para começar a mover o cubo. Certo. Mas não vou fazer isso. Vamos usar a opção de pegar automaticamente.

1:00:47 Vamos ver o que acontece. O que vocês acham? Finalmente é agora? Está um pouco… Quase não é justo, porque vocês já identificaram “verify height and pitch” e depois “approach”. Não tenho muita certeza. Vocês sabem quanto tempo ainda falta no vídeo, então é um pouco… meio injusto. Ele está pronto para pegar, cara. [risos] Com certeza não está na posição certa. Certo, agora está na posição certa.

1:01:21 Ele está à espreita. [risos] Eu meio que gosto da versão original do Twitter, tipo o portão enquanto ele se aproxima e todas as ações que ele executa ao se aproximar do cubo. Eu meio que gostava daquilo. Simplesmente parecia melhor. Então, talvez eu tenha que trazer aquilo de volta. Mas, como eu disse, só queria mostrar o processo pelo qual passo em algo assim. As pessoas sempre pedem um vídeo de vibe coding. E, para ser sincero, acho que, na maioria das vezes, vibe coding provavelmente é muito entediante de assistir. Essa é a minha avaliação. Então, espero que isto não tenha sido

1:01:55 superentediantemente chato. Como eu disse, vou tentar cortar todos os tempos de espera, mas… Certo, ele está entrando. Ele agarrou até o fim? Certo, parece que sim. Certo, por favor, só pegue e, por favor, seja gentil. Certo. “Shoulder verified squeeze ladder.” Certo, agora não entendo: ele agarrou, mas ainda não… Por que não quer levantar? Certo, aproximação linda. Pegada linda

1:02:25 também. Está tudo ótimo, mas, por algum motivo, por que não estamos levantando o cubo automaticamente depois de agarrá-lo, depois de completar a pegada? Ah, bom, acho que me enganei. Meu Deus, que agressividade. [risos] Provavelmente precisamos diminuir essa agressividade. É um pouco lento. Isso é meio ridículo, mas… Ah, ele vai voltar. Certo. Certo. Provavelmente eu preferiria que ele fosse para uma posição de repouso completa. Mas quer saber? Vou

1:02:59 considerar isso uma vitória. Não vou tomar o tempo de vocês para corrigir tudo isso. Literalmente, eu só teria que dizer: “Ei, pode fazer isso?” Então, no geral, cara, estou muito feliz com isso. Isso é muito bom. Acho isso bem legal. Acho que, considerando onde estamos hoje, e eu ainda estou gravando no meu programa de transcrição. Espera aí, preciso corrigir isso. Certo. Como eu estava dizendo, para chegarmos até aqui, né, não faz tanto tempo assim. Quer dizer, eu diria que há uns três anos

1:03:31 quando você comprava um robô novo, dava literalmente para tirar este robô da caixa. Você nem precisava consultar a documentação do SDK. Não precisava fazer nada. Quer dizer, precisa… vejamos, primeiro você precisa configurar o Wi-Fi. Então, quando recebe este robô específico, precisa conectar um mouse e um teclado, iniciar o Linux no Raspberry Pi e depois entrar em uma rede Wi-Fi para poder fazer uma conexão SSH. Depois disso, acabou. É só isso que você precisa fazer com este robô. Você só tira ele da

1:04:01 caixa. Depois, basta enviar as informações do SDK para um LLM e pronto. É só isso que você precisa fazer. Aí, é só começar a pedir: “Ei, quero criar XYZ”. E, como no caso desta tarefa, poderíamos fazer isso com uma máscara HSV. É muito simples: basicamente, basta filtrar pela cor para realizar esta tarefa. Para coisas mais complicadas, provavelmente poderíamos usar o modelo segment anything. Acho que há o um e o dois. Existe um modelo dois para isso. Então, você poderia usar esse e, se não funcionar, pode literalmente usar um LLM com visão

1:04:32 como o GLM53 flash, que também detecta literalmente qualquer coisa, consegue desenhar caixas delimitadoras e faz isso a até cerca de três quadros por segundo, o que é muito bom, sinceramente, para coisas assim. Dá para fazer coisas de uso bem geral. Outra coisa que dá para fazer com o GLM53 flash é dizer, por exemplo, que você está olhando para uma geladeira. Você poderia dizer: “Certo, encontre a geladeira neste quadro, mas também me diga onde está a alça. Como devo agarrar a alça?” E, a partir daí, você pode passar as informações para o seu robô

1:05:03 … os arquivos do modelo para o LLM e determinar: “Certo, quantas articulações há no meu braço e em que posição, em que pose devo ficar para agarrar aquela maçaneta da geladeira e abrir a geladeira?” Essas são coisas que você pode fazer usando um modelo de linguagem de propósito geral enorme, em vez de uma VLA. Existem algumas VALAs muito legais que conseguem fazer coisas como a que acabei de descrever e basicamente gerar um JSON estruturado, mas elas não são tão inteligentes nem tão úteis quanto um LLM. E aí descobri que você pode simplesmente usar

1:05:36 um LLM para fazer tudo. Primeiro, ele pode gerar diretamente um JSON com as posições das articulações, mas também pode ajudar você a fazer a parte da máscara HSV, porque isso é mais rápido. Para muitas coisas, podemos simplesmente usar técnicas bem rudimentares do OpenCV para fazer um monte de coisas legais. Enfim, espero que vocês gostem. Espero que achem isso interessante. Também acho legal que tudo isso esteja sendo feito com o GLM 53 Flash. Tenho visto muita gente, especialmente ultimamente, usando Astra em robótica. Uma coisa que eu diria é… ou até mesmo Claude Code ou… como é que se chama? Fable, [risos] já não significa nada para mim.

1:06:09 Fable, Astra [limpa a garganta]… Eu adoraria nunca mais usar Astra. Eu uso. Quer dizer, não há dúvida de que Astra é mais inteligente que GLM 53 Flash. Recentemente, eu tinha um computador — um dos computadores que tentei usar como servidor de IA — e, enquanto eu estava lá fazendo algumas coisas, tirei o disco rígido do Windows, ou o NVMe do Windows, e eu…

1:06:40 Acho que ele estava no meio de uma atualização do Windows. Não sei, não faço a mínima ideia. Não acredito nisso. Mas, quando tirei aquele disco e comecei a ligar as coisas, começou a aparecer uma tela azul, mesmo quando eu tentava iniciar o Ubuntu. Que [risos] diabos? Foi a coisa mais estranha. Então coloquei o disco do Windows de volta, mas aí tudo ficou bagunçado. Não conseguia entrar no Windows: eram telas azuis sem parar, e o disco de recuperação não funcionava, ou o pendrive não funcionava. Então usei Astra, dei acesso ao shell do Linux para Astra, porque aquela máquina tem inicialização dupla com…

1:07:12 Linux e Windows. Dei acesso ao Linux e ele entrou e, não sei, começou a mexer no Windows [risos] e consertou. Eu não conseguiria descobrir como fazer isso. Nunca ia conseguir. Não havia quantidade de pesquisas no Google ou de leitura de fóruns que me fizesse descobrir. Simplesmente passei o problema para Astra e ele resolveu. Isso é louco para mim. Quer dizer, é realmente incrível. Mas também é legal ver como esses modelos open source, como o GLM, estão perto disso. E não estamos…

1:07:42 tão longe de ter modelos open source confiáveis o bastante para fazer algo assim. Ainda não deixaria nem Astra rodar com acesso total à raiz. Quase teria deixado o GLM 53 Flash, porque, sinceramente, qual é a pior coisa que poderia acontecer? Na pior das hipóteses, tenho que reinstalar o Windows ou algo assim, sabe? Quem se importa? Então, meio que quero quase deixar ele estragar tudo de novo [risos] e ver se o GLM 53 Flash consegue resolver. Porque comecei deixando ele tentar, mas vi o que estava começando a tentar modificar e pensei: “Isso parece arriscado.” [suspira] Então, é isso. E também…

1:08:16 eu estava fazendo isso no meu computador principal. E se o GLM — e se qualquer um dos modelos desse algum problema e, em vez de executar comandos na máquina remota, começasse a executá-los no meu computador principal, sabe? Isso me deixa muito nervoso. Mas, sim, gostaria de tentar coisas mais difíceis assim. Pensei: “Opa, isso daria uma boa pergunta de benchmark.” E aposto que dá para repetir com relativa facilidade. [risos] Enfim, certo. É isso. Ah, a outra coisa que eu ia dizer sobre Astra é que ele é muito lento. Então, até…

1:08:46 isso levou muito mais tempo, acho, porque estou falando com vocês enquanto tento fazer as coisas e também estou sentado aqui. Muitas vezes, quando estou fazendo algo assim, vou estar fazendo outras coisas ao mesmo tempo. É só você enviar a entrada e depois ir embora; quando voltar, o resultado estará pronto, sabe? Mas uma coisa sobre Astra é que ele é muito lento. Pelo menos com o GLM 53 Flash, dá para trabalhar, mais ou menos, em tempo real. Num projeto como este, você fica enviando sua…

1:09:17 entrada e esperando os resultados. Normalmente, fico lendo o texto enquanto ele aparece. Mas, como vocês podem ver, ele vai bem rápido. É um modelo rápido, especialmente se você puder executá-lo localmente. Estou conseguindo cerca de 200 tokens por segundo neste logo e, sim, é agradável de usar. Mas, se tentar usar Astra para isso, é muito lento. Usar Astra literalmente para uma execução ao vivo, como se Astra fosse uma VLA, é muito doloroso, na minha opinião. Simplesmente não dá; é lento demais. Já se você puder usar um modelo como este, ou até um menor e mais rápido, seria legal. Por exemplo, o DeepSc V4 Flash, sabe? Podemos chegar a 400 tokens por segundo e ficar muito rápidos, especialmente se você usar Dlash e depois LM cache. Se todas essas coisas se juntarem, suas respostas serão muito rápidas; você poderia fazer as coisas bem depressa. Então, acho que estamos muito perto. Com o GLM 53 Flash, não estamos usando nenhum LM cache. Então, se conseguíssemos isso também, provavelmente poderíamos fazer qualquer detecção…

1:09:49 que quiséssemos ao vivo com o GLM 53 Flash, sem problemas, especialmente se estivéssemos rastreando os mesmos tipos de objetos, ou objetos parecidos. Acho que poderíamos acelerar muita coisa. Enfim, certo, acho que é tudo por enquanto. Se quiserem ver mais sobre esse conceito, me avisem nos comentários. Como eu disse, quero muito adicionar… quero criar algum tipo de harness, porque muitas dessas coisas são óbvias e acho que serão iguais, não importa o robô nem a tarefa. Por exemplo, bater em você mesmo, como esbarrar na câmera da cabeça ou atingir seu corpo com o braço, simplesmente não deveria acontecer, sabe? Podemos literalmente abrir os arquivos do modelo em um programa de visualização 3D e entender se houve contato ou não, sabe? Esse tipo de coisa.

1:10:21 E a fusão de sensores também seria legal. Com qualquer LAR, você praticamente sempre consegue criar uma grade de ocupação. Então, quero fazer coisas assim. Não sei. Ainda não decidi totalmente o que quero fazer ou como quero continuar com esse robô. O que seria? Quer dizer, claramente este robô deveria pegar coisas do chão. E é muito específico para pegar coisas provavelmente menores do chão.

1:10:53 com o braço.

1:11:27 chão. Mas talvez uma das coisas que eu gostaria de fazer daqui para a frente seja, sim, ter uma caixa em algum lugar específico e então mapear com o LAR, para sabermos onde estamos o tempo todo. E, quando tivermos algo, ir até a caixa e simplesmente repetir: continuar procurando coisas no chão que precisem ser colocadas nela. Mais uma vez, um LLM é ótimo para isso. Então, obviamente, pode haver certas coisas no chão que deveriam estar ali, mas muitas delas simplesmente estão fora do lugar. E, com VLMs e LLMs, você pode literalmente dizer: encontre qualquer coisa no chão que seja um brinquedo de criança; encontre um brinquedo de criança no chão, e ele fará isso. Ou, sabe, encontre algo no chão que provavelmente deveria ser recolhido, e ele conseguiria fazer isso.

1:12:00 Você também poderia provavelmente dizer: encontre algo pequeno no chão, e ele encontraria. Enfim, há muitas coisas muito legais. Espero que vocês tenham gostado. Espero que não tenha sido entediante demais ver alguém fazer vibe coding. Vou dar o meu melhor para editar e deixar o vídeo razoavelmente divertido, espero. Então, me digam o que acharam. Dúvidas, comentários, preocupações, sugestões, qualquer coisa. Fiquem à vontade para deixar nos comentários. Caso contrário, vejo vocês no próximo vídeo. Ah, e também…

1:12:32 se quiserem comprar este robô, vou colocar um link na descrição. Acho que é mais ou menos um link de indicação. É um link de rastreamento. Não há marketing de afiliados; eu não ganho nada. Nem tenho certeza se vocês economizam usando o meu link, mas é um link que, acho, eles estão tentando usar para fins de rastreamento. Basicamente, para saber quem indicou vocês. Então, vou colocar um link na descrição se quiserem conhecer este robô. Acho que ele é bem legal. Na verdade, tenho mais alguns robôs a caminho. Tenho um Sourcey. Esqueci como se chama, se é realmente…

1:13:03 literalmente chamado Sorsy. Tenho um desses e depois um near — talvez eu esteja lembrando o nome errado. Também comprei um dos open ducks pequenininhos da HuggyFace. Achei que aquele era legal. E acho que esses são todos os robôs que estão a caminho. Mas, sim, definitivamente tenho vários robôs que, espero, veremos no canal muito em breve. Enfim, certo, agora é sério, é só isso. Vejo vocês da próxima vez.

Transcrição original

[00:00] So, I guess it just got like maybe a little too close. Oh, it’s so fast now. He just like bang goes for it. It’s kind of cool to see that. He probably should have gotten a little closer ideally, but we’ll see if he stands up this Oh my god, [laughter] that was way too fast, bro. No, I don’t think he actually did the full grab either. Oh man, we were so close. I could literally taste victory, y’all. What is going on, everybody? Welcome to a video on everything is LLM now. And uh what I want to talk about today is using

[00:34] LLM for robotics, specifically this little XO uh mini robot, but there’s you can do this with just about any any robot, including like fixed based arms, all of that. And what you see here is actually GLM 53 Flash controlling basically the highle control. So you wouldn’t use this for locomotion or like a gate like how to walk. you would still use like reinforcement learning and extreme scale and just get that done in like 30 minutes and you’re done. Um, but for the purposes of what do you want to pick up? Where where might I find that

[01:06] thing that you want me to pick up and then how do I actually use the tools in my tool belt to go get that thing on that robot? Uh, LLM are turning out to be very good at this and much better than the competition and um much more enjoyable than the competition. [laughter] So uh the competition is like VAS or ACT or some other visual motor type of model where you have to either try to use simulation but simulation is very tough because you have to build that whole simulation. uh and that takes a lot of

[01:38] time and then you have a problem of sim to reel especially when it comes to camera information or you have teleyop where you have to like manually move that robot and do that whatever you’re trying to do manually a bunch of times and at the end of the day you still have this it’s not sim to real but it’s more like uh if anything in your environment changes like the lighting changes enough or the task just changes just enough like if you have this with the GLM model you know pick up the green cube You could also pick up any other color cube.

[02:08] You could probably pick up any other color ball. Anything that will fit in that gripper once you kind of have the idea for how you want to get it done. Um what you’ve done there will work and it will translate very well to different different surfaces, different lighting conditions, everything. Um so it’s very compelling. And so anyways, uh that’s what I’m going to be kind of showing today. We’ll see. I’m going to do everything live. Uh there’s already like I’m going to be using the OM harness so it knows some things that I’ve done because of memory. I’m going to be working on the XCO which I already kind

[02:39] of have files there. So it’s almost certain the LLM is going to like look at some of the other files. Um, but I just kind of want to show you the way that I would work through a problem like this and uh give you an idea for like what you can do with LLMs um for for tasks like this and like little robots because I think we’re living in a really nice time for for doing robot development both in terms of how do we imbue hardware with intelligence but also um just deploying an SDK and playing with small robot like this like certain some

[03:11] of these things that we’re going to do today in like one minute or 5 minutes would be things that would take you hours or days or even maybe a week. Uh, and I just it’s it’s crazy where we’re at. So, uh, the robot I’m going to be using is this, uh, XO mini twowe robot. Um, I actually really like this. I’ve been following this company now for, um, I think it’s been like a little over 5 years now. Uh, and I’ve got I think I have four of these like quadriped things and I I think I have maybe two have the arm. Uh, I don’t have any with the LAR.

[03:42] And the big new thing this time around are these wheels. And I have wanted a little quadriped with wheels for so long because what the wheels do for you is you can walk on like not ideal terrain. Like you could take this almost certainly and put it on like pravel or just even like full size like you know 57 rock. You could probably put it on there. And the thing is you can you can either walk without the wheels spinning. You can walk wheels only. So you can just roll or you can walk with the wheels spinning and the legs stepping.

[04:16] And what this gives you is like if you come up to like a ledge or something like that, it’s like an inch high. Sometimes it’s kind of hard to get over that ledge and then you need all you need to like load a different gate entirely to get over the ledge. Uh whereas in this case, you actually don’t. You’re just spinning the wheels. So as soon as you hit that ledge, even if you didn’t quite get that foot right over that ledge, well, that wheel’s spinning. So it’s just going to pull you over that ledge. And uh that’s really cool. I also uh the arm is quite nice. It does actually also rotate. So, it has uh a rotation here and then the shoulder joint pivots and then it’s got like an elbow joint that pivots and then you

[04:49] have the gripper. Um I like that. Uh that has always been the case, but the new thing is the shoulder rotates. Uh which is kind of cool. I haven’t found a good use case because you still you have to see what you’re doing. And I think if I would change anything on this robot, it would be there’s the camera is like right here. I actually kind of wish the camera was here on the gripper because sometimes the gripper actually does run into the to the camera. Like one, it’s kind of in the way. Uh two, if it was here, you’d still always have that forward- facing camera. But the problem is when you’re trying to pick something

[05:21] up off the ground, probably the hardest part with this robot is getting close enough to the object where you can still see that object, but then also make contact with the gripper. So, another option would be maybe have the gripper have longer uh like longer tongs. I don’t know what to call those. Uh those could be a little longer. The arm, like the forearm could be longer, so you could get a little more length and then it would be a little more versatile. Uh so, these are all things that you could probably just modify, right? It would be very easy. You could just like honestly tape some some like plywood or something

[05:55] [laughter] to the dogs um and achieve a better objective most likely. Alternatively, you could have like a hood over that camera and then the hood has a mirror on the top. That would also help. Um, so there’s a lot of little stuff that I might modify, but I’m trying I’m going to try to keep everything stock for today. Uh, anyway, let’s go ahead and just start working with it and I’ll show you just how easily we can get into all this stuff. So, uh, I’m going to move this out of the way. I am going to make a new folder here. We’ll call it Xcode. We will open that up. And I’m just gonna

[06:29] open terminal in here. Uh, and I don’t really think we need this anymore. Okay. So now, uh, we’re going to try to do everything with GLM53 flash NVIP4. I have done all this with the native precision. NVIP4 seems to perform quite well with GLM53 flash, but we’ll find out. So, uh, the first order of business is I kind of just want to pass a little copy pasta over. So copy pasta.

[07:02] So what I just passed, let me do this is um I’m just explaining to the uh to GLM, you know, hey, we’ve got this XGO mini uh whatever. Uh here’s the SDK, here’s the URDF, here’s the STLs, the meshes, all that. And then also Wi-Fi is set up. Here is the IP address and the password. And I’m just now realizing I didn’t turn on the robot. >> [laughter] >> Let me go uh let me go turn it on. Okay, try again. Also, from here on out, I do

[07:33] also have speech to text. I know a lot of people use uh services for this. I implore you to consider how those services work. You have to send in your voice data and almost certainly they are storing your voice data. This was many years ago. I pulled my uh my Google takeout data and one of the most jarring things was all of the I think it’s Hey Google or something like this. all of those recordings were still there and they were they were like five plus years old and I like why are those saved [laughter] and from that

[08:05] moment forward I don’t use uh I’m like unwilling to uh to use anybody’s like speechto text service and also you don’t need to we have whisper you can run whisper locally it’s a tiny tiny model you have you will have no idea it’s running so don’t even bother um so I’m going to be using that so sometimes I’m going to be speaking into my mic and hopefully you’ll understand the difference. Uh so, okay. In password. Yeah. Yeah. Yeah. Okay. Okay. Cool. [snorts] Okay. Great. Uh could you please uh give

[08:37] us like um a very basic front end? I want to see the streaming head camera on the uh XO. I want very basic controls for the gate. So for example, we should be able to say, hey, we want to go forward, backwards, rotate, uh change the body height up, down, and then also change the body tilt based on the uh the IMU. So um probably ideally just allow us to address the IMU specifically, like what angle do we want? Cuz eventually what we’re going to try to do is pick

[09:08] something up off the floor. And in order to pick stuff off the floor, we need to be able to lower the body as much as possible, but then also, you know, squat those front legs as much as possible and keep those rear legs stretched up as much as possible. Does that make sense? So, I need a front end that will allow me to do that while simultaneously being able to move the robot with all of the available gates. So, that’s stepping only, stepping plus wheels or like mixed, and then also wheels only. Uh, and then finally, there’s a third camera

[09:41] that we’re going to use potentially for some debugging. It’s the uh Logitech camera. Could we also stream that camera live and do all that on like a really basic looking front end that we can run on this machine? Okay, we’ll see. Uh, we’ll see how it goes. Uh, if anything is processing for too too long, I will just uh I’ll just like edit it out. Uh, so we’ll we’ll see. Um, so the so the objective is I think today

[10:12] I what I would like to show on video if we have the time anyways is at least getting this exco to go pick up that cube and then we’ll kind of call it there. So it’ll just be like a cube hunter and um and just kind of show how you can go about doing that. Now, how that’s going to happen, like I already kind of like I know at least the the physical um orientation that’s going to be required for this. Um but then how we’re going to actually do it, we’ll see if it how if it does it the same way that I’ve

[10:43] seen before. But there’s many many different ways because you can you can like you one you could just mask out uh you could mask out the green, right? And then just just hunt green, right? You could also use GLM for image analysis. So maybe I’ll show a little bit of that happening. Um, and then I’m trying to think what else. So, you you could just use like an HSV mask, honestly. You can also use like some of these like segment anything type uh models that will that would also work quite well. And at the end of the day, what we’re trying to do

[11:14] is not it’s not like we want to do everything with an LLM necessarily, but like some of these like VALAs, like some of the bigger VAS, um, that’s kind of what they do is they kind of force you to do everything with that VA. And I think the way forward is actually use an LLM to help you figure out what is the best way to get whatever done on that robot you want done. And eventually what would be cool is if it was fast enough to just do it on the fly. We were definitely not totally to that point. And that has made me wonder about

[11:44] something like some sort of like we have a lot of coding based harnesses and like assistantbased harnesses. I kind of feel like we’re on the verge of uh like a robot harness for LLMs being very useful. Uh because we just need something to like kind of band-aid and paper over that gap until it gets really good. Like same thing with like coding harnesses. Kind of the the way that harnesses came about is it’s like we have this really smart intelligence but we’re kind of like doing the same similar patterns to ex you know get

[12:16] value out of them and uh what if we just like automated that and that’s hence harnesses. Um so we just kind of want to do the same thing but for robotics. So I’ve been kind of trying to trying to like figure out how how would we do that? How would we like make it aware of all of the various models that exist or the techniques like with the OpenCV that exist for doing some of these tasks very fast? Because if you try to use V uh an LLM to simply pick up a cube and identify in every picture where’s that cube, that’s going to cap you to something like one to three frames per second of understanding. Let make sure

[12:48] he’s not. Okay, cool. Um whereas if you’re using like HSV masking or something um yeah you can probably for sure 30 plus frames per second. Now if we’re using there’s like a little Raspberry Pi Zero on here, you know, maybe it’s more like five or maybe 10, but you can run that literally on board. Um so anyway, uh that’s what uh we’ll see. We’ll see how it pans out. [laughter] All right, it says it’s done. Here we have our uh front end here. So this is our front camera. This is that side camera. Oh, another nice benefit of

[13:21] this robot is this is like the power cable to charge. And because the battery is like embedded into the robot, you can’t have just like multiple batteries that you just like hot swap uh or just swap in general. Um so the battery lasts like maybe like 30 40 minutes, something like this, depending on what you’re doing. And this version, I don’t think any of the other previous versions work while plugged in. This one does. And sometimes the the C because the robot’s so lightweight, it’s real easy to get like stuck into like one of the cables

[13:52] and impact like if you’re trying to rotate the cord can kind of still like get in the way. But for the most part, doing an R&D while it’s plugged in is really nice. Um you probably should still unplug it and cycle the battery [laughter] just to keep sure make sure everything stays balanced, but overall I really like that I can dev with it plugged in so easily. So uh okay, so we have gate mode. Uh, let me adjust this so I know if I’m off my screen for you guys. Boop. Okay. Uh, so we have stepping only wheels. Uh, let’s go ahead

[14:22] and just test it. Uh, gate, trot, walk, high walk, slow trot. I don’t know any of these. We’ll do slow trot. Pace. We already have. So, like what’s the difference? I don’t know. Uh, let’s hit forward. Nothing happened. Uh, we’ll come down here. Do we have any no error recording? Uh, okay. Uh, I’m just going to say, “Hey, bro. Uh, I try to use that front end.” I click forward walk. Uh, and nothing happens. Come on, dude. Do some testing before you tell me you’re done, fool. Uh, okay.

[14:56] So, we’ll do a walk. Let’s I just want to try steping wheels. Yeah, none of these are working. Uh, come down here. What about these? Do these work? Nope. That don’t work. That don’t work. None of it works. What the heck? Freaking junior devs. What are we going to do with these guys? Um, [laughter] there you go, boss. I did my job. See you tomorrow. [laughter] All right. After a stern talking to,

[15:27] he’s saying he’s done. Let’s see. Uh, whoops. Uh, we’ve got our cameras. We’ll just come down here and we’ll try forward. No way. Oh. Oh, I clicked it twice. Uh, that took a long time. Why did it take so long? Yeah, it’s taking a long ass time. That’s weird. It’s almost like you got to like double tap it. Uh, okay. Okay. Why did it take so long the

[15:59] first time? That’s so weird. Uh, also Uh oh. Why is it laggy? I needed to We need to figure that out ASAP. Uh steps, wheels. Uh okay. What about this? Yeah, it’s it’s very uh it’s strangely laggy. Uh yeah, it kind of works. Uh, the problem is it is strangely

[16:34] laggy. Also, I’m lacking any ability to set uh well, never mind. I don’t even want to bring that up. Uh, but when I change targets, like the IMU target, it takes like like five seconds plus just to to make that modification, which is weird. It should be It should be instant. Why Why is it taking so long from the UI? Um Oh, you already have a floor pickup pose. Let’s see that. Also, when I’m on

[17:06] wheels only and I try to go backwards, nothing happens. Wheels only, I try to go forward. Waiting 5 seconds to see if anything happens. Doesn’t look like it’s going to. And then we’ll try steps plus wheels. Oh, I can’t even I can’t even select step plus wheels in the UI. What is going on? You need to get back and do your freaking job, dude. Don’t [snorts] tell me something’s done when it’s not freaking done. You need to do uh you need to do some actual testing, son. Uh biggest thing is the the delay. Uh stepping only. I would like to step plus

[17:37] wheels probably. And we also just need adjust wheels to work. That’s how we’re going to fine-tune our positions. That’s probably that could be a function anyways of how much uh force you’re attempting to use as you uh run, but I don’t know. Figure it out, dude. All right. Our little coder minion has assured me we are back. Uh here is our front end. And uh oh I didn’t even realize I could change the frames per second on the camera. Okay. Anyway uh allegedly uh we can let’s see come forward

[18:10] back. Okay. So we have a little more we what we Oh let’s try wheels only too. Okay. That we need a little more force on those. I think we also Let’s see if Let me make sure y’all can see everything here. Let me Okay, that’s your arm. Okay, the IMU. Let’s swap the IMU stuff. Let’s get it a little That’s interesting. A little taller. And let’s try forward again. Okay, so the wheels are a little weak. So, let’s go ahead and report that real quick.

[18:43] Okay, the wheel only uh the wheel only movement is a little weak. So, it’s like too weak to actually do anything. So, we need to have a little more force there. Uh beyond that, the other commands seem to be working pretty good. Um and then let’s see what else. Let’s see the floor pickup pose. Okay, clicking the floor pickup pose. Um, it almost looks like it does things in like a sequence. If if that’s true, then

[19:16] I guess that might be workingish, but uh I wonder if it has something to do with maybe the set body height. So, like right now I’m seeing the act. So, I clicked floor pickup pose and I’m seeing the actual IMU reading 7.52 degrees. I mean, that’s that’s literally terrible. It should read we should we should be hitting, you know, our goal would be to hit like 20 degrees. Um, but we’re probably going to hit some sort of like maybe 18 degrees, 16 degrees. And the

[19:47] big thing that we really want is to have whatever the number is, we need it to be super consistent. Like we need to always hit if the target is 18, we need to always hit 18 with the same body height. Otherwise, the ability to grab is going to be like if if it varies at all significantly enough, then we can’t have any like rules about picking up things because it’s always going to be a different scenario. So, could we potentially let me try tinkering with uh let me Okay, so if we set to like 22 even. So,

[20:20] if I set the body pitch to 22, I’m watching it. I’m watching it. Uh, we are hitting looks like the max we’re going to hit is 1432. Uh, so like 14°. Now, interestingly, if I set body height up, [laughter] I’m sorry, that’s funny. Uh, why would that be? I do not know. Let’s go back down. Beautiful. [laughter] Oh. Oh, that’s too fun. But um yeah, I’m still having a hard time hitting the

[20:54] target IMU reading and this this might be a problem uh going forward. So like again we need to have a consistent reading and ideally we definitely we’d like to have a more like 16 to 18 degrees even if 22 is not reasonable like if we can’t hit 22 for some reason. Um, so when I hit max dip or floor pickup pose, honestly, we need to figure out what is the right combination. So maybe if you would if you would just like do

[21:26] some abilations or something to hit to figure out how do we hit a 75 millimeter body height, but then also the maximum IMU target, like what is the series of things we need to do to hit that? Uh because oh well actually right now apparently the IMU is reading 183. [snorts] So then the next thing uh what is this? Oh this is the shoulder. Okay. So for the arm the other thing that we need to probably just pre-program is getting that gripper into position. So I’m going to Okay. So the shoulder we actually

[22:02] Okay. So we would want to first move the elbow. Whoa, that’s so weird. So, probably set elbow to -41° and then the gripper actually don’t even know what’s open. Yeah, fully open the gripper. So, -65 before we do a grab. And then the shoulder we would move.

[22:34] But you would before you move the shoulder, you definitely want to move the elbow. Is this open? Yeah, probably actually to like 53 and then come down maybegative 53. I can’t really tell. That looks like it’s real close to the ground though. Uh, okay. So, this is the shoulder. I’m just Okay, that’s ground. Okay, so actually Okay, so the position the robot is in right this instant is actually a really

[23:07] good position. Um I wonder if somehow we could save that because then we would be able to see what we’re about to try to grab. Does that make sense? So my readings here are I’m trying to decide I’m trying to decide if we actually want to touch the ground. Okay. So, if we swung the elbow out this way and then I think that’s our play. Okay. [clears throat] Let’s say we want to have the exact positions that I’m in. So, the

[23:40] body height is 75. The body pitch target for IMU is 22 degrees. Our actual reading is 183. Now, it’s it’s essential that we get as close as possible in some sort of repeating manner to 183. We then when we’re ready when we’ve achieved that position, we’re ready to deploy the arm to actually do the grab. In order to do that, what we need to do is first release that elbow like move the elbow to uh 57°, open the gripper to 65°

[24:15] and then we can move the shoulder to 80 degrees. And this will put the gripper basically like right in front of the camera. So then all we need to do is get the object like in front of our robot. So what I need from you is can you help us to get to a repeat like the actual like quote unquote floor pickup pose? We need that to be repeatable when we decide we want to do a floor pickup. We need that to be repeatable such that we pretty much

[24:45] always get this IMU reading of around 18°. the body height 75 and then the arm as already described. Do you think you can do that for us? All right, we’ll let him type all that up. That was a long long amount of information, but we’ll see if he can figure it out. I need to just like paste this probably into into clipboard instead of having it actually write out.

[25:18] Oh my god, [laughter] it’s a book. Okay, very good. All right, we’ll see. We’ll see what he comes up with. Hopefully, we can get back to this like every single time. That would be that would be the dream. I’m going to save it while I can. Uh cuz I think if if we could get back to this in a repeating manner, that would be that would be nice. Uh cuz then we can actually see it. And historically, I’ve actually had to grab where I can’t actually see what I’m grabbing. But this allows us to get that gripper all the way actually to the

[25:49] floor and we would theoretically be able to see what’s in that gripper. So I think that that’s I want to keep pulling on that thread. Go little buddy. Go. All right. This part’s actually just kind of interesting. So I had to move up the the shoulder a bit. So, I think it’s like ablating from various positions to see if it can’t continue. And I don’t know. I’m trying to decide. I wonder if that’s actually gonna No, I don’t think that’s going to keep updating for us, unfortunately. I wish it would tell me like right here. Uh, but I think what it’s doing is trying to go from like

[26:19] random positions to get to that IMU position. But like here, I actually think he was a little higher. And I’m gonna [clears throat] I’m gonna voice that concern because I think we actually want to get like the head needs to be a little lower otherwise the gripper won’t be in the same spot. Like I think if we brought that arm down actually kind of want to do it. Let’s see. Is it this way? Yeah. What was it? 50. I already forgot. What was the uh I saved it in a photo. Uh shoulders 80 degrees. Okay. Wow.

[26:51] Okay. So if I went to Oh, I think that’ll still touch. No, it won’t touch the ground. And so like the front end is not low enough, I think. Interesting. Is the elbow in the same Yeah. Oh, okay. So, he eventually got to that height. So, that’s weird. Now he’s smashing the heck. Hold on, buddy. Take it easy. [laughter] Can you please pick up the shelter? I don’t want to keep smashing the ground. Oh my god. Oh, that’s so funny. [clears throat] Okay. Um, got it.

[27:24] I think you are doing it, but make sure that besides just the IMU, you have to get like the body height as well. It looks like you’re probably doing that. I just want to confirm that you you hit all of those requirements, not just the IMU. Cool. All right. I guess we’ll just let him I mean, like that looks pretty good. Um, so if we could if we could just like consistently hit that, that would be that would be ideal. And then we can hunt down that cube. But like [snorts] this, that’s too high, right? So, I’m not really sure. And maybe he’s like

[27:58] doing that first. I don’t really know. Kind of want to make him go forward so I can see him better. You think it’ll go forward or no? Oh, it was wheels only. Hold on. There we go. See, like that’s too high. He needs to come down. I’m not really sure why. At least what I’m watching. like as you’re iterating like you are routinely getting like a good angle but you’re not as low as you will all like sometimes

[28:30] you you get a little lower than other times and we need to make sure that we’re consistently getting also as low as possible. All right, we’ll let him cook and we’ll be back. All right, our little worker says he’s done. We’re going to see. Is he done? Let’s see. Uh, that looks good. Let me floor pickup pose. I wonder can I get away with I can’t even remember now. Is it this to get it up? Yeah. Okay, cool. So, that’ll get it up. 80 degrees

[29:03] is where we want it. Now, what I want to do is if I hit neutral, does he reset? He Oh, okay. It does. Uh, let’s move forward ever so slightly. Hello, buddy. Okay, moment of truth. So, he’s squatting down, tilting down. Okay, still going. I wish it would go quicker, but we’ll see. I’m still just seeing Oh, maybe I have to hard refresh. Let me do uh a hard refresh here just in case.

[29:41] Max dip h Oh, okay. I’m not even sure. I’m not sure what I’m looking at here. That’s pretty good though. Oh, he’s going for the grab. Hey. Okay. Okay. Floor pickup hose. I don’t know what max dip. What is What are we talking about here? H90 reliably gives. So if Okay. So um

[30:12] floor pickup H75H90. Okay. Okay. So real briefly, what is the difference between max dip and then the the floor pickup? Like why did why did you retain both of them? Is it just because floor pickup is a little less spready or or what’s the deal there?

[30:43] Oh, I see. So, floor pit. Oh, height 75. I see. The body is lowest. Okay. All right. [sighs] Um, I think we’ll go with this because we can see that. Well, um, okay. So, then the question is, [clears throat] all right. Um, I like that. I like that a lot. [laughter] That’s cool. Um, all right. So, now what I want to do then is okay, that looks really good. Uh, what I think we should do next is,

[31:15] um, we need to pursue the cube and get the cube center screen and towards the bottom, right? Such that when we drop the gripper down, we would actually be able to grab that cube. Does that make sense to you? So, I’m going to pick up the arm. Um, and what actually what would be cool potentially is to be able to put the arm back like on the back and then be able to just instantly put the arm down into this grab position without needing to like manually do each of the joints. Does that make sense? So

[31:48] like our uh shoulder like we have to like pick up that arm. Oh my. So like the shoulder could go to 54 degrees and then the elbow could go to Oh, I see. Uh yeah, the shoulder could go 54, elbow to1 or or something like that. I actually kind of I’m trying to see. Yeah, how squished up can we make this? Oh, we can make it real squished. Um

[32:24] hm. Okay, let’s set the shoulder to -68, elbow to 31, and then when we actually reach the position and then enter into that floor pickup pose, I actually don’t know. Um I’m going to hit neutral real quick. Do you think he’ll Oh, he does level out. Okay, so another thing is the neutral pose. Oh, he does actually kind of Okay, he levels out. That’s cool. So, I think what we want to do is when we spot the cube, we need to get over to the cube. As we get close to the

[32:58] cube, we’ve got to angle down as we approach it. Otherwise, we’re not going to see it like we’re going to lose it in the camera. So, probably once we spot once we’ve identified the cube, like we see a cube, we should immediately uh tilt the IMU target to I’m waiting for him to adjust. probably like 10 or maybe even more. I’m trying to see maybe 14. And then once we get real close, we

[33:29] would want to uh So maybe I don’t know, maybe I imu pitch to like 18 and then wow. See, look how much he can straighten out those legs in that pose. Like that’s what I don’t understand is like uh if he can do that, how come I can’t just enter 22 here and then go down? I don’t really know. Okay. Um, so then if we turned left Oh, he’s still busy. I think he’s busy trying to hit this uh target.

[34:00] Let me just do that. Uh, yeah. I’m trying to like I’m trying to make him turn. It seems like he’s uh busy. But you know what? I think the first thing is show me how you might detect where is the green cube. like what are the methods you might use to detect where is the green cube on that head camera like what are some of your ideas for that and then also how should we approach cuz I think once we’ve identified there is a green cube we want to tilt up that body but I was oh okay now he’s working okay so now the now the

[34:32] turn is working it just like wasn’t working so like I’m thinking you see the cube in the distance you immediately go to pitch like 17 degrees and then you would start to approach the cube cube. Probably slower than that. Oh, that’s quite quite good. And you approach the cube till it’s at the bottom of the frame. And then we want to make sure we recenter. Now, one issue I have is I don’t actually seem to have it away. Let’s see if this works yet. Okay, wheels only still doesn’t seem to have enough force or it just straight up doesn’t work. Be advised. Um, and then the other thing is once that cube is

[35:06] kind of centered, my issue is um we don’t we don’t have a good way in the drive mode to to walk forward with less force or less time. And we really need something like that. And also we need wheels only mode so when we get closer we could do fine-tune adjustments. Um, and then beyond that uh we need to what else do we really want to do? We we just need to work on that approach of the cube. So, we want to center the cube, approach the cube, and as we get closer and closer to that cube, we need

[35:37] to begin to enter the floor pickup pose. I’m going to go ahead and test that. Oh, when I click for floor pickup pose, I immediately see you’re not moving the elbow like I told you to do. And you’re actually getting caught on the I already forgot shoulder. We need to set that shoulder down if we can. Now, he’s all pissed off. Uh, when I said floor pickup pose, you moved the I I’m trying to decide. I think you moved the shoulder before you moved the elbow. And you really have to move the elbow before you move the shoulder.

[36:11] Otherwise, you’re going to get caught on the front head. So, you need to fix that. But then, yeah, when we get into that floor pickup pose, you essentially want to enter every part of the floor pickup pose except for the fact except for putting that arm down because we need to first get kind of close and then when we’re in a good position, then we would get close. So, I’m going to Yeah, we’re Wow, that actually works really well. Let’s see how far forward he goes. [laughter] Oh my god. Uh, let’s do one more stripe. Let’s see if this works.

[36:44] Is it right in front I think? [laughter] Yeah, we need a way to like fine-tune adjust unfortunately. But yeah, and then as we fine-tune adjust, we really need that gripper to be out of our way. So, let’s do all of those things. Uh, and then see what we can come up with. Okay, that was that was a lot of information. That’s probably going to take a while. Um, but yeah, we need to do something like that. we have to work on how how we’re going to actually make that approach um and then do it like automated wise like I can’t I mean I

[37:18] know how I would want to do it manually and we don’t even really have to do it I don’t really need those manual controls but it would be nice for like R&D purposes but I mean I’m very confident like that’s that’s a good way to do it and you would be able to see if it was in the gripper so I I really like the pose that we have here this this is actually the best one I’ve ever seen um but we need a way we need that gripper out of the way so we can kind of fine-tune our way get that get that cube like at at the very bottom. I.e. probably like a rule that we would have is like so that no sliver of anything but the object, you know, like below there’s nothing below

[37:52] that object basically. I think that would be like a good rule to use. Like no pixels underneath it. Like that’s how close you want to be. And then send the arm down, make the grab. I think that will work. So, um that’s what I’m going to head for. We’re going to see if he’ll he’ll get us there. What is he doing? Oh, he’s I don’t even know what he’s doing. Anyway, um I’m gonna pause here and we’ll come back once he’s done uh doing that. [laughter] All right, our little dude says he’s done it again. Let’s see. Uh cube off. Let me I don’t like that pose at all. Oh, nudge. Nice. Okay. Okay. Let’s enter

[38:28] a neutral pose. Okay. You got to put that arm away, though. Uh okay. Let’s try stowing the arm. It always [laughter] you son of a bee. You’re killing me, man. You’re killing me. Okay. Uh we Oh, he’s just Okay, he’s just going to drag it over. Okay, we need to fix that. That’s one thing we’re going to fix. Um Okay. And then we also have the cube detection.

[38:59] Let me tilt this guy forward. Okay. So, let’s try cube detection. Oh. Oh. Oh, it’s so sexy. Oh my gosh, look at that. [laughter] Heck yeah. All right. Um, so let’s tilt down a little bit if we can. For some reason, it doesn’t want to do that. Uh, that’s a nice cube detector. Uh, let’s go back. Okay. So, I don’t know if we’re waiting or I’m not really sure what we are stuck with. Um, okay. I’m going to start my report here because he’s being a little bee. All right, man. Uh, the cube detector

[39:33] definitely works. The arm sto uh works. The only problem is um like the arm is hitting the face as it attempts to go back because I think the shoulder started pulling back first before the elbow like the elbow needs to open out first and then start putting it back and then and then curl in the elbow. I think you tried to do it the wrong way. So, it got kind of stuck. Um I do see cube steering. I’m not really sure what I’m looking at. Um, I would love to test the

[40:05] nudges, but Oh. Oh, now things are working. Oh, how fantastic. [laughter] Um, when I clicked buttons, it seemed to have gotten stuck. And now I think everything is coming through. So, that’s unfortunate to see. Um, okay. Yeah. Okay. We’re back to having commands be laggy, and that’s super annoying. So, I’m not really sure why it says like control resource busy or whatever. Uh, is there not like some way we can just like when we do a new command like flush out the other command and get them get them up out of the way

[40:36] because it’s getting really annoying. Uh, and then beyond that. Okay, so my turn works. Okay, so my my nudge turn doesn’t do anything. Nudge forward sort of works. I’m going to try to nudge one more time. Nudge right does not do anything. Uh, so a nudge rotation right doesn’t do anything. A nudge left rotation doesn’t do anything. Let’s try a strafe. I do think the strafe makes an attempt. I I don’t think it does anything. It It attempts to strafe, but

[41:08] it actually does not strafe. Let’s do a full strafe. Um, honestly, I don’t think a full strafe does anything either. [laughter] They just don’t do anything. So, I’m going to do a full turn or a full rotation left. Uh, that appears to work. I’m going to do click that one more time. Okay, that’s quite nice. Uh, I’m going to do a nudge forward. Nudge forward works. I do like that. So, as we go forward, uh, we need to adjust the IMU. For some reason, that IMU is just ignoring everything

[41:40] about me. Okay, good. Uh, now I’m going to start nudging forward again. Well, I thought I would. Oh, there he goes. Okay, so the nudge forward kind of works. Let’s do that one more time. He made no progress at all. [laughter] Oh my god. Get closer, dude. He’s not getting caught. Okay, so that’s pretty good. And then I’m going to click uh floor pickup pose.

[42:11] Once again, the elbow contracts completely and I’m concerned that we’re going to wind up probably opening the shoulder joint first and that’s going to cause a problem. And what are you doing now? Okay, maybe he’s entering. Okay, floor pickup pose. So then before we deploy the arm, I need to We got a couple of issues. One, we’re going to nudge forward. See if that works. Nice. That does work. My only concern is that might not be center, but I bet that is center. Okay,

[42:43] so the cube is there. Now I’m going to say deploy arm. And when I do that, I better see that elbow move before the shoulder. I’m I’m worried it won’t happen. Let’s see what happens. I hit deploy arm. Nothing has occurred yet. Oh, it says at grab range. Bottom 100. Okay. So, it definitely seems to know it’s at grab range. I didn’t even notice that. I’m hitting deploy. Oh, okay. The second deploy arm. Okay, I can confirm the elbow does open. Then the grip opens and then the shoulder is moving down.

[43:15] So, that appears to be functional. Oh, it’s so beautiful. Oh, that’s perfect. [laughter] Oh my god, it actually worked. Okay, then all we would have to do is close the gripper from there. Uh, is it this way? Oh, yeah. Oh, yeah. So, we close it in the gripper and then all we would have to do is lift it up. Oh, I’m lost. Okie dokie. Is it that way? I don’t even know. I guess we actually probably want to move the shoulder. Uh, for some reason I’m trying to adjust

[43:49] the shoulder after the grab and I can’t get the shoulder to like lift up. I’m gonna hit stow arm and we’re gonna see what happens. [laughter] Okay, I hit stow arm. I’m not seeing anything just yet. We’re probably just more stuff is flooded maybe. I’m not really sure what’s happening there, but everything else seems to have worked pretty good. So now what I’d like to do is automate the whole thing. So, we know that we have all the little pieces that we need. We know how to center the cube in frame. Uh, we know how to

[44:22] uh nudge forward and stuff like that. So, I think all those things like the turn left, turn right, or the rotate or whatever, that kind of like the full one works just as good as the nudge. But maybe we want to fine-tune the nudge. But other than that, everything else looks very good. So, I think we’re ready to actually like automate this. Like, I’ll put the cube in the distance and let’s see if you can actually get to it. What do you think? Um, and then we also just need to have the uh putback actually function.

[44:54] That might take four years to fill up. I do like speech to text though. That that makes things very convenient. I would not want to have to have typed all this. There we go. Uh, okay. So, I’m going to let him work on that. And I think what I’ll do is reset the cube and all that and then we’ll see. We’ll just see if it can get to the point of going and picking up that cube. I think it should be able to. I believe here we’re using an HSV mask. Uh which is perfectly fine. Segment anything will probably be better for more general um objects. This I

[45:28] don’t know what he’s doing there. Um hold on. I’m going to send that one more time. Uh okay. The pose that you’re taking right now is not an acceptable pose. It makes like the the actual legs and the feet come up off the ground. Don’t do this. Uh, okay. I’m going to let him work on that and then we’ll be back. All right. I had me some breakfast and uh GLM assures me that we now have a working uh

[46:03] variant. And now let’s go ahead and see. I’ve reset the cube and the uh Xcode robot and let’s see what happens. So, we’ve got a few new buttons. I can just click auto pickup allegedly. Let’s go ahead and hit it and we’ll see what happens. Uh the cube we could turn on hopefully cube tracking. We’ll see if that works. Uh interestingly enough, it looks like maybe maybe GLM broke that aspect, but we’ll see what happens. Um I’m going to report that. Maybe I needed to

[46:35] wonder if I needed to hard refresh. That might have been that might just be like a hard refresh away. Not really sure why the zoom it looked like the zoom just changed. What? Oh, I wonder if it’s this text. So, this is like some debug text. Basically, it kind of like tells you what’s going on. So, I think Yeah. Okay. So, spotted floor pickup. So, it enters into the kind of pickup state. Oh, there’s the cube. Maybe a little slow on the uh red detection, but now it’s using the wheels to inch forward. All looking good so far.

[47:09] Let’s see. Let’s see as we make our approach with our vibe coded [laughter] while we have breakfast. I mean, what a time to be alive. I mean, we’re just going to eating and we have our uh robots learning to do things. Let’s see. That’s probably close enough. We’ll see. Oh, he’s going to inch. Okay, very good. He’s following the rules. I did say he have like no pixels underneath was the goal. Let’s see if he actually goes. So aligned, no pixels, bottom at grab range. Okay, sounds like he’s maybe

[47:40] going to go for it. Not really sure what the delay is at this point. I’m just going to note that. So I’m going to copy this just in case. Hey, let me Okay, I can’t do that. [clears throat] I’m just going to tell him. Okay, so we’re running the auto pickup. Uh, the approach looked pretty good, I would say. Uh, the only weird thing is we are now at the cube. It says at grab range. And I’m just not sure why there is any delay because the grab is all um it’s

[48:12] all rulebased, right? Like we just simply go for the grab. So, literally as soon as we’re in grab range, how come the grab doesn’t just immediately occur? And maybe that’s a bug. Once again, it could be I’m on the wrong like I didn’t uh hard refresh potentially. [snorts] [clears throat] We’ll see. See what he says about it. Oh, let me pull him over here. We’re close though. It’s definitely very close. And I like this one a lot better

[48:44] actually than than the other one. This pickup is so much nicer because you actually like the angle is good. And I actually think that we can get those legs to be a little taller. I think the the way we have to do it though is uh individual servo control as opposed to the higher level API. So I I didn’t want to like get too deep into the weeds, but I think we can actually get a little steeper. But if we get steeper, well, hold on. We’ll talk about that in a second. Let me uh the grab is rulebased, but rulebased includes Okay. Yeah, but we still

[49:19] that’s fine. Like, but why haven’t we gone for the grab yet? Like, everything looks good to me. And then why is cube off? That don’t make no sense either. Hold on. Let me uh we’ll do a hard refresh. I don’t think that’s what we need to do. I need to start paying attention to maybe what build we’re on or something. Um yeah, it just doesn’t make any sense. Found it. Up. It’s my claw lock overreach. Okay. I love it when the when the AI just blames itself. That’s like the most enjoyable thing in the world. Uh,

[49:51] recheck claw after gate fix. I like when it start when it uses words like latched and uh I’m trying to think of some of the other ones that like just you always see and it’s like man can we just like stop. So like this is a perfect example of why I really want to harness because a lot of this stuff should just be automatically caught and overcome. Um, okay. Let me see here. Fix the bear. Why not grab? Is it going for a grab now or no? Uh, I don’t think it would be. Okie dokie. Press auto pickup once. Um, I kind of want to like back up and

[50:26] do it, but I’ll just press auto pickup just to see. Oh, he’s going to probably lose the cube if he’s doing that. Let’s see. I want I want to see my cube as well. Rotating to find cube. It’s right there, brother. [laughter] Auto spotted. Uh, we’ll see if he turns. He needs to turn right. Historically, it has looked okay at doing that, but yeah, he’s he’s just unfortunately he’s too close to the cube. I kind of thought that might be a problem. [snorts] Oh, he did locate it. Okay.

[51:02] Got to center that just right. Oh, yeah. See, [laughter] it’s going straight in. That’s why I was like, it should be like rulebased. Like as soon as you’re like there, it should be very fast. Okay. Very good. Very good. Let’s go. Look at that. Oh, he’s got it. No cube in frame. That’s kind of weird. He should just know that he has the grab. Uh the only thing I don’t know. So, we have the grab. How come he doesn’t just like put up the arm?

[51:34] Because I I bet I could just sit uh hit stow arm. Oops. I don’t know if I actually had Oh, okay. He just kind of like dragged it. I think the stow arm also is a little flawed. I think he just dropped it. Son of a bee. Okay, we actually approached, did the grab, all that really nicely, but once we actually did the like we had the cube in our grab, we failed to actually like pick it up. I’m just going to back up. Actually, I’m going to hit stop. Can I just Is this going to work? Anyway, uh we failed to actually pick it

[52:08] up and then when I tried the stow arm, but then it like rubs the cube along like the head and it ended up dropping the cube. Uh I’m pretty sure we have a pickup that shouldn’t do that. And also stow arm should just not do that. But most importantly, we actually did not pick up like we grabbed the cube perfectly. All we needed to do was like pick up the cube and then stand up and that was it. And then that would be like the full the full loop. So, um, can we analyze maybe any issue that we added that is causing that trouble and, um,

[52:39] fix that? And then I think we’re we’re basically done. I mean, that was that was a good approach. A good grab. Everything actually worked pretty darn good. I think we we just need that last pickup. Um, and then after that, I think I want to add like putting it into a box, like putting the thing like grab stuff up off the floor and then put into like some bin location. And that at that point so far that LAR really hasn’t had any use in my opinion. But eventually what I want to be able to do is like map the environment and do like an occupancy grid type situation and then just note

[53:13] where the box is like where is the you know dropbox essentially for like ground floor stuff. And then with using the LAR, you can find out based on patterns where are you in that whole like layout of the building that you know and then you know where the box is in that layout and then go there and then eventually you can as long as you go towards that box facing it you would be able to identify it no different than kind of what we’ve done here. Um, the other thing I’d like to add is segment everything potentially or some other

[53:43] really small model potentially to um to have a much wider range because eventually I don’t really actually want to pick up cubes necessarily like Lego bricks is a good one. Um, I would like to pick up those. Um, but then there’s all kinds of stuff like stuffed animals, socks, shoes. Well, I don’t think this this robot is not going to be able to pick up shoes, but later we’ll have different robots that could theoretically pick up a shoe. Um, so we want to be able to handle for that. But already you can see that I mean this is like I mean I’ve done a lot of yapping to you. I don’t know exactly how long

[54:16] this video is going to be. But with very very minimal effort we have a robot that in um just about any changing condition. We could change the lighting. We could change the flooring. We could change a lot of stuff about this can go and pick find a cube and pick it up. Um and then and it doesn’t have to be a cube. We could change that cuz basically it just needs to be something we can detect and put a bounding box on and then from there we can approach literally anything. So it might cost us a little more time maybe to do that initial detection but not really. I mean most of these things you can do a detection even

[54:48] GLM53 flash I was doing detections with that in about 200 to 500 milliseconds. Um so even if you just want the most powerful nonsense uh image you know detector or object detector you could literally just use GLM53 flash. So, um, so yeah, that that’s super cool. I do hope, um, I don’t want to finish this video until we literally have the approach, grab and stand up. I just it’s going to feel wrong if I stop us here. So, um, I’m very confident we are going to get there, but I have to I have to see it. So, um, interestingly, see, like

[55:20] this is a mistake. Oh my god, if he’s going for this grab, I’m going to lose my mind. Please don’t go to try to grab [laughter] that. I was going to lose my mind. Yeah. Um, test sto Oh, I guess it’s just testing stowing. I’m not really I have no idea. I I’m not sure. It’s clearly saying it’s doing like some R&D stuff here. So, I’m going to let him keep going. Um, yeah. Uh, one thing I will add is a lot of people are using models like Astra and stuff to actually do this. Hold on, let

[55:54] me make sure. I’m going to restart it if I can. Uh, Okay, I’m going to do a hard refresh just to be 100%. Uh, we are going to cube on lift st auto pickup. Uh, that might be in place of stow arm. I’m not really sure for manual recovery. I got it. Okay, so auto pickup should work. I’m going to hit it. Full send, boys. Let’s see. >> [clears throat]

[56:30] >> Oh, that detection don’t look good. [laughter] What is going on there? What is going on there? That’s goofy. Let’s see if it actually makes the approach. I’m going to wager that’s a bug, but we’ll see. Oh, yeah. Some sort of weird bug. Vibe coding. This is probably This isn’t even very hard because you have to rotate. But I believe I think the other grab was requiring a rotate. So, you’ll have to take my word for it or just have watched that to know that it definitely worked. Um, I do like this. This is cool. Let’s see.

[57:03] Is that good enough or is it Oh my god. He’s got to get straight floss. Interesting. So, I guess it just got like maybe a little too close. Oh, it’s so fast now. He just like bang goes for it. It’s kind of cool to see that. He probably should have gotten a little closer ideally, but we’ll see if he stands up this Oh my god, [laughter] that was way too fast, bro. No, I don’t think he actually did the full grab either. Oh man, we were so close. I

[57:35] could literally taste victory, y’all. I could taste it now. He’s got the hand the the gripper in the face. Okay, hold on. All right, we are so close. I can taste victory, man. But uh you made a few mistakes. one is uh we probably just needed to get slightly closer, but to be honest, I think we had a good grab. I think you just simply did not grab it tightly enough. Like you the the cube didn’t even move when you uh went to go pick it up. So, I think the main flaw here was you literally just did not grab

[58:06] it tightly enough. So, we need to fix that. Um, beyond that, uh, when the arm is going to actually go back to the, you know, lift position, it still is trying to rub on the head of the, uh, XO robot. That’s stupid. We should not be doing that. We should pro, we could even like swing the elbow out slightly or something first and then retract the shoulder and then retract the elbow or something. Like, hitting the face is stupid. We got to stop doing that, man.

[58:39] Um, beyond that, the approach, the grab, everything is good. Like I said, I actually think you dropped the cube purely because um purely I honestly I was I was trying to get it so it’s like not centered. I think it’s like still in auto pickup mode. Um anyway, uh I forgot I was recording as I was talking to you guys, the viewer. But anyway, um so yeah, let’s let’s fix that. When we go to grab, we need to make sure we are grabbing tightly. like you can probably just keep trying to

[59:11] grab tighter and you will grab tighter. [laughter] I think you need to do that. Um, other than that, I think we’re good to go. But yeah, we got to we got to fix this. We got to grab a little tighter. We got to stop hitting ourselves in the face with the object that we just tried to pick up and let’s get it done. Like, let’s get it done. Okay, I’m going to send this. Um, and hopefully we will have this. I I thought maybe, just maybe, as we were watching it was going to do it. Uh, but I can taste it. We are so close. We are so close. Um, so we’ll let him work on this. Uh, hopefully hopefully we are

[59:44] just moments away from success. All right, GLM once again is asserting it’s done it all for us. Let’s see. We’ll see what we got. Apparently, also a bonus bug paid for all day. [laughter] What the heck? Uh, don’t know. Current pro silently break. Interesting. Um, okay. Yeah, let’s, uh, let’s send it. Let’s see what happens. Uh, we will hard

[1:00:15] refresh and, uh, can I just do this? I just want to force it to. So, cube on. I wonder if cube. Oh. Oh, interesting. So, the cube is the steering. That’s hilarious. And then auto pick. So that’s just going to always be steering. Hold on. I I’m sorry. I just have to mess with it. That is funny. That means you could probably just like start moving the cube. Okay. Um I’m not going to do that though. We are going to go auto pickup.

[1:00:47] Let’s see what we get. What do we think? Is this finally it? It’s a little It’s almost not fair because you guys have um spotted on what verify height and pitch and then approach. I’m not really sure. Uh, you guys know how much time is left on the video, so it’s a little It’s kind of not fair. He’s ready to pick up, bro. [laughter] He’s definitely not in the right position. Okay, now he’s in the right position.

[1:01:21] He’s on the prowl. [laughter] I kind of like the original Twitter one, uh, like the gate as he’s like approaching and like all the actions that he’s taking as he’s approaching that cube. I kind of liked that. it just looked better. So, I might have to bring that back in. But, like I said, I just I just wanted to walk through kind of the process that I go through on something like this. People are always asking for like a vibe coding video. And to be honest with you, I just think most of the time vibe coding is probably really boring to watch. That’s just that’s my estimation. Um, so hopefully this wasn’t

[1:01:55] like super freaking boring. Um, I’ll like I said, I’ll try to cut out all the weight times, but Okay, it goes in. Did he grab that all the way? Okay, that looks all the way. Okay, please just pick it up and please be nice. Uh, okay. Shoulder verified squeeze ladder. Okay, now what I don’t understand it, so it has the grab, but it’s still doesn’t like why doesn’t it want to lift? Okay, beautiful approach. Uh, beautiful

[1:02:25] grab. Everything’s looking good, but for some reason, like why why after the grab, after the full grab, why are we not automatically lifting that cube? Oh, well, I guess I’m wrong. Oh my god, that’s so aggressive. [laughter] We probably need to chill out the aggression. Uh, it’s a little slow. That’s a little silly, but Oh, he’s going to go back. Okay. Okay. probably would prefer it to go in a full rest position. But you know what? I’m

[1:02:59] going to take that as a win. I’m not going to waste y’all’s time uh fixing all that. It would literally just be me telling it, “Hey, will you do this?” So, um overall, man, I am I’m super happy with that. Uh that’s really nice. I I I I think that’s that’s pretty cool. Uh I think for us to be where we are today where I’m still recording on my transcribe. Hold on. I got to fix that. Okay. As I was saying, I for us to be here, right, where you know, it wasn’t that long ago. I mean, I would say like three years ago

[1:03:31] when you bought like a new robot, like you can literally take this robot out the box. You don’t even have to look at the documentation for the SDK. Like, you don’t have to do anything. You do have to, let’s see, you initially have to set up your Wi-Fi. So, when you first get this particular robot, you need to plug in a mouse and a keyboard, load into the uh Linux on the Raspberry Pi, and then you need to log into a Wi-Fi so you can make an SSH connection. After that, that’s it. That’s all you ever need to do on this robot. You just get out of

[1:04:01] the box. Then you just send your u the SDK information to an LLM and that’s it. That’s all you have to do. And then you just start asking, hey, I want to build XYZ. And like in the case of this task, we could do it with an HSV mask. really simple, you know, basically you’re just filtering for color and uh achieve this task. For more complicated things, we could probably use segment anything model. Um I think there’s one and two. There’s a model two for that. So you could use that and if that fails, you can literally use a vision-based LLM

[1:04:32] like GLM53 flash that will also detect literally anything and and it can draw bounding boxes and it can do it at up to about three frames per second, which is honestly very good for like stuff like this. Like you can do very general purpose things. The other thing you can do with GLM53 flash is you could literally say like you’re looking at a refrigerator. You could say, “Okay, find the refrigerator in in this frame, but then also where is the handle? How should I grab the handle?” And then from there, you can actually pass your robots

[1:05:03] uh model files like to um to the LLM and determine, okay, how many joints are in my arm and like what position, what pose should I be in to grab that fridge handle and open that fridge. like these are the things that you can do when you’re using a just huge general purpose language model as opposed to a VLA. Now, there are some really nice VALAs that you can do stuff like I just described and it like basically will output a structured JSON, but they’re just not as intelligent and useful as an LLM and then but it turns out you can just use

[1:05:36] an LLM to do everything. one, it can it could output straight up JSON for joint positions, but it can also help you to do the HSV mask stuff because that’s faster like for for a lot of stuff, we can just use really rudimentary OpenCV techniques to do a lot of cool stuff. So anyway, um I hope you guys enjoy it. I hope you find this interesting. I also just again I think it’s cool that all of this on GLM 53 Flash. I I’ve seen a lot especially lately of people using Astra for robotics. The one thing I would say is or even like Claude Code or uh what

[1:06:09] do you call it? Uh Fable, [laughter] it is so dead to me. Um Fable Astra [clears throat] also I I would love to never use Astra again. I do. I mean it there’s no question Astra is smarter than GLM53 Flash. Um, uh, I just recently I had a computer that, uh, it was one of the computers I tried to use to do the AI server and I, while I was in there doing things, I pulled out the Windows hard drive or the NVME for Windows and I

[1:06:40] guess it was in the middle of a Windows update. I don’t I don’t freaking know. I can’t believe this. But when I pulled that drive out and then started turning things on, I started getting a blue screen. even if I was trying to go to Iuntu, like what the [laughter] what the hell? Um it was the weirdest thing. And then so I put the Windows drive back in, but then everything was just messed up. I could not get into Windows was constant blue screens and the recovery disc was like not working or the USB drive was not working. So then I used Astra, gave Astra shell into the Linux because that machine dual boots into

[1:07:12] Linux and Windows. Gave it access to the Linux and it went in and I don’t know started around on the Windows [laughter] and like fixed it. I could not figure that out. I was never going to figure that out. There was no amount of Google searching and forum reading that I was ever going to figure that out. And I just threw Astra at it and it fixed it. And that’s crazy to me. I mean, that’s that’s that’s wild. Um, but it is also cool how close GLM like these these open source models are to that. And we’re not

[1:07:42] really that far away from having open source models being trustworthy enough to do something like that with. I still won’t use like even Astra. I won’t let Astra run full RIP on I almost would have let GLM 53 Flash because really what’s the worst that could happen? I the worst is I have to reinstall Windows or something, you know, like who cares? So I I kind of I almost want to like brick it again and [laughter] and see if GLFI3 Flash could do it. U because it was I I started off letting it try and then I could see what it was starting to try to modify and I was like that sounds risky. Um [sighs] so yeah. Um and then

[1:08:16] also just be I was doing it like on my main computer. Well, what if GLM well what if either of the models kind of screwed up and instead of doing it on the remote machine just started doing commands on the my main machine, you know? So, like I it makes me very nervous. Um, but yeah, I would like to I’d like to try harder stuff like that. Like I was like, “Oo, that’s that would be a good benchmark question.” Um, and I I bet it’s relatively repeatable. [laughter] So, anyway, okay. So, that’s it. Oh, the other thing I was going to say about Astra is it’s just so slow. So, even

[1:08:46] this this took me a lot longer, I think, cuz I’m talking to you guys trying to do things and like and then also like I’m actually like sitting here like a lot of times if I’m doing something like this, I’m going to be doing like other things at the same time. So just it’s like you give your input and then you leave and then you have the result, you know. Um but one thing with like Astra is it’s so slow. Like at least with GLM53 Flash, you really you can kind of like dev live with like with a project like this, you’re pretty consistently giving your

[1:09:17] input, waiting for results. I’m usually like reading the text as it’s flying by. But as you can see, I mean, it it goes pretty quick. Like this is a fast model if especially if you can run it locally. like I’m getting like around 200 tokens per second on this um logo and um yeah it it’s enjoyable but if you try to use Astra for it it’s just so slow and like using Astra for literally like live play out like using Astra as if it’s a VLA it’s really painful in in my opinion uh it’s just not it’s just too slow whereas if you can use a model like this or even

[1:09:49] smaller and get them even faster that would be cool like um DeepSc V4 flash you know we we can get like 400 tokens a second and get very fast, especially if you’re using Dlash and then uh uh LM cache. So if you’re if you have all of those things coming together, you are your response rates are so fast like you could you could do things really quick. So we’re I think we’re very close to um like GLM53 flash, we don’t have any LM cache going on. So, like if we could get that even um our we we probably could just do like we could do any detection

[1:10:21] we wanted live with GLM53 flash and like no problems and um especially if we’re tracking like the same similar types of objects or something. I think that we could we could speed a lot of things up. So anyway, um okay, I think that’s uh that’s everything for now. Uh if you want to see more on this concept, uh let me know below. Like I said, I I really want to add I want to make some sort of harness because a lot of these things are like obvious and I feel like a lot of these things are going to be the same no matter the robot, no matter the task where a lot like like hitting yourself in a like like running into like the the

[1:10:53] head camera or running into your body with the arm just doesn’t need to ever occur, you know, like we have the model files. We could like literally just pull it up in like a majo and understand like was contact made or not, you know, those kinds of things. Um, and then like sensor fusion would be kind of cool. And anything with a LAR, you can pretty much always make an occupancy grid. So, I kind of want to do stuff like that. I don’t know. I haven’t really fully decided what I want to do or what I want to continue with this robot. Um, what would be the thing? I mean, clearly this robot should pick stuff up off the floor. And it’s a very unique um like probably smallerish stuff up off the

[1:11:27] floor. But maybe one of the things I would like to do from here is yeah have like a box in some designated location and then we can map with uh the LAR and then from there know where we are at all times and then once we have a thing go to the box and just kind of repeat like keep looking for stuff on the ground that like needs to go into that box. Again an LLM is great for this. So like obviously you might have certain things on the floor that like are supposed to be there but like many of the things are just kind of out of place and like VLMs and LLMs like you can literally just say some you know find me anything on the

[1:12:00] floor that is like a kid’s toy find a kid’s toy on the floor and it will do that or you know find me something on the floor that probably should be picked up you know and it would be able to do that. Uh you could also probably say something small on the floor and it would find that. So anyway lots of really cool stuff. I hope you guys have enjoyed. I hope that wasn’t too boring uh watching someone vibe code. Um I’ll do my best to edit it and make it somewhat enjoyable hopefully. Uh so yeah, let me know what you think. Uh questions, comments, concerns, suggestions, whatever. Feel free to leave them below. Otherwise, I will see you all in the next video. Oh, also uh

[1:12:32] if you want to buy this, I’ll put a link in the description. I think it’s sort of like a referral. It’s like a tracking link. I don’t there is no affiliate marketing like I don’t get anything. I’m not even sure you save money by um by using my link, but it is like a link that I think that they’re just trying to use for um tracking purposes. So, like like to know like who referred you basically. So, uh I’ll put a link in the description if you want to check out this robot. Um I think it’s pretty cool. I actually have a few other robots on the way. I’ve got a Sourcey. I forget what they’re call if it’s actually

[1:13:03] literally just called Sorsy. I’ve got one of those and then a near I might have the name wrong on that. And then I did also get one of the little open ducks uh from HuggyFace. I thought that was a cool one. Um and I think that’s all the robots I have on the way. But yeah, I’m definitely um got quite a few robots that uh hopefully we will see on the channel very soon. Anyway, okay, for real, that’s all. I’ll see you guys next time.