# Introduction to ROS
###### tags: `tutorial` `electrical_system` `NTURT` `software`
##### Author: @chemmy-kuo @LY-pac
## Prerequisite
- Linux or macOS environment
## Configure vs code for ros
[Setting Up VSCode with ROS](https://samarth-robo.github.io/blog/2020/12/03/vscode_ros.html)
## Follow ROS tutorial
[ROS tutorial](http://wiki.ros.org/ROS/Tutorials)
- 1.1 Beginner Level
- finish from 1 to 7, roslanch, 10, 11, 13, 14, and 16 to 18.
- 1.2 Intermediate Level
- finish 1
## Resources
- [ROS簡介及教學資源整理](https://ithelp.ithome.com.tw/articles/10200551)
## ROS topic
:::success
Please utilize the provided docker environment.
:::
:::success
Please document your code using doxygen.
:::
:::success
Please push your homework onto your github repository in the `ros` directory.
Your homework should contain a package.
:::
:::warning
You should use c++.
:::
We will encrypt a paragraph publish it to a topic called "encrypted_message".
We will record the topic into a bag and privide it to you.
Your job is to write a node which will read the bag, decrypt the message, and then publish the origin paragraph into a topic called "decrypted_message"
To get the provided bag, please click [me](https://cool.ntu.edu.tw/courses/7119/files/2536149?module_item_id=657109).
the encryption process is as follow:
1. 
2. Caecar chipher with ASCII code, shifting all characters forwards 3 (for example, "a" will become "d", "(" will become "")

4. turn every character into ASCII code
Your file should be a functionable ROS workspace.
```flow
st=>start: unknown node (paragraph encrypter)
op1=>operation: bag (provided by us) (encoded paragraph)
node=>operation: node (writen by you to decode the bag)
op2=>operation: bag (decoded paragraph)
e=>end: hand it over (commit your result to github)
st->op1->node->op2->e
```