Em primeiro lugar, efetue o download
neste link e logo após efetue o comando unzip para descompactar o arquivo contendo os binários Windows/Linux e o código fonte.
$ unzip bioloidcontrol_v_0_2_1_src_and_win32_binaries.zip
$ cd bioloidcontrol/
Ao entrar na pasta bioloidcontrol, veremos a pasta controller, main, parser e viewer. Para não tornar este documento extenso, mencionarei apenas como utilizar o simulador.
Para compilar o visualizador 3D, entre na pasta viewer e execute os comandos make clean e make all como no exemplo a seguir:
$ make clean
O procedimento de compilação do programa principal de controle é similar ao mencionado acima, exceto que para os usuários que desejam por algum motivo remover a interface ncurses, basta modificar na linha 39 do arquivo src/cmd.cpp o seu conteúdo de _SIMPLECONSOLE para SIMPLECONSOLE.
Agora basta novamente utilizar os comandos make clean e make all:
$ make clean
$ make all
O arquivo XML de configuração do ROBÔ:
O programa principal carrega um arquivo XML de configuração do robô. No arquivo de configuração pode ser selecionado a execução do programa main com o parâmetro -config, logo a seguir um exemplo deste arquivo.
<?xml version="1.0" ?>
<Configuration>
<General>
<SaveOnExit>false</SaveOnExit>
</General>
<Hardware>
<WriteTorobôt>true</WriteTorobôt>
<Ax12>
<CWMargin id="1 2 3 4 5 6 7 8 9 10" >1</CWMargin>
<CCWMargin id="1 2 3 4 5 6 7 8 9 10" >1</CCWMargin>
<CWSlope id="1 2 3 4 5 6 7 8 9 10" >32</CWSlope>
<CCWSlope id="1 2 3 4 5 6 7 8 9 10" >32</CCWSlope>
<Punch id="1 2 3 4 5 6 7 8 9 10" >32</Punch>
<Status id="1 2 3 4 5 6 7 8 9 10" >4</Status>
<Speed id="1 2 3 4 5 6 7 8 9 10" >100</Speed>
<Torque id="1 2 3 4 5 6 7 8 9 10" >1023</Torque>
</Ax12>
<AxS1>
</AxS1>
<ControlTorque>true</ControlTorque>
<ControlSpeed>false</ControlSpeed>
<Controller>
<Torque id="1 2 3 4 5" time="1" p="10" i="0.5" d="0" offset="100" />
<Speed id="1 2 3 4 5" time="1" p="10" i="0.3" d="0" offset="30" />
</Controller>
</Hardware>
<Software>
<ComPort>/dev/ttyUSB0</ComPort>
<ComSpeed>115200</ComSpeed>
<StopOnCollisionRead>true</StopOnCollisionRead>
<StopOnCollisionWrite>true</StopOnCollisionWrite>
<AddMotionsWithCollision>false</addMotionsWithCollision>
<Debug>true</Debug>
<robôtConfigFile>dh_hexapod.xml</robôtConfigFile>
<robôtIsPresent>true</robôtIsPresent>
<WriteTorobôt>false</WriteTorobôt>
<ReadFromrobôt>true</ReadFromrobôt>
</Software>
</Configuration>
Farei uma breve explanação para este texto não ficar cansativo. Abaixo a relação dos principais parâmetros do arquivo config.xml.
<Configuration> <General><.SaveOnExit>: [true|false]
Grava as mudanças efetuadas durante a execução do programa.
<Configuration><Hardware><WriteTorobôt>: [true|false]
Grava dados no robô (as configurações).
<Configuration><Software><ComPort>:[/dev/ttyS0]
Definição da porta serial.
<Configuration><Software><ComSpeed>: [115200]
Velocidade da porta de comunicação.
<Configuration><Software><StopOnCollisionRead>: [true|false]
Interrompe o movimento se alguma colisão for detectada.
<Configuration><Software><AddMotionsWithCollision>: [true|false]
Executa movimentos se alguma colisão for detectada.
<Configuration><Software><robôtConfigFile>: [nome do arquivo]
Nome do arquivo de configuração do robô (dh_humanoid.xml ou dh_hexapod.xml).
<Configuration><Software><robôtIsPresent>: [true|false]
Informa se o robô esta conectado a uma porta serial.
<Configuration><Software><WriteTorobôt>: [true|false]
Grava dados no robô (falso para o modo simulado).