# Guia inicial - Docker IC
## :ghost:
OS: Ubuntu 20.04
ROS: Noetic (ROS 1)
Autor: Lucca Gandra (luccagandra@poli.ufrj.br)
## Simulação (Dentro do docker):
Executar
```
cd /root/lead/src/cbr_simulation/start && . start.sh
```

### TMUX (Simulação aberta):
Sempre tecle <kbd>Ctrl</kbd> + <kbd>b</kbd> e solte para realizar qualquer ação no TMUX.
(<kbd>Ctrl</kbd> + <kbd>b</kbd>) & <kbd>k</kbd> : Fecha todos os programas no TMUX
(<kbd>Ctrl</kbd> + <kbd>b</kbd>) & <kbd>[</kbd> : Sobe ou desce as linhas em alguma janela
(<kbd>Ctrl</kbd> + <kbd>b</kbd>) & <kbd>↑ ↓ → ←</kbd> : Muda as janelas
(<kbd>Ctrl</kbd> + <kbd>b</kbd>) & <kbd>1 2 3 4</kbd> : Muda as abas
### Alterar elementos da simulação:
O arquivo session.yml é responsável por personalizar o painel de execução da simulação.
Para customizá-lo:
```
cd /root/lead/src/cbr_simulation/start && nano session.yml
```

Os modelos de drones e mundos disponíveis estão em:
```
/root/lead/src/cbr_simulation/models
/root/lead/src/cbr_simulation/worlds
```
### Drones simulados:
Os modelos disponíveis atualmente são: `M600`(4 hélices), `M600`(6 hélices) e `Kopterworx`.
- `M600`(4 hélices):
Criado com o objetivo de ser controlado por Matlab e visualizado no Gazebo.
Parâmetros do M600
Corpo do Kopterworx
Sem controlador no modelo

*Instruções para execução em [Integração ROS-Matlab](https://hackmd.io/rcIaYPo1ReKCSbOXwJoDXQ)*
- `M600`(6 hélices):
Parâmetros do M600
Corpo do M600
Sem controlador no modelo

- `Kopterworx`:
Parâmetros do Kopterworx
Corpo do Kopterworx
Controlador Ardupilot
Por possuir controlador de código aberto e se comunicar por Mavlink, é possível abrir qualquer [ground control station (GCS)](https://en.wikipedia.org/wiki/UAV_ground_control_station) que tenha conectividade com o protocolo (praticamente todas de código aberto).

*Drone com controle do Ardupilot, monitorado pela [GCS: QGroundControl](http://qgroundcontrol.com/)*
### Mundos:
Sem mundos autorais por enquanto
# Úteis:
## Aliases
```
alias bashrc='nano ~/.bashrc'
alias refresh='source ~/.bashrc'
alias kill_gazebo='killall gzserver && killall gzclient'
alias kill_ros='killall -9 roscore && killall -9 rosmaster'
```
## Docker:
Abrir container
```
cd ~/cbr_simulation && sudo bash docker_run.sh
```
Fechar container
```
docker stop lead_drone_latest
```
Resolver problema de autorização "X11 Xauthority":
```
cd ~/cbr_simulation && sudo bash restart_container.bash
```