# GPS
###### tags: `software` `electrical_system` `NTURT`
## Library
### GPSD
Install the gps deamon and client by
```bash=
sudo apt install gpsd gpsd-clinets
```
- Very handy command to checkout the received GPS singal: [cgps](https://www.systutorials.com/docs/linux/man/1-cgps/)
- Control the mode of a GPS: [gpctl](https://manpages.ubuntu.com/manpages/jammy/man1/gpsctl.1.html)
### C library
Install the library by
```bash=
sudo apt install libgps-dev
```
- Tutorial: [A Beginner’s Guide To Using gpsd (GPS Devices) In Linux](https://kickstartembedded.com/2022/07/23/a-beginners-guide-to-using-gpsd-in-linux/)
- GPS C library: [libgps manpage](https://manpages.ubuntu.com/manpages/jammy/man3/libgps.3.html)
### ROS / ROS2 GPS driver
:::warning
If you're only using this driver, the above libaries are unnecessary, but it's handly for checking out the received signal.
:::
:::warning
Though `gpsd` broadcast received GPS signal using tcp/ip on port 2947, the GNSS receiver (at least GN200 that we use) transmits on serial. So use **serial** mode when using ROS driver.
:::
- Tutorial: [ROS 學習筆記 – NMEA Driver](https://mapostech.com/ros-nmea-driver/)
- Github: [ros-drivers/nmea_navsat_driver](https://github.com/ros-drivers/nmea_navsat_driver/tree/ros2)
## Receiver
Currently, the GNSS receiver on our race car is [GN200](https://www.topgnss.com/product1/showproduct.php?id=39).