# National Taiwan University Racing Team Software Development Log
###### tags: `development_log` `NTURT`
##### Group: electrical system group
##### Person in charge: 羅紀翔
##### Authors: 羅紀翔
##### Subsystem: RPI
##### Subsystem number: RP1
##### Software name: rpi_deployer
##### Repository: [github](https://github.com/NTURacingTeam/nturt_rpi_deployer)
##### Started designing date: 8/17
##### Current version: 1.0
##### Last modified date: 8/28
---
## Engineering goal:
To avoid painful and repetitive processes of deploying ros to raspberry pi, this package automate it and even provide extra functionallities such as testing scripts to determine weather ros is running.
## Program structure:
### Deploying
In order to automate the process of deploying ros on raspberry pi, this program uses bash scripts to install, deploy and undeploy to raspberry pi. Please checkout `Usage` session in `README.md` for more information.
### Launch ros at start up
Please checkout `nturt_ros as a service that runs at start up` session in `README.md`.
### Named pipe
In order to execute host command in a docker container, a named pipe `nturt_ros_pipe` is created such that when passing shell command to it, a `execute_loop.sh` in `scripts/` will execute the command on the host meaching, making the container able to shutdown the host, etc.
`execute_loop.sh` can be stopped by passing `stop` to stop it.
## Included libraries:
-
## Testing environment:
- bash 5.0.17(1)-release (x86_64-pc-linux-gnu)
- ros noetic
##### Testing hardware:
- asus tuf gaming a15 FA506II-0031A 4800H
- raspberry pi 3B+
##### Operating system:
- raspbian 32-bit
- docker virtual environment from [NTURacingTeam/docker](https://github.com/NTURacingTeam/docker) with image `ros_matlab`, `ros_rpi` based on ubuntu20.04
##### Compiler(intepreter) version:
- gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
- python 3.8.10
---
## Testing result of O.O:
### Deploying to rpi
run
```shell=
./install.sh
./deploy.sh
```
on a blank rpi, deployed successfully.
### Launch ros ar start up
ros launched successfully
## Todos in O.O: