Boot Bug Regarding Time Synchronization

Hi Everybody,

We have found a bug that can occur with our ROS nodes at bootup.

The raspberry pi has no-real time clock in it - so when you boot it defaults to a date 40 years in the past. This usually isn’t a problem because as soon as it gets access to a clock server its date synchronizes to the correct date and everything is fine. However it would seem that the node that publishes the transform between camera position and the robot’s base link position usually boots faster than we get a clock sync. There is a bug in this node (robot_state_publisher) that causes it to crash when the time jumps.

There is also another bug in fiducial_slam that when the tf is not published the system assumes a transform of unity.

This can result in the weird navigation results that some of you are seeing.

The good news is that we included a real time clock on the robot to make up for the fact that the raspberry pi doesn’t have one. We have also just released a work around in the boot sequence for the issues with boot. So the recommended actions are:

  1. Make sure the button battery is in place. You’ll note that there is a button battery holder on the back of the PCB. You need to put in a CR2032 battery and the real time clock will work.

  2. Type sudo apt update ; sudo apt upgrade To get the work around code.

A comprehensive diagnostic list will follow shortly.

Rohan
Ubiquity Robotics

Hi @rohbotics,

I placed the CR2032 battery in and the time on the Rasperri Pi is till dated back to 2001…,

please let me know what I need to do to make the time right,

thanks

You need to connect the Pi to the internet at least once for it to get a time synchronization.

To manually set the time you can use the info here, be sure to use sudo for the time setting command: https://unix.stackexchange.com/questions/151547/linux-set-date-through-command-line

Rohan