# 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).