Of course I wanted to make use of Rift’s amazing head tracking and syncing the camera orientation with it. Using some static fisheye cameras to compute the right image for matching spot would have been neat. Such a solution would eliminate problems with quick head movement and latency. But omnistereo imaging is quite difficult for every possible head position. That’s why I decided to go for the mechanical solution: A camera gimbal.
Gimbals are now quite common in the drone scene for stabilizing cameras. Most of them use altered brushless motors, which are very fast, but not strong. One possible option would have been the DYS BLG3SN ($450). Likely it would have been a problem with the thick USB 3.0 cables of the cameras. It would have been nearly impossible to balance the brushless gimbal, which is necessary. Another possibility would have been using a servo gimbal, like the Tarot 3-Axis Gimbal ($600). All these gimbals are controlled with a proprietary microcontroller. It wasn’t clear to me whether there was an option to send commands to move the gimbal to a specific point, or with what frequency the commands could be emitted. The head orientation for the Oculus Rift can be gathered with 1000 Hertz. To minimize latency, the gimbal has to be updated as often as possible.
After careful deliberation, I decided to avoid all of these potential pitfalls and build the camera gimbal myself. The archetype for my own gimbal was the Fatshark Pan, Tilt & Roll System. As a servo I chose the Savöx SH-1290MG, because it is very fast (0.048 seconds for 60°) and strong (5kg/cm). In addition, the control command can be sent with 333 Hertz. Luckily the workshop at my university was able to build the gimbal and they ended up with the solution visible in the image shown here. It works quite well; only the pitch servo seems to be overloaded, as it is a bit stuttering. But with the Oculus Rift on, it wasn’t a big issue. More concerning is the missing image stabilization. While driving the video is annoyingly jerky.
The next article will cover the system of processsing and transmitting the command controls for the gimbal and the robot.
If you have any suggestions or questions, please use the comment form. I am always happy to learn something new.