项目作者: gasparian

项目描述 :
Visualization of "KITTI-like" GNSS/IMU data
高级语言: TypeScript
项目地址: git://github.com/gasparian/telemetry-monitor.git
创建时间: 2020-04-24T08:09:47Z
项目社区:https://github.com/gasparian/telemetry-monitor

开源协议:MIT License

下载


https://gasparian.github.io/telemetry-monitor/

Telemetry monitor

If you’re using KITTI raw dataset, first accumulate all GNSS/IMU readings.
In order to work with custom-formatted data, change implementation of parseData() methods in ./client/js/data_processors.js.

Controls

  • Choose file - is for file uploading
  • play/stop buttons are for animation of the finished ride (when the socket is closed)
  • Socket button opens and closes web-socket connetction with the embedded server (see server address input in the middle)
  • Download - is for downloading parsed data to the local machine
  • Upload - to upload a *.yaml config file to the server
  • use slider to choose a batch size for visualization

Building and running

Install dependencies:

  1. npm run install

Make a client bundle via webpack and run the server:

  1. npm run wp_dev
  2. npm run up_server

Or use docker, if you need to:

  1. docker-compose build
  2. docker-compose up

Also, to host the project on github pages, I just copy all static files from the public into the gh-pages branch, commited and pushed changes.

Embedded-server “emulator”

Remove previous boost version:

  1. sudo apt-get update
  2. # to uninstall deb version
  3. sudo apt-get -y --purge remove libboost-all-dev libboost-doc libboost-dev
  4. # to uninstall the version which we installed from source
  5. sudo rm -f /usr/lib/libboost_*
  6. sudo rm -rf /usr/include/boost
  7. sudo rm -rf /usr/lib/cmake/boost_*
  8. sudo rm -rf /usr/lib/cmake/Boost_*

Install boost 1.66 (first version contains beast library):

  1. wget -O /tmp/boost_1_66_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.66.0/boost_1_66_0.tar.gz
  2. cd /usr/local
  3. sudo tar -xf /tmp/boost_1_66_0.tar.gz
  4. cd ./boost_1_66_0
  5. sudo ./bootstrap.sh --prefix=/usr --show-libraries
  6. sudo ./bjam --prefix=/usr install

Compile the project:

  1. cd ./embedded_server_proto
  2. mkdir build && cd build
  3. cmake .. && make

Run the server:

  1. ./websocket-server-sync 0.0.0.0 8008

Messages processing logic is implemented in ./embedded_server_proto/src/session_processor.hpp—>do_session.

Kitti data format specs

  1. - lat: latitude of the oxts-unit (deg)
  2. - lon: longitude of the oxts-unit (deg)
  3. - alt: altitude of the oxts-unit (m)
  4. - roll: roll angle (rad), 0 = level, positive = left side up (-pi..pi)
  5. - pitch: pitch angle (rad), 0 = level, positive = front down (-pi/2..pi/2)
  6. - yaw: heading (rad), 0 = east, positive = counter clockwise (-pi..pi)
  7. - vn: velocity towards north (m/s)
  8. - ve: velocity towards east (m/s)
  9. - vf: forward velocity, i.e. parallel to earth-surface (m/s)
  10. - vl: leftward velocity, i.e. parallel to earth-surface (m/s)
  11. - vu: upward velocity, i.e. perpendicular to earth-surface (m/s)
  12. - ax: acceleration in x, i.e. in direction of vehicle front (m/s^2)
  13. - ay: acceleration in y, i.e. in direction of vehicle left (m/s^2)
  14. - az: acceleration in z, i.e. in direction of vehicle top (m/s^2)
  15. - af: forward acceleration (m/s^2)
  16. - al: leftward acceleration (m/s^2)
  17. - au: upward acceleration (m/s^2)
  18. - wx: angular rate around x (rad/s)
  19. - wy: angular rate around y (rad/s)
  20. - wz: angular rate around z (rad/s)
  21. - wf: angular rate around forward axis (rad/s)
  22. - wl: angular rate around leftward axis (rad/s)
  23. - wu: angular rate around upward axis (rad/s)
  24. - posacc: velocity accuracy (north/east in m)
  25. - velacc: velocity accuracy (north/east in m/s)
  26. - navstat: navigation status
  27. - numsats: number of satellites tracked by primary GPS receiver
  28. - posmode: position mode of primary GPS receiver
  29. - velmode: velocity mode of primary GPS receiver
  30. - orimode: orientation mode of primary GPS receiver

To do:

  • First order:
    • make data parser for custom data —> look at the processing from ins repo
  • Second order:
    • fix small delay at start of data transfer through web-socket
    • fix classes and ids mess in layout and styles
    • work with graphs’ zooming/panning - smth wrong on large files
    • add configurable plots (smth like plus sign…) == components?
    • charts.js —> D3.js (?)