Repository navigation
Render the head camera with the real K1 intrinsics - #17
Merged
Merged
Conversation
The real K1 head camera ("Left Camera") is 544x448, rectilinear, with a
normalised focal length of 0.3725: 106.6 deg horizontal, 95.7 deg vertical and
120.2 deg diagonal field of view. NUSim rendered 640x480 at fovy 70 (about
86 deg horizontal), so the robot saw a narrower, differently framed image than
on hardware, which biases anything validated through the vision chain (ball
detection range, how long a ball stays in view). Set the MJCF camera's fovy to
95.7 and the render size to 544x448; the camera now reports focal_length_norm
0.3727 and a 120.2 deg diagonal.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DyRrq9GsES4TwVCpGM4rLF
Collaborator
|
The resolution is worth correcting, although it is worth noting that the intrinsics is gonna be slightly different across the k1s. Most of the variance would most likely live in how good of an estimate we have of the distortion and optical centre offsets of the camera due to manufacturing imperfections so it will still be different from robot to robot. |
Collaborator
|
didnt notice the conflict, apologies lol Ill reapprove after then |
Conflicts: - docs/K1_MUJOCO_SETUP.md: the camera "Config:" paragraph. Main reworded it to say rendering is offscreen via EGL on Linux or CGL on macOS (native macOS support). This branch changed the logged resolution from 640 x 480 to 544 x 448. Kept main's new wording and applied the 544 x 448 resolution to it. K1_22dof.xml (main: dark limb colours; branch: head camera fovy 95.7) and README.md auto-merged cleanly with both changes present. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VEGnPqynL7mkSCLuvyBvuh
jpptm
approved these changes
Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The real K1 head camera ("Left Camera") is 544x448, rectilinear, with a normalised focal length of 0.3725: 106.6 deg horizontal, 95.7 deg vertical and 120.2 deg diagonal field of view. NUSim rendered 640x480 at fovy 70 (about 86 deg horizontal), so the robot saw a narrower, differently framed image than on hardware, which biases anything validated through the vision chain (ball detection range, how long a ball stays in view). Set the MJCF camera's fovy to 95.7 and the render size to 544x448; the camera now reports focal_length_norm 0.3727 and a 120.2 deg diagonal.
I measured all of the above on the real K1, and it happened to match pretty much exactly the intrinsics Booster shipped it with.