Parâmetros
O software de controle robótico tem algums parâmetros de configuração que afetam cálculos e a execução do código.
Carregando e Modificações
Os parâmetros são carregados pelo sistema de arquivos. Esses arquivos estão localizados em etc/parameters/
. Este diretório também é mandado por deploy para o NAO. A Comunicação é capaz de modificar valores dos parâmetros em tempo de execução (mas não consegue aplicar essa modificações no arquivo propriamente dito).
Sobrescrevendo
O diretório dos parâmetros permite sobrescrever individualmente campos de configurações na hierarquia dos objetos. Os NAOs tem as câmeras e a placa principal na cabeça, e a placa do peito e atuadores espalhados pelo corpo. Cada cabeça e corpo do NAO possui um ID único que permite carregar parâmetros específicos. Além disso, robôs podem precisar de diferentes parâmetros dependendo da localização, essa localização é selecionada no diretório etc/parameters/
e aponta para um diretório em que os arquivos de parâmetros sobrescritos são colocados. Para criar um objeto de parâmetros completo é necessário utilizar este procedimento:
- Ler e processar (parsing)
etc/configuration/default.json
- Se existir, ler e processar...
- Para o NAO:
etc/nao_location/default.json
- Para Webots:
etc/webots_location/default.json
- Para o simulador de comportamento:
etc/simulated_location/default.json
- Para o NAO:
- Se existir, ler e processar
etc/body.{body_id}.json
- Se existir, ler e processar
etc/head.{body_id}.json
- Se existir, ler e processar...
- Para o NAO:
etc/nao_location/body.{body_id}.json
- Para Webots:
etc/webots_location/body.{body_id}.json
- Para o simulador de comportamento:
etc/simulated_location/body.{body_id}.json
- Para o NAO:
- Se existir, ler e processar...
- Para o NAO:
etc/nao_location/head.{body_id}.json
- Para Webots:
etc/webots_location/head.{body_id}.json
- Para o simulador de comportamento:
etc/simulated_location/head.{body_id}.json
- Para o NAO:
Os locais dos diretórios geralmente são symlinks para os diretórios verdadeiros. Isso permite mudar locais facilmente redirecionando os symlinks.