Copy from my post in the Facebook group
(10) Ricoh THETA 360° Camera User Group | # Theta X for mapping | Facebook
[updated 2023-09-06]
I would like to draw attention to this subject and offer some thoughts that may help to improve position accuracy. I have addressed image quality before. Disclaimer: I am not a GNSS specialist, an informed user only.
Mapping with 360 imagery, Google Street View and Mapillary that is, aids: e.g., map creation; digital twin creation; travel destination promotion; city and infrastructure planning; disaster recovery; access, value, risk, damage assessment. It can be regarded as part of the Architecture, Engineering and Construction field of profession, as well as marketing, insurance, rescue services. Position precision and image quality are both key in this. Contrary to what Ricoh states in its blog Reach the full potential of RICOH THETA X with built-in GPS l RICOH360 Blog, position accuracy should be of navigation quality, which is not within reach of the current GNSS module.
First off, I think for this mapping use case we would better have a dedicated plug-in to experiment and develop proper dedicated functionality without overloading the general settings with options. Professor Taichi Furuhashi suggests the same in Ricoh360 blog The Potential of RICOH THETA X Built-in GPS Function - Interview with Professor Furuhashi, Aoyama Gakuin University l RICOH360 Blog.
Currently, the most convenient way to capture for mapping are the 8K 2 and 10 fps video modes, which includes the Google defined Camera Motion Metadata, CaMM track in the video file; Camera Motion Metadata Spec | Street View Publish API | Google for Developers. Theta X writes the case 2, 3 and 5 type data packets. I think it may be useful to write a case 6 type GPS information data packet instead of the case 5 type and add a case 7 type with the compass data.
In the blogs Ricoh expresses ‘The ability to acquire location information at short intervals during low frame rate video is one of the THETA X abilities that we hope will be utilized by construction and other industries.’. I think it is too much of an expectation that 3rd parties and users will each write code to extract video frames and calculate proper position for each from the CaMM. Dean Zwikel’s toolset helps in this. He can be contacted through Facebook Messenger.
Inspection of the Theta X CaMM track has shown that relative within the file, the first position data is timed about 0.8 seconds after the first video frame. As far as I know, video frame track and position data track are best be synchronized in time, which doesn’t seem to be the case here. Video frames in time before the first position data package will have to be dropped in the processing.
Theta X uses 1 Hz frequency only in the GNSS module to acquire position. However, it offers video frame rates of 2 and 10 fps.
Google guidelines for capturing are as follows.
-
Under 5 mph or 8 km/h for 1 FPS; walking.
-
Under 30 mph or 45 km/h for 5 FPS; bicycle, light motorcycle.
-
Under 45 mph or 70 km/h for 7 FPS; car, motorcycle.
Walking 2 fps, say I take 1 step of 1 meter each second, then we have a GNSS position for every meter covered and every other frame.
80 km/h 10 fps = 22 meters/sec 10 fps, then we have a GNSS position for every 22 meters and for 1 out of the 10 frames only. I think that in curves or with quick speed changes this leads to a position deviation that can be resolved by setting the GNSS module to a higher position acquisition frequency. That requires switching the GNSS module from the low power Super-E mode to the regular Continuous mode. The Continuous mode consumes more power, but I consider that no longer of the essence now that we can power the Theta with a powerbank.
ZOE-M8B_ProductSummary_(UBX-17012173).pdf (u-blox.com)
ZOE-M8B (u-blox.com)
The GNSS module needs to retain locks on the moving satellites while moving itself. The camera is not just moving forward, but swaying as well, depending on the transport mode. The GNSS module has settings to take this into account for performance and accuracy. Relevant settings are Pedestrian, Automotive, Bike. Refer paragraph 8.1 Platform settings and paragraph 32.10.19.1 Navigation engine settings in u-blox8-M8_ReceiverDescrProtSpec_UBX-13003221.pdf.
So, the user interface needed would have the following modes, avoiding separate settings.
-
pedestrian: video 8K 2fps, GNSS platform set to Pedestrian, Continuous mode (refer below on Galileo) 1 Hz refresh.
-
bicycle, light motorcycle: 8K 5fps, GNSS platform set to Bike, Continuous mode 3 Hz refresh.
-
motorcycle: 8K 10fps, GNSS platform set to Bike, Continuous mode 5 Hz.
-
car: 8K 10fps, GNSS platform set to Automotive, Continuous mode 5 Hz.
The frequencies are my educated guess, but I gladly leave that to the specialist to determine.
Last, but not least, the number of GNSS’ used simultaneously. It should be noted that now both BeiDou and Galileo are fully operational and generally deliver a higher precision than GPS and GLONASS. General rule of thumb is, that the more GNSS’ are used simultaneously, the better the positioning and less risk of having insufficient clear line of sight satellite locks. This is important especially in nature or city canyons. A test posted earlier by Sam Rohn in New York demonstrates serious position issues with current settings. The GNSS module is likely running in a manufacturer default mode with Super-E power saving and GPS, GLONASS only, while it can use 3 GNSS’ simultaneously. As power consumption while using a power bank is no longer an issue, I suggest improving by using Continuous mode and 3 of the GNSS’ always. Which 3 can automatically be determined by where on Earth the capture is and which 3 GNSS’ are most effective there, taking into account availability of support systems like SBAS too. I would definitely appreciate the use of Galileo.
That is it for now and I hope this helps to improve Theta X’s effectiveness and usability.