We are a services and software company with an immersive studio product that leverages GPS coordinates and pose heading data to automate the creation of virtual tours, significantly enhancing user experience and efficiency. To fully integrate this camera into our workflow and provide the best possible experience for our users, we require the ability for the camera to capture pose heading/image direction data along with GPS coordinates. I am writing to inquire if there are any upcoming firmware releases for the GoPro Max 360 that might include the capability to capture pose heading/image direction data. This feature would greatly benefit our users by allowing seamless integration with our virtual tour creation software, thereby improving the overall user experience. Thanks!
The RICOH THETA cameras capture images with Pose. See this:
exiftool -v R0010255.JPG |grep Pose
| PoseHeadingDegrees = 309.7
| PosePitchDegrees = 0.0
| PoseRollDegrees = 0.0
Are you using only still images or are you using a live stream as well?
Pose heading degrees is not being captured on Ricoh X. It captures GPS coordinates, pitch, roll, etc. But we do not see pose heading on our images captured with the Theta X. We shot our images without connecting to the app and only using the camera with wifi and GPS turned on.
This is the expected metadata from the RICOH THETA X using the internal GPS. No mobile app, just the camera.
This data will not appear if the camera needs compass callibration.
Follow these steps
- upgrade to the newest firmware of the camera
- review this article for compass callibration
Your camera is running firmware 1.20
The newest firmware for the X is 2.51.0, released 2024.06.04.
Likely, your internal compass needs to callibrated with the figure 8 movement in the video.
Please post again if you have any problems.
Test Environment
- Exiftool version - 12.92
- Ricoh THETA X firmware version - 2.50.2
- Mac OS version - Ventura 13.6.7
- Condition of camera - bluetooth and wifi disabled
- ImageCapture app to transfer photos
Additional Testing
I conducted additional testing on the internal compass of the Ricoh THETA X to try to retrieve the PoseHeadingDegrees. Here are the steps and challenges I ultimately ran into to get the data.
-
Ensure that the compass is callibrated. there should be no error icon on the camera screen
-
Capture a picture and transfer it to your computer. I’m using a Mac and found that the Pose information only appeared if I transferred the picture using the ImageCapture app. The Photos app on the Mac seems to strip out the GPS data.
-
Download and install the ExifTool version 12.92 which is used to read metadata from the files. If using a Mac, you may have to bypass the security notification during installation.
-
In the location of your downloaded photos, the command
exiftool -v R0010255.JPG |grep Pose
should display the Pose data now. -
To test if the Pose data updates, we took 360 pictures while rotating the camera around a pivot. Below, are the values for PoseHeadingDegrees, PosePitchDegrees, and PoseRollDegrees from the image data which update as the position of the camera changes.
Other Problems
- The Mac photos app and Ricoh File transfer app doesn’t work for retrieving the file for the camera. Instead, use the Image Capture app if on a Mac.
@caitlyn thanks for doing the tests.
It’s common for people evaluating the camera or building software for the camera to assume that the camera does not write PoseHeadingDegrees
. This is a fairly big problem as the PoseHeadingDegrees
is required for display of images on Google Maps and many other mapping systems.
The requirements are shown in the document below.
Photo Sphere XMP Metadata | Street View | Google for Developers
Unfortunately, if the camera fails to write the PoseHeadingDegrees
data, there does not seem to be an obvious error message.
In the state command, there is an error code for ELECTRONIC_COMPASS_CALIBRATION and the screen on the body of the camera does show a warning icon. However, it’s not obvious that PoseHeadingDegrees
write failed.
@TillerXR were you able to get the PoseHeadingDegrees? Or, are you still having problems?
- upgrade camera to latest firmware (newest version shows error icon if compass needs calibration)
- calibrate compass with figure 8 motion (if needed)
If the compass needs to be calibrated, the PoseHeadingDegrees will not appear in the JPEG metadata.
In newer firmware, you will see this when the camera needs to be calibrated.
Thanks for your article! That’s great! I’ve been looking for a THETA X solution for angles lately;
Because we plan to develop a roaming system, based on the panoramic GPS and unified direction can realize the generation of street view roaming; So we see this possibility in THETA X, and x is unique.
this document may be of use to your project.
- please upgrade the firmware of the THETA X prior to testing
- if you are using still images, there are different settings for the camera. The main one is single shot versus interval shooting.
- If you’re using video, the GPS information per frame is in a separate camm data track. see the above document
I confirmed that the Z1 and X have GPS information in the interval shot still images.
Please post again if you have questions.
We will be doing some additional test for this using your directions in the coming weeks. Do you know if the Z1 captures pose heading and GPS data similar to the Theta X?
I believe the field and behavior are the same. I will ask someone at RICOH.
The data on PoseHeadingDegrees looks the same to me on Z1 and X.
Using Image Capture app on Mac to transfer file over from Z1
Z1
exiftool -v R0010333.JPG|grep Pose
| PoseHeadingDegrees = 6.0
| PosePitchDegrees = 0.0
| PoseRollDegrees = 0.0
picture number 2
exiftool -v R0010362.JPG|grep Pose
| PoseHeadingDegrees = 74.4
| PosePitchDegrees = 0.0
| PoseRollDegrees = 0.0
The images are likely compliant with this specification
https://developers.google.com/streetview/spherical-metadata
As long as the internal compass is calibrated, you should be able to get the PoseHeadingDegrees in both images.
Great! Does the Z1 have built in GPS like the ThetaX? Will it capture GPS data without being connected to the Theta app like the ThetaX?
The Z1 does not have built-in GPS. You must use an external GPS, usually a mobile phone like an iPhone or an Android. The mobile phone app then sends the GPS data to the camera using an API and writes the GPS information to the metadata of the image.
In practice, the GPS data will look the same in the metadata.
You can test this behavior easily by using the official RICOH THETA mobile app. You can get the app here:
https://www.ricoh360.com/apps/
If you want to build this capability into your own mobile app, the API is here:
https://github.com/ricohapi/theta-api-specs/blob/main/theta-web-api-v2.1/options/gps_info.md
Here are some ideas for evaluation:
- use the official RICOH THETA mobile app to test camera capability and update firmware to latest versions
- assess image from RICOH THETA with tools such as exiftool to verify that it meets technical requirements
- if there are problems, contact RICOH or post in forum
- if the camera and image meet your requirements in a manual workflow, then assess the API to verify that the camera can be integrated into a smooth and scalable workflow with your software
- assess software components needed to build a scalable workflow
example software components
- 360 image viewer
- transfer 360 images from camera to local mobile phone storage
- upload image to cloud storage with ID to link to additional information in cloud database (possibly description of where images were taken)
- process image for things like metadata camera orientation, GPS, compass
- UI to display images in your cloud-based software
Data should comply to IFD Exif metadata format
I did a brief test of the X and the PoseHeadingDegrees
appears to be in the metadata even when the GPS is disabled.
I corrected the earlier article by caitlyn.
wow, I’m trying to turn on the GPS on the THETA X now and it is taking quite a long time.
After three minutes of waiting, still no lock
I’m indoors, but within 3 meters of a window. I’m not connected to client mode. After 4:30 minutes, still no lock. moving outside.
Wow, lock took 4:52 minutes. That’s a long time.
Finally got the lock.
GPS info is in the image.
and has PoseHeadingDegrees
| PoseHeadingDegrees = 236.5
| PosePitchDegrees = 0.0
| PoseRollDegrees = 0.0
second test with GPS disabled
verifying that GPS is disabled
exiftool -v gps-off.jpg |grep GPS
craig@craigs-air RICOH THETA X %
However, the PoseHeadingDegrees is enabled.
| PoseHeadingDegrees = 236.5
| PosePitchDegrees = 0.0
| PoseRollDegrees = 0.0
conclusion
PoseHeadingDegrees is shown even when GPS is enabled. Previous tests revealed that when the compass needs callibration, the PoseHeadingDegrees is missing.