Camera Coordinate Frame
相机坐标系CommonA 3D coordinate frame centered on the camera's optical center, with the z axis along the optical axis, used to locate objects relative to the camera.
The camera coordinate frame has its origin at the camera's optical center; by computer vision convention, the z axis points forward along the optical axis, x points to the image's right, and y points down. Point clouds back-projected from a depth map, and tag poses solved by PnP, are both initially expressed in this frame, and must be multiplied by the camera's extrinsics (the camera-to-base or camera-to-world transform) before they can be used in a robot arm's base frame. A common pitfall is mismatched conventions: ROS's REP 103 defines a robot's body frame as x-forward, y-left, z-up, while a camera's ‘optical frame’ (named with an _optical suffix) is z-forward, x-right, y-down — the two differ by a fixed rotation. Graphics libraries like OpenGL use yet another convention, with the camera frame's z pointing backward and y pointing up. Mixing these up scrambles a point cloud's orientation entirely.
ExampleRealSense's ROS driver publishes both camera_link (x-forward) and a frame with an _optical suffix. A point cloud message's frame_id is the latter, so treating it as x-forward directly will get the orientation wrong.
- Also called
- Camera Frame, Camera Optical Frame
- Related
- Coordinate Frame · Camera Extrinsics · Projection / Back-Projection · Right-Handed Frame & Axis Conventions · TF / tf2 Transform Tree · Pinhole Camera Model
- Sources
- ROS REP 103: Standard Units of Measure and Coordinate Conventions
MATLAB: What Is Camera Calibration?