Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. VOXL Dev Drones
  3. VOXL m500 Reference Drone
  4. Incorrect date time when running vvpx4 with systemctl vs manual

Incorrect date time when running vvpx4 with systemctl vs manual

Scheduled Pinned Locked Moved VOXL m500 Reference Drone
2 Posts 2 Posters 564 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • PawelJP Offline
    PawelJP Offline
    PawelJ
    wrote on last edited by
    #1

    I've been working on adding some vio logging to the vvpx4 repo. I'm branched off the most recent master version as of July 30 2021. The idea is to be able to track the drones location, specifically when running offboard mode (figure8 in this case). I'm using the system date-time stamp to name the log files created, and the datetime returned changes depending how vvpx4 is run. If I let it run in the background with systemctl restart voxl-vision-px4 It keeps getting 1970-01-01_-4-00-08 or 1970-01-01_-4-00-09 as the date-time stamp, but if I run the service manually with voxl-vision-px4 to see printouts (note not running with the debug flag) I get the datetime I expect. The issue here is that my logs keep getting overwritten unless I am running the vvpx4 package manually. Just a quick note that I am subtracting 4 hours to correct for my timezone (can be seen in screenshots below).

    The changes are fairly minor and only extend to the vio_manager and offboard_figure8 scripts. I can email the scripts if it will help. For now I'll add some screenshots of the diff from master.

    vio_manager.c
    I made T_body_wrt_local and usec externally accessible from the vio_manager.c.
    f0b40696-c42b-43e8-9756-b48f4d77bbfb-image.png

    offboard_figure_eight.h
    I added some variables to the figure8 header for the file handles
    2af50fb9-25f9-4df3-8463-dbc02fa93cce-image.png

    offboard_figure_eight.c
    I instantiate my date-timestamp structs and the now externally facing T_body_wrt_local and usec variables from the vio_manager. Then I use the datetime to create the filename.
    7d3df209-4a85-4800-8c1b-04d948cf9eac-image.png

    I have the file open outside the main HOME loop of offboard_figure_eight, and I write to file during each loop following (not armed and in offboard mode, sending home position before offboard mode, and in offboard mode).
    fc003f7f-faa9-48ae-b038-20f795d006cb-image.png

    tldr; why is the system date-time returned different when vvpx4 is running as voxl-vision-px4 vs systemctl restart voxl-vision-px4?

    1 Reply Last reply
    0
    • James StrawsonJ Offline
      James StrawsonJ Offline
      James Strawson
      ModalAI Team
      wrote on last edited by
      #2

      I tried to recreate this with a simple little test_time program but it behaves as expected:

      #include <stdio.h>
      #include <time.h>
      
      void main()
      {
      
      	time_t t = time(NULL);
      	struct tm datetime = *localtime(&t);
      
      	printf("time:\n");
      	printf("%d-%d-%d_%d-%d-%d\n", datetime.tm_year+1900,datetime.tm_mon+1, datetime.tm_mday,datetime.tm_hour,datetime.tm_min,datetime.tm_sec);
      	printf("DONE\n");
      
      	return;
      }
      

      the result of starting this manually and from a systemd service is the same.

      Aug 03 17:52:43 apq8096 systemd[1]: Starting test_time...
      Aug 03 17:52:44 apq8096 systemd[1]: Started test_time.
      Aug 03 17:52:44 apq8096 test_time[4238]: time:
      Aug 03 17:52:44 apq8096 test_time[4238]: 2021-8-3_17-52-44
      Aug 03 17:52:44 apq8096 test_time[4238]: DONE
      

      Note that if you run this on boot then it will likely run before establishing an internet connection and fetching a date and time from either GPS or an NTP server. VOXL will not remember the date and time between reboots.

      Also, modifying VVPX4 to log VIO data is an unnecessarily difficult way of going about this. It's also unsafe to write to a file in the same flight-critical thread that's sending PX4 high-rate commands. There is a tool called voxl-logger that likely does what you need, and would be safer to modify to do what you need than messing with VVPX4.

      yocto:/etc/systemd/system$ voxl-logger -h
      
      Tool to save data published through Modal Pipe Architecture to disk.
      By default, this saves images to /data/voxl-logger/ since the /data/ parition is
      the largest partition on VOXL. You can change this with the -d argument.
      
      -c, --cam {name}            name of a camera to log, e.g. tracking
      -d, --directory {dir}       name of the directory to save the log to, default
                                    is /data/voxl-logger/ if argument is not provided.
      -i, --imu {name}            name of an imu to log, e.g. imu1.
      -k, --skip {n_to_skip}      number of samples to skip between logged samples
      -h, --help                  print this help message
      -n, --note {note}           optionally add a very short note to the end of the log
                                    directory name, e.g. flight_with_new_motors
      -o, --preset_odometry       record a preset log containing qvio, tracking cam and both
                                    IMUs for testing VIO. This can be used with other pipes.
      -s, --samples {samples}     maximum samples to save for one specific channel,
                                    otherwise it will run untill you quit the program.
      -t, --time {seconds}        time to log for in seconds.
      -v, --vio {name}            name of a vio pipe to log, e.g. qvio
      -z, --debug                 enable verbose debug mode
      
      typical uses:
        To log one camera image:
          yocto:/# voxl-logger --cam tracking --samples 1 
      
        To log 5000 imu samples:
          yocto:/# voxl-logger -i imu1 -s 5000 --note "primary imu test"
      
        To log 1000 imu0 samples and 2000 imu1 samples:
          yocto:/# voxl-logger -i imu0 -s 1000 -i imu1 -s 2000
      
        To log every 5th imu sample (skip 4) for 5.5 seconds:
          yocto:/# voxl-logger -i imu1 --skip 4 -t 5.5
      
        To log tracking camera and both imus until you press ctrl-c
          yocto:/# voxl-logger --preset_odometry
      
        To record a typical log for testing VIO (imu + tracking) for 1 minute
          yocto:/# voxl-logger --preset_odometry --time 60 --note "log for vio replay test 1"
      
      

      Here is the source code if you are curious, but it is installed by default as part of voxl-suite so you can use it out of the box. Note, we haven't used this tool in a while so if you find a bug/regression please let us know.

      https://gitlab.com/voxl-public/modal-pipe-architecture/voxl-mpa-tools/-/blob/master/tools/voxl-logger.cpp

      Best,
      James

      1 Reply Last reply
      0

      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

      With your input, this post could be even better 💗

      Register Login
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      ModalAI
      Categories Recent Tags ModalAI.com Docs
      © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups