Category Archives: Pesquisa científica

Falha na compilação do MiXiM 2.2.1 com GCC 4.7

Ok, mais um probleminha identificado com a atualização do GCC para a versão 4.7. Apesar de uma nova versão do MiXiM ter sido lançada recentemente (versão 2.3), vamos resolver isso primeiro.

Se com a atualização do GCC (versão 4.7) ocorreu o erro na compilação do MiXiM semelhante ao que segue:

phyLayer/Interpolation.h:433:50: error: ‘asInterpolated’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
make[1]: Leaving directory `/home/dkalo/omnetpp-4.2.2/samples/MiXiM/src'
phyLayer/Interpolation.h:433:50: note: declarations in dependent base ‘InterpolatorBase<std::map >’ are not found by unqualified lookup
phyLayer/Interpolation.h:433:50: note: use ‘this->asInterpolated’ instead

Note que pela descrição do erro está ocorrendo uma ambiguidade na chamada do método asInterpolated. Para resolver isso basta abrir o arquivo “.../MiXiM/src/base/phyLayer/Interpolation.h” e adicionar a referência ao método local (this) em todas as chamadas do métodos. Por exemplo:

if(upperBound == first) {
- return asInterpolated(upperBound->second, true);
+ return this->asInterpolated(upperBound->second, true);
}

E pronto.


Falha na compilação do OMNet++

Um possível erro que pode ocorrer no processo de instalação do OMNet++ (versão 4.2.2) é a falha na compilação do OMNet (na execução do comando ‘make‘).

A descrição do erro é:

make[1]: Entering directory `/home/ivairton/omnetpp-4.1'
***** Configuration: MODE=release, TOOLCHAIN_NAME=gcc, LIB_SUFFIX=.so ****
===== Checking environment =====
mkdir -p /home/ivairton/omnetpp-4.2.2/bin
===== Compiling utils ====
cd /home/ivairton/omnetpp-4.2.2/src/utils && make
make[2]: Entering directory `/home/ivairton/omnetpp-4.2.2/src/utils'
g++ abspath.cc -o /home/ivairton/omnetpp-4.2.2/out/gcc-release/src/utils/abspath
abspath.cc: In function ‘std::string toAbsolutePath(const char*)’:
abspath.cc:62:38: error: ‘getcwd’ was not declared in this scope
make[2]: *** [/home/ivairton/omnetpp-4.2.2/out/gcc-release/src/utils/abspath] Error 1
make[2]: Leaving directory `/home/ivairton/omnetpp-4.2.2/src/utils'
make[1]: *** [utils] Error 2
make[1]: Leaving directory `/home/ivairton/omnetpp-4.2.2/'
make: *** [allmodes] Error 2

Como pode ser detectado na descrição do erro, é uma falha na referência ao comando ‘getcwd‘. Este comando recupera o diretório onde está ocorrendo a compilação. Para resolver este problema no linux é simples, basta adicionar a biblioteca ‘unistd.h‘.

Portanto abra para edição o arquivo ~/…/omnetpp-4.2.2/src/utils/abspath.cc e inclua a biblioteca com o comando
#include <unistd.h>

Atenção para não incluir a biblioteca dentro da área de definição de bibliotecas para o Windows.


Utilizando o MiXiM para simulação de redes sem fio

O MiXiM é um simulador para redes sem fio ad hoc com nós móveis ou fixos. É um projeto baseado no simulador OMNet++ e se apresenta como uma boa opção para simulação de Redes de Sensores Sem Fio.

Neste post vamos ver como instala-lo e deixa-lo pronto para uso.

O primeiro passo é estar com o OMNet++ corretamente instalado, para isso dê uma olhada no post Instalando o simulador OMNet++ para simulação de redes. O próximo passo é baixar a última versão do MiXiM. No momento deste post a última versão era a 2.2.1.

A instalação é bem simples, para isso abra a IDE do OMNet++ e siga os seguintes passos:

  1. Acesse o menu: “File -> Import”
    File Import
  2. Na nova janela que se abre, selecione a opção: “General -> Existing Projects into Workspace” e clique no botão “Next”
    Select Existing Project
  3. Selecione a opção “Select archive file” e escolha o arquivo (compactado) do projeto baixado do site do MiXiM. Verifique se o projeto MiXiM está marcado e clique no botão “Finish”
    Import Archive
  4. Para compilar o projeto, clique com o botão direito do mouse sobre o novo projeto criado (MiXiM) e escolha a opção “Build Project”.
    Project MiXiM
  5. Para executar um dos exemplos disponíveis, acesse o diretório “examples” presente no projeto. Selecione a pasta do exemplo desejado, abra e clique com o botão direito do mouse sobre o arquivo executável. Escolha a opção “Run as” seguido de “Run configurations…”
    Example Run As...
  6. Defina um nome para a configuração (sugestão que seja o mesmo nome do exemplo). O campo “Working directory” deve ser o mesmo diretório do exemplo. Na seção “Simulation”, selecione a opção “Other” e escolha o arquivo executável do exemplo. O campo “Ini File(s)” deve corresponder ao arquivo omnetpp.ini presente no diretório do exemplo.
    Run Configurations

Pronto! Agora é testar alguns exemplos e começar a estudar o MiXiM. Espero em breve postar novas dicas para essas simulações, especialmente para Redes de Sensores Sem Fio.

Fonte das imagens e informações MiXiM Wiki


Instalando o simulador OMNet++ para simulação de redes

Um dos simuladores que têm ganhado bastante espaço nas simulações de redes é o OMNet++. Neste post vamos ver como instalar o OMNet++ em ambiente Linux com OpenSuse.

O primeiro passo é certificar-se que os pacotes requeridos para o funcionamento do simulador estão instalados, sendo eles:

  • make
  • gcc
  • gcc-c++
  • bison
  • flex
  • perl
  • tcl-devel
  • tk-devel
  • libxml2-devel
  • zlib-devel
  • java (versão OpenJDK ou SUN)
  • doxygen
  • graphviz
  • openmpi-devel
  • libpcap-devel
  • mozilla-xulrunner192

Há alguns pacotes adicionais que podem ser instalados para ampliar as funcionalidades do simulador, como o Akaroa, que permite gerar relatórios mais completos. Como são opcionais, não vamos aborda-los neste post.

Baixe a última versão estável do OMNet++ (no momento da escrita deste artigo a última versão era a 4.2.2) e descompacte-a. É preciso redefinir duas variáveis de ambiente. Para isso, adicione no final bashrc o diretório de execução e das bibliotecas do OMNet++. Você pode fazer isso por meio da adição dos comandos:

  • export PATH=$PATH:$HOME/omnetpp-4.2.2/bin
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/omnetpp-4.2.2/lib/

Em seguida acesso o diretório do OMNet++ e execute o script de configuração $ ./configure. Certifique-se que não ocorreram erros. Na sequência, execute a compilação por meio do comando $ make. Feito isso o simulador está instalado.

Para verificar a instalação, entre no diretório samples e execute o comando $ ./rundemo, será aberta uma interface com selecione alguns e verifique o funcionamento.

Para iniciar a IDE do OMNet++ basta executar o comando $ omnetpp. Se preferir, você pode adicionar o atalho no menu por meio do comando $ make install-menu-item, ou no no Desktop com o comando $ make install-desktop-icon.

Pronto, agora é desenvolver seu projeto e publicar seus resultados! Mais tarde vamos falar a respeito do módulo Mixim. Bom trabalho!


Instalação do simulador NS 2 e do framework MannaSim para simulação de Redes de Sensores Sem Fio

Nas pesquisas de protocolos de roteamento e outras propriedades inerentes à comunicação e transferência de dados em Redes de Sensores Sem Fio (RSSF) a simulação é uma ferramenta importante para demonstrar e avaliar propostas de uma maneira barata e rápida.

Como opção temos o simulador de rede NS 2, que está atualmente na versão 3. O uso da versão 2 se dá em razão de uma reestruturação que a nova versão sofreu, apresentando incompatibilidade com projetos desenvolvidos para a versão anterior e pelo fato que a nova versão ainda está em processo de amadurecimento e aceitação/transição dos usuários. O NS 2 não disponibiliza funcionalidades suficientes para uma simulação adequada de uma RSSF, para isso será utilizado o framework MannaSim desenvolvido pelo Departamento de Ciência da Computação da UFMG.

Este artigo apresenta as principais diretrizes para a instalação do simulador NS 2 e do framework MannaSim.
Continue reading


Computação Pervasiva X Computação “intrometida”

A computação pervasiva apresenta um potencial fantástico, possibilitando novos modelos de aplicações que irão auxiliar as pessoas em diversas tarefas. Duas dessas possibilidades são a aplicação da computação pervasiva em nossas casas, buscando propiciar um ambiente mais saudável, com melhor conforto e menor consumo de recursos; e em “etiquetas inteligentes” que poderão ser utilizadas em livros, bagagens, chaves de automóveis, contêiners, entre outros, buscando incrementar sistemas de segurança, controle, logística e de varejo. Entretanto essas aplicações e o modelo de implementação acabam levando ao questionamento quanto a privacidade e a segurança dos usuários. Este texto discute brevemente sobre esse assunto, baseando-se nos artigos de Stanford (2003) e Intille (2002).

A computação pervasiva tem ampliado gradativamente sua aplicação em novos sistemas por conta da diminuição do tamanho dos equipamentos e redução de custos. Há a expectativa que no futuro os componentes computacionais estarão presentes em qualquer tipo de objeto e estes estarão conectados entre si, trocando informações de modo a resolver ou auxiliar em diversas tarefas das pessoas. Entre as diferentes possibilidades, imagine o potencial de etiquetas de identificação com comunicação sem fio ou ainda uma casa “inteligente”, capaz de sugerir/controlar ações para economia de recursos como energia elétrica.

Continue reading


Sistemas de transporte mais inteligentes com computação pervasiva

A computação pervasiva é baseada na interação entre computadores e dos computadores com as pessoas e com o mundo. A aplicação da computação pervasiva em sistemas de transporte pode promover um aumento de eficiência e segurança, além de uma nova experiência para as pessoas que utilizam esses sistemas. Este texto é baseado nos artigos de Wang (2006, 2007) e Farkas (2006).

Diversas funcionalidades podem ser implementadas quando a computação é aplicada para resolver problemas de transporte, tais como sistemas antifurto, planejamento e otimização de rotas, entretenimento, sistemas de comunicação, coleta de dados, planejamento e manutenção de veículos, sistemas anti colisões, monitoramento de pressão dos pneus, sistemas de identificação e sistemas de localização em tempo real. O uso da computação pervasiva em qualquer aplicação desenvolvida para sistemas de transporte propicia um sistema mais eficiente e “inteligente”.

Com a computação pervasiva será possível implementar computadores dentro, fora dos veículos e no ambiente onde os veículos se locomovem. Esses dispositivos irão compor sistemas de suporte ao motorista e passageiros, ampliando a segurança, a eficiência no transporte e o conforto. Os carros, por exemplo, poderão se comunicar com outros carros e também com dispositivos instalados nas ruas/estradas (através de controles remotos, sistemas de localização, sensores ou RFID), que podem inclusive ajudar a detectar e prevenir colisões, informar sobre condições de clima, situação da via, ou mesmo alertar sobre perigos (animais, interrupções). Ainda, haverá sistemas de assistência ao motorista baseado em visão computacional, capaz de detectar a partir do movimento do motorista a ação que está sendo tomada, auxiliando na execução da tarefa ou emitindo um alerta para o caso de uma ação perigosa.
Continue reading


Computação Ubíqua/Pervasiva

A computação ubíqua ou computação pervasiva apresenta um novo modelo de sistema de computação, diferente do modelo atual que prioriza máquinas potentes (computacionalmente) de uso geral. Esse novo conceito é baseado em equipamentos pequenos, com poder computacional adequado à sua função (limitado) e com ampla conectividade, não a conectividade a uma rede, mas a quaisquer outros dispositivos pervasivos que possam de alguma forma colaborar coletivamente para auxiliar em uma tarefa. Este texto discute brevemente sobre computação ubíqua, baseando-se nos artigos de Weiser (1991), Lyytinen e Yoo (2002) e Mattern (2005).

Lyytinen e Yoo (2002) propõem uma diferenciação entre os termos “computação ubíqua” e “computação pervasiva”, classificando como computação pervasiva modelos com dispositivos com alto grau de acoplamento e baixo grau de mobilidade, enquanto que computação ubíqua seriam os modelos com dispositivos com alto grau de acoplamento e alto grau de mobilidade. Apesar dessa proposta de diferenciação, nota-se que não há uma distinção bem definida ou unânime por outros autores, alguns se quer fazem distinção entre os termos. Por essa razão, neste texto será utilizado somente o termo “computação ubíqua”.

Weiser (1991) apresenta uma afirmativa interessante em seu artigo, defende que as tecnologias mais profundas tendem a “desaparecer”, tornando-se imperceptível, indistinguível pelas pessoas, integrando-se ao cotidiano. Ou seja, essas tecnologias deixam de ser o foco de atenção, passam a ser intrínsecas (talvez até óbvias), tal como a aplicação da escrita, do uso de motores elétricos, da eletricidade. Dessa forma as pessoas passam, a partir dessa tecnologia intrínseca, a focarem em novos desafios/objetivos.

Continue reading


Cientistas fazem mapa da gravidade da Terra

Fonte BBC e Folha do Estado

A agência espacial europeia (ESA) anunciou nesta quinta-feira, 31, que o satélite Goce, após anos em órbita, tem informações suficientes para fazer um mapa da gravidade da Terra de precisão sem precedentes. O modelo, conhecido como geoide, define onde estão os níveis da superfície terrestre, esclarecendo se o sentido é “para cima” ou “para baixo”.

Os cientistas afirmam que os dados podem ser usados em inúmeras aplicações, entre elas nos estudos de mudança climática para ajudar a entender como a grande massa de oceanos move calor ao redor da Terra.

O mapa foi desenhado a partir de medições precisas realizadas pelo satélite europeu Goce, sigla formada a partir das iniciais da sonda exploradora de campo gravitacional e equilíbrio estacionário que circula na órbita terrestre a uma altitude de pouco mais de 250 km da superfície – a órbita mais baixa de um satélite de pesquisa em operação.
Continue reading


Linux cientista

Por diversas vezes encontramos reportagens ou pesquisas que apontam a crescente adoção do Linux em desktops, em ambientes de desenvolvimento de sistemas, além da larga utilização em servidores web. O que nem sempre é lembrado é a sua importante aplicação em pesquisas científicas.

O Linux foi desenvolvido inicialmente em ambiente universitário, na Universidade de Helsinki (Finlândia), pelo agora famoso Linus Torvalds, e desde então se estabeleceu uma sinergia entre o SO e a academia, hora o Linux ajudando nas pesquisas, hora a academia investindo na evolução do Linux. Atualmente é fácil encontrar exemplos de importantes grupos de pesquisa (nacional e internacional) que utilizam o Linux em diversas áreas de conhecimento, seja em computação, biologia, engenharia, geografia, física, química, entre outras.

Os principais motivos que levam à utilização do Linux em ambientes de pesquisa são simples: primeiro, e talvez o mais importante, é a confiabilidade. Imagine que após vários dias executando um aplicativo científico, prestes a obter os resultados, o sistema trava misteriosamente! Esse tipo de situação é um pesadelo para o cientista, por isso o Linux se mostra como uma excelente alternativa, pois é relativamente simples de ser utilizado e apresenta uma ótima estabilidade e confiabilidade. Há também o fato da adaptabilidade, é possível implementar módulos ou configurar o sistema de maneira que ele fique adequado e que permita obter resultados precisos e em tempo otimizado. Um exemplo interessante dessa flexibilidade é o cluster construído pelo pessoal do National Center for Supercomputing Applications – NCSA (http://www.ncsa.uiuc.edu/) que em 2003 foram os primeiros a construírem um cluster com consoles Playstation II (com 70 unidades) rodando Linux. Além é claro do fato de ser um sistema livre de royalty, o que diminui os custos das pesquisas.
Continue reading