Skip to content

Camera Mount System

Najman Husaini edited this page Jan 26, 2025 · 2 revisions

This webpage is a living document that currently tracks features that the Software team believes are either necessary or good to have in a camera mounting system. The coordinate system we use is right-handed, where x is right, y is up, and z is backwards. All euler angles are of YXZ intrinsic rotation order.

The minimum number of mounts and camera boxes needed is 6 each, but any number more than that is welcome. Two of those camera boxes/fixtures should be for the RealSense D455 cameras.

Necessary

  1. There should be two components, the camera box and the mount connecting the box to the chassis. This allows us to reuse the same mount across cameras of differing sizes. It should be possible to open a box non-destructively, but it does not need to be easy. It must be easy to swap out camera boxes on a mount. Most color cameras are of the same dimensions, however there should also be a camera box/fixture for the RealSense D455 cameras.
  2. The camera box has to be well aligned and rigidly attached to the mount. The current solution of gluing a camera to a flat mount is rigid, however, the camera may not be laying flat on the mount, resulting in several degrees of offset. It is fine if there has to be an offset of some kind, but it has to be measurable and ideally only in one axis.
  3. It should be easy to move a camera mount around on the chassis to test different positions.
  4. It should be possible to attach a camera box at an angle to the mount. It is fine if this requires different types of mounts. The bare minimum would be allowing a camera box to be attached exactly ±45° on the y-axis relative to the mount, assuming that 0° is perpendicular to the beam that the mount is attached to.
  5. The camera mount should be well aligned and rigidly attached to the chassis.
  6. The color cameras are allowed to have obstructions, but that does negatively affect performance. Obstructions in front of the RealSense Camera can eliminate the robot's ability to path-find at any capacity. Ideally, the obstructions must be fixed relative to the RealSense, allowing it to be filtered out. If needed, it is possible to allow for moving obstructions if the position and shape of the obstruction is well defined.
  7. The robot should have no blind spots, and there should be some amount of overlap between camera angles. This is easily achievable by placing the cameras with a live video feed.
  8. The RealSense cameras should have a good view of the space in front of the robot and as close as possible to the wheels without observing them. The exact dimensions of this visibility cone is yet to be determined.

Good to have

  1. A camera mount could have an adjustable angle on either the y-axis or the x-axis. The maximum range needed on the y-axis is ±90° whilst on the x-axis it would be ±45° (but ±30° would be fine too). Angle increments are fine. The main requirement would just be that the angles are easy to measure. Do note that upward-facing camera angles will probably not be used, so camera mounts can prioritize downward flexibility.
  2. It would be good if the camera mounts could be detached from the chassis without unscrewing.
  3. It would also be good if the camera box could be detached from the mount without unscrewing.
  4. We are strongly suggesting that we attach cameras to the bucket to help with manual control. A RealSense camera on the bucket could be very beneficial to autonomy, so long as the RealSense does not jostle relative to the bucket. It is also fine if most of the view of the RealSense is just the bucket, as that camera can be used to measure the fill level of the bucket. There may be a minimum distance needed between the RealSense and the surface of the regolith in the bucket during normal usage. We will determine that soon.

Notes

Vibration

Vibrations severely affect the ability for any cameras to identify apriltags and should be minimized. The amount of tolerable vibrations has yet to be measured.

Clone this wiki locally