Simulador autônomo (ou capaz de ser)

13

Sou um engenheiro de software que é voluntário sem fins lucrativos e apresenta jovens meninas à tecnologia. Recentemente, conversamos sobre métodos para introduzir essas crianças no mundo da robótica, e estou curioso para saber que tipos de opções de baixo custo temos.

Uma idéia muito atraente seria ter um simulador on-line ou (mais preferível) um simulador autônomo off-line com o qual possamos construir e programar robôs simples. Talvez nada mais do que arrastar componentes juntos e depois programar as interações entre esses componentes.

Que soluções existem que eu posso usar em nosso alcance?

Sampson
fonte
Na minha experiência, um robô de aparência média que não funciona recebe muito mais atenção (como um robô) do que um robô de aparência legal em um simulador. Desde que não seja real, pode ter sido também um jogo de computador ou um desenho animado para todas as crianças.
Shahbaz
Precisamos de um simulador para que as meninas possam realmente aprender conceitos de programação e colocá-los em uso. O simulador não precisa ser bonito - poderia ser nada além de formas geométricas grosseiras. O código é o que importa.
Sampson

Respostas:

7

Stage e Gazebo são simuladores de código aberto 2D e 3D, respectivamente. Eles são criados e mantidos pelo projeto Player . Eles são muito fáceis de usar e possuem muitos mapas e robôs pré-criados. Dependendo da experiência do seu público, você pode precisar fazer um pouco do trabalho pesado (por exemplo, criar arquivos de configuração e as principais classes).

Eles têm alguns benefícios adicionais também. Primeiro, desde que você crie seu código de controle principal como plug-ins de player, eles poderão ser facilmente adaptados a robôs reais. Segundo, já existe um grande número de plug-ins criados para funcionar com hardware real. Terceiro, eles trabalham com o ROS .

DaemonMaker
fonte
4

Pode ser que seja um pouco caro (CHF 75), mas eu ainda sugiro o Colobot . É um ambiente agradável, quase parecido com um jogo, onde os robôs precisam ajudar os humanos a tornar habitável uma base espacial. Os robôs são programados pelas crianças enquanto tarefas cada vez mais complexas são executadas. O programa ensina os fundamentos da programação de uma maneira divertida e orientada para objetivos.

rics
fonte
3

A robótica da Microsoft é GRATUITA e inclui um simulador . Não é exatamente o ambiente mais fácil do mundo, no entanto, é robusto e adequado à robótica real. Eu acho que com algum envolvimento do professor para preparar as coisas de antemão, pode ser útil. Existe um 'pacote' de simulador para LEGO, Neato e alguns outros robôs, e eles podem ser programados em C # ou em uma linguagem visual de arrastar e soltar.

Mais uma vez, acho que seria necessário algum trabalho adiantado para facilitar o uso dos jovens, mas não seria tão difícil e seria minha abordagem, de acordo com seus requisitos. Eu diria que, no que diz respeito à complexidade, isso (windows) versus um ambiente Linux com Gazebo / ROS, o ambiente windows seria um pouco menos complicado, embora a maior parte esperançosamente esteja oculta com o trabalho de preparação.

Spiked3
fonte
2

O RobotC tem um simulador disponível, embora ambos sejam produtos a alguns custos. No entanto, eles são muito voltados para estudantes e educação mais jovens. Essa seria a rota mais fácil e mais apropriada se os custos não forem um fator de bloqueio ( cerca de US $ 100 por licença para um único usuário, US $ 300 para 6 usuários e US $ 600 para 30 usuários ).

Se você comprar a versão do aluno ROBOTC para MINDSTORMS NXT da LEGO, o preço pode ser de 49 $ para cada ou 40 $ (mais de 20 licenças)

Spiked3
fonte
2

O V-Rep (Plataforma de Experimentação de Robôs Virtuais) parece ser bastante amplo nos tipos de simulações que ele pode fazer. É gratuito para fins educacionais e vem com uma ampla gama de ferramentas. Você pode dar uma olhada neste vídeo do YouTube para uma demonstração.

Shahbaz
fonte
1

Talvez não seja um simulador de robótica completo, mas estamos usando o CAD 3D, Autodesk Inventor, bastante para simulações. Normalmente, fazemos uma interface para o CAD semelhante ao que queremos que seja para o hardware. Dessa forma, podemos usar o modelo CAD como um protótipo virtual para:

  • Detecte erros de design com antecedência. Colisões, acidente vascular cerebral não é suficiente, etc.
  • Também foi útil para encontrar compensações para erros como erros de alinhamento. Usando o CAD, podemos modelar diferentes erros um por um e testar nossas compensações. É conveniente poder introduzir grandes erros com sinal conhecido.
  • O CAD também fornece respostas sobre coisas como momentos de inércia.
  • Também usamos o modelo CAD para gerar o programa para o equipamento.
Johan Larsson
fonte
Corrija-me se eu estiver errado, mas o CAD se concentra muito em modelar o hardware e a física corretamente, muito menos em programar o robô. O OP está interessado em ensinar programação, não engenharia, então eu acho que um sistema CAD não aborda o problema dele
ThomasH
@ThomasH, tivemos alguns programas de sucesso para a API do CAD e, dessa forma, conseguimos fazer muito desenvolvimento. Devo excluir?
Johan Larsson
1
Não há necessidade de excluir. Não é uma resposta ruim apenas porque acho que não é uma boa opção para o OP. A votação geralmente leva a resposta mais adequada ao topo de qualquer maneira, e o OP aceita a que mais ajudou. Mas os de ainda poderia ser de interesse para alguém com um problema semelhante que se depara com esta questão
ThomasH
1

Você pode querer conferir " MindRover ". É antigo e mais difícil de encontrar agora, já que o site original está extinto, mas ainda pode ser encontrado no Ebay ou na Amazon . Embora orientado para o jogo / missão, envolvia escolher entre uma paleta de componentes do robô, colocá-los em um chassi e depois conectá-los. Foi muito bem feito para um jogo e poderia ser usado para explorar conceitos simples a semi-avançados. Algumas capturas de tela aqui: http://images.google.com/images?q=mindrover .

Se você está procurando algo um pouco mais sério com os recursos do mundo real, pode consultar o FlowStone for Education . Eu não o usei, mas acredito que seja um ambiente de programação visual ideal para trabalhos do tipo robótica.

Por último, embora não seja software ou simulação, recentemente deparei com um comentário no reddit pelo phblj sobre uma técnica para introduzir programação , e achei muito bom (e especialmente adaptável à programação de robótica). Citar:

Ótimo exemplo de computadores que eu fiz com crianças: uma criança foi o "programa" e deu instruções sobre como fazer um sanduíche de manteiga de amendoim e geléia, mas elas não conseguiam assistir minhas ações. Eu era o computador e segui as instruções exatamente. Hilaridade resultou. (Não tirar a tampa da barra de amendoim, não tirar o pão da caixa em que eu o tinha). Depois de um minuto, outro garoto apareceu e tentou. Eles foram um pouco mais longe, mas ainda assim se atrapalharam. "Coloque a manteiga de amendoim no pão" resultou na jarra sobre o pão, etc. Foram necessárias várias crianças, mas finalmente conseguimos. Se você tiver um assistente, peça para que eles escrevam as instruções como foram ditas, criando o "programa".

Você pode obter explicações, então, mas o que realmente ficou preso foi que as crianças eram cada vez mais "inteligentes que um computador". Mas esses computadores eram muito, muito rápidos em seguir as instruções. Então eles precisavam usar sua inteligência e a velocidade dos computadores, e ... programação!

kaliatech
fonte