collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Invista seu tempo e conhecimentos com Linux  (Lida 6474 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Tayeb

  • Mini Robot
  • *
  • Mensagens: 710
Invista seu tempo e conhecimentos com Linux
« em: 12 de Junho de 2014, 07:18 »
Sendo Lusorobótica um espaço único em língua portuguesa, que atrai visitas dos entusiastas de electrónica, e para incentivar a camada jovem de membros e visitantes, e não só, a adquirem conhecimentos de Linux, venho partilhar o que acabo de ler.

87 porcento de oferta de empregos no ramo tecnológico requere conhecimentos de Linux. 25% dos projetos ficam adiados devido à falta de programadores com os conhecimentos adequados. Dá muito que pensar! Leia a notícia em:

http://www.zdnet.com/linux-hiring-frenzy-why-open-source-devs-are-being-bombarded-with-offers-to-jump-ship-7000030418/
« Última modificação: 12 de Junho de 2014, 08:38 por Tayeb »

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: Invista seu tempo e conhecimentos com Linux
« Responder #1 em: 12 de Junho de 2014, 15:05 »
Sendo Lusorobótica um espaço único em língua portuguesa, que atrai visitas dos entusiastas de electrónica, e para incentivar a camada jovem de membros e visitantes, e não só, a adquirem conhecimentos de Linux, venho partilhar o que acabo de ler.

87 porcento de oferta de empregos no ramo tecnológico requere conhecimentos de Linux. 25% dos projetos ficam adiados devido à falta de programadores com os conhecimentos adequados. Dá muito que pensar! Leia a notícia em:

http://www.zdnet.com/linux-hiring-frenzy-why-open-source-devs-are-being-bombarded-with-offers-to-jump-ship-7000030418/

É verdade que unix é um mundo muito interessante, pena não ser mais lecionado, pelo menos as bases no ensino português.

Incrível como no isel eu dei ferramentas gnu como se fosse magia e simplesmente pedem-nos para decorar alguns comandos em vez de haver bases sobre linux a serem lecionadas.

Contudo tenho aprendido um pouco de forma auto didática e acho que é uma excelente ferramenta para ter no dia-a-dia.

Ultimamente tenho andado a descascar um pouco do ROS.org

Existem por aqui utilizadores de ROS? E curiosos por começar em ROS?

Offline Tayeb

  • Mini Robot
  • *
  • Mensagens: 710
Re: Invista seu tempo e conhecimentos com Linux
« Responder #2 em: 12 de Junho de 2014, 18:34 »
Não conhecia ROS. É muito interessante. Estás a fazer algo nesta área?

Sobre Linux estou a finalizar um tutorial com Raspberry Pi e chipKIT que espero publicar no meu blogue Redacacia. Hei-de aqui escrever algo sobre o trabalho que ainda estou a fazer.

Offline msaleiro

  • Mini Robot
  • *
  • Mensagens: 691
    • Blog
Re: Invista seu tempo e conhecimentos com Linux
« Responder #3 em: 12 de Junho de 2014, 20:37 »
Uso ROS diariamente no laboratório. É uma excelente plataforma com grande potencial, não só para robótica. Tem uma curva de aprendizagem pouco amigável para iniciantes. Contudo, depois de compreendida toda a arquitectura e funcionamento do ROS, abre-se um leque de possibilidades enorme.
msaleiro - Mário Saleiro
UAlg FCT-DEI / VisLab - Instituto de Sistemas e Robótica / eLab Hackerspace
http://thebitbangtheory.com

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Invista seu tempo e conhecimentos com Linux
« Responder #4 em: 12 de Junho de 2014, 20:41 »
Podes explicar em meia duzia de linhas qual a vantagem de usar ROS face a um err Ubuntu ou Debian ou Raspi*Distro/Beagle*Distro?
Dado que uma coisa é o marketing wank que se vê na internet, outra é tu que tens experiência em primeira mão.
Avr fanboy

Offline msaleiro

  • Mini Robot
  • *
  • Mensagens: 691
    • Blog
Re: Invista seu tempo e conhecimentos com Linux
« Responder #5 em: 13 de Junho de 2014, 03:19 »
Podes explicar em meia duzia de linhas qual a vantagem de usar ROS face a um err Ubuntu ou Debian ou Raspi*Distro/Beagle*Distro?
Dado que uma coisa é o marketing wank que se vê na internet, outra é tu que tens experiência em primeira mão.

Sim, claro. Antes de mais, o ROS é uma framework que pode ser instalada no Ubuntu ou num sistema Debian sem grandes complicações (noutras distribuições pode ser instalado a partir da source, mas pode dar algum trabalho e ter algumas incompatibilidades que têm de ser resolvidas). Apesar de ROS significar Robot Operating System, não é um sistema operativo tal como o Ubuntu, mas sim algo que corre por cima do Ubuntu.

Quanto às vantagens de usar o ROS, a primeira que vou mencionar é que na arquitectura do ROS existem mensagens tipo predefinidas, o que te permite ter código feito para um robô e usares exactamente o mesmo código com outro robô diferente (tamanho diferente, fabricante diferente, encoders diferentes, etc.), desde que a camada de abstracção do hardware esteja feita de maneira a pemitir a interligação com o ROS.

Outra característica do ROS é que funciona com base em nós e tópicos, o que permite que tudo seja extremamente escalável e modular. Vou utilizar o exemplo do robô que temos no lab, o Anubis, que é um Pioneer 3DX com sensores de ultrasons + Hokuyo Laser Rangefinder + Bumblebee 2 Stereo Camera + Arbotix Turret. Para fazer o interface com tudo o que tem a ver com a base do Pioneer 3DX existe o pacote ROSaria, que trata de todo o interface com o hardware e é um nó que publica em tópicos separados as leituras dos encoders e a velocidade (linear e angular) actual do robô, por exemplo. Por outro lado, esse mesmo nó subscreve outro tópico onde fica à espera de receber comandos do tipo Twist (velocidade linear + angular). Se quisermos controlar o robô, só temos de criar um nó que publique para esse tópico o comando com as respectivas velocidades lineares e angulares. O mesmo tipo de arquitectura aplica-se a todos os outros componentes do robô, de modo que podemos criar nós que só subscrevam determinados tópicos e só publiquem determinados tópicos.

Para os mais novos e menos experientes na robótica vou utilizar uma analogia muito simples. Imaginemos que temos três pessoas:
- o Zé, que tira uma fotografia por segundo e mete numa caixa de correio;
- o João, que sempre que recebe uma carta na sua caixa de correio vai levar o cão a passear.
- Eu, que quero que o João vá passear o cão sempre que o Zé tire uma fotografia de gatos.
Basicamente o que eu faço é ir à caixa de correio do Zé ver as fotografias que ele mete lá e quando eu vir uma que tem um gato, vou à caixa de correio do João e meto lá uma mensagem a dizer para ele ir passear o cão. Para fazer isso eu não tenho de saber como é que o Zé tira fotografias nem de saber como é que o João passeia o cão. Mesmo que eu vá dormir, o Zé continua a publicar fotografias e o João continua à espera de mensagens para ir passear o cão porque o trabalho de cada um deles só depende das mensagens que enviam ou recebem.
Convertendo a analogia acima para o futebol robótico, temos:
- o nó da câmara a publicar uma fotografia por segundo no tópico /camera;
- um nó que faz processamento da imagem para detectar a bola cor de laranja que subscreve ao tópico /camera e por sua vez publica uma mensagem no tópico /chuta sempre que detecta uma bola;
- o nó do actuador que subscreve o tópico /chuta à espera de receber uma mensagem para activar o actuador.

Com esta arquitectura todo o sistema fica 100% modular e sem quaisquer problemas no fluxo de informação de um nó para outro.

A existência de tipos de mensagens predefinidas e a modularidade do sistema abre portas ainda a outra enorme possibilidade que é criar sistemas robóticos distribuídos por vários computadores de uma maneira extremamente fácil. Existe sempre um processo que é o roscore que tem de ser executado num dos computadores da rede. Desde que os outros computadores da rede tenham conhecimento do IP do computador onde está a correr o roscore, podem publicar ou subscrever os tópicos do sistema robótico. Por exemplo num ambiente de laboratório posso eu desenvolver um nó para reconhecimento de objectos, o meu colega desenvolver um nó para navegação, outro colega pode fazer um nó para actuação de um braço robótico e em vez de se meter tudo num único mega computador que aguente com o processamento todo, cada um dos nós pode estar a correr num computador separado, tendo como único problema a latência da rede.

Por fim, a outra grande vantagem do ROS, mais para os "high end users", é que os grandes grupos de investigação em robótica usam ROS e muitas vezes disponibilizam os módulos /pacotes deles para outros investigadores usarem/experimentarem. Um utilizador pode pegar num kit robótico qualquer com uma câmara, e, desde que faça a camada de abstracção do hardware compatível com ROS pode, em pouco tempo, fazer o download do pacote de navegação do RatSLAM (navegação e mapeamento simultâneo baseado em células do córtex cerebral dos ratos: place cells, grid cells, orientation cells) e meter o robô a navegar com um algoritmo que foi fruto do trabalho de investigação de diversos especialistas na área há 3 ou 4 anos.

Não sei se a explicação foi muito confusa e se deu para perceber o potencial do ROS mas se tiverem dúvidas tentarei esclarecê-las. Como disse, o ROS não é propriamente fácil para principantes porque leva-se algum tempo até se perceber todo o funcionamento e arquitectura do sistema. No entanto, uma vez ultrapassadas essas barreiras, as possibilidades e a facilidade de fazer as coisas é muito maior.
« Última modificação: 13 de Junho de 2014, 15:15 por msaleiro »
msaleiro - Mário Saleiro
UAlg FCT-DEI / VisLab - Instituto de Sistemas e Robótica / eLab Hackerspace
http://thebitbangtheory.com

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Invista seu tempo e conhecimentos com Linux
« Responder #6 em: 13 de Junho de 2014, 03:45 »
Parece-me extremamente interessante.
Obrigado pelo trabalho que tiveste a fazer esta descrição.
Avr fanboy

Offline msaleiro

  • Mini Robot
  • *
  • Mensagens: 691
    • Blog
Re: Invista seu tempo e conhecimentos com Linux
« Responder #7 em: 13 de Junho de 2014, 14:17 »
De nada :) Qualquer outra dúvida que haja é só dizer.
msaleiro - Mário Saleiro
UAlg FCT-DEI / VisLab - Instituto de Sistemas e Robótica / eLab Hackerspace
http://thebitbangtheory.com

Offline msr

  • Mini Robot
  • *
  • Mensagens: 798
Re: Invista seu tempo e conhecimentos com Linux
« Responder #8 em: 13 de Junho de 2014, 14:48 »
Nice!
A malta de robotica no IST tambem usa isto, mas não fazia ideia de como funcionava.
Mais um link que pode interessar: http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern

Offline jmiguelff

  • Mini Robot
  • *
  • Mensagens: 204
Re: Invista seu tempo e conhecimentos com Linux
« Responder #9 em: 13 de Junho de 2014, 14:53 »
Eu achei piada a este livro para aprender Linux http://www.amazon.co.uk/Linux-Programming-Example-Kurt-Wall/dp/0789722151/ref=sr_1_1?ie=UTF8&qid=1402667527&sr=8-1&keywords=linux+programming+by+example

Já está desactualizado mas ainda dá para aprender bastante.

Offline nvoltex

  • Mini Robot
  • *
  • Mensagens: 211
Re: Invista seu tempo e conhecimentos com Linux
« Responder #10 em: 14 de Junho de 2014, 10:45 »
ROS é uma ferramenta extremamente interessante, embora como tenham dito tenha uma curva de aprendizagem "pouco amigável". Já tive alguma experiência com ROS, mas uma vez que na altura decidi fazer um bridge com o Matlab a experiência foi ainda menos amigável do que o normal. E a quantidade de pacotes disponibilizados pela comunidade é enorme o que permite chegar a um objectivo mais facilmente uma vez que pode não ser necessário criar todos os pacotes de raiz.
(No IST tem-se vindo a usar cada vez mais esta ferramenta, havendo até uma cadeira de robótica em que o projecto é suposto ser feito em ROS.)
Na realidade até vou utilizar ROS na minha tese, embora tenha de voltar a reaprender muita coisa, uma vez que já não uso ROS a algum tempo e com o Hydro houve algumas mudanças (para melhor).

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: Invista seu tempo e conhecimentos com Linux
« Responder #11 em: 14 de Junho de 2014, 11:50 »
Estou a dar os primeiros passos com ROS de forma auto didáctica mas parece-me uma excelente plataforma e com um enorme potencial.

Ainda estou no ABC, mas é uma excelente aplicação para Raspberry PI, permitindo utilizar o mesmo conceito de não reinventar a roda e fazer e utilizar módulos de software como já existe com o hardware, evitando andarmos a fazer electrónica discreta em vez de utilizar um microcontrolador para o efeito.

Temos que juntar 2~3 que já conheçam a plataforma para fazermos uns simples tutoriais de ROS em português para metermos mais gente a experimentar a plataforma e trocar conhecimentos sobre a mesma.

Com o aumento da capacidade de computação e a diminuição dos custos energéticos dos ARM assim como os preços, sem dúvida que ROS irá ser uma opção cada vez mais interessante.