Repository navigation
Add OneRobotics A1 robot arm - #7022
uniquemelody wants to merge 13 commits into
Conversation
Co-authored-by: Olivier Michel <Olivier.Michel@cyberbotics.com>
omichel
left a comment
There was a problem hiding this comment.
Thank you for this contribution.
However, this robot model doesn't meet the quality requirements to be included in the official Webots repository. You may want to include it as is in the community repository or modify this model as follows:
- The meshes contain many parts which are not visible (inner parts of the links). You should delete these part to reduce the number of triangles.
- A consequence of reducing the number of triangles will be that shadows will be cast for every link of the robot (which is not the case right now), in addition to other benefits (loads faster, reduce download time, etc.)
- The meshes are not smoothed. We can see many small faces on them. You should convert them to .obj files (instead of .stl) and add normals so that faces are smooth.
- The appearance of the robot should rely on a existing PBR material proto, such as Plastic (or another one if you believe it is best suited).
All the mesh work could be done manually with Blender: deleting non-visible inner parts, generating normals where it makes sense and converting to .obj format.
|
Thank you for the review, @omichel. I pushed 6c52f7d addressing the four points: removed occluded interior faces and reduced visual triangles by 63.3%, converted the eight visual STLs to smooth-shaded OBJ meshes with UVs, enabled shadows on every link, and switched the materials to the existing Plastic PROTO. I also corrected the sample-world viewpoint and updated the model documentation/PR description to identify these meshes as derivatives. The applicable source checks and an R2025a runtime smoke test pass. Could you please take another look when convenient? |
|
Doc filename breaks convention. protos/docs/OneRoboticsA1.md should be oneroboticsa1.md — all 90 existing PROTO doc pages in the repo are lowercase (TurtleBot3Burger.proto → turtlebot3burger.md, Irb4600-40.proto → irb4600-40.md; 0 of 90 contain an uppercase letter). This likely breaks the documentation url lookup declared in the PROTO header. |
|
Unused DEFs: BASE_APPEARANCE and WHITE_APPEARANCE are never USEd (only LINK_APPEARANCE is), likewise DEF JOINT*_A1_R / DEF LINK*. |
|
@omichel Thank you for the close-up screenshots. You were right: the previous camera-sampled deletion of individual faces created visible holes. I have replaced all eight meshes in c958e9c using the pinned source STLs, topology-checked simplification of complete parts, and solid unions for overlapping closed parts; the per-face deletion has been removed. I checked the base from the front and underside and the flange from the front and end in Webots, with no visible slits or missing surfaces. The meshes now have 82,450 triangles (42.6% below source); the largest is 18,857, and Webots reports no shadow/mesh warnings. I also renamed the documentation page to oneroboticsa1.md and removed the unused DEFs. The PR description now records the corrected method and validation. Please let me know if you still see a particular internal region that should be removed. |
omichel
left a comment
There was a problem hiding this comment.
Thank you for the fixes.
The missing triangles are now back which is fine.
The doc file name and unused DEF are fixed.
However, there are still too many non-visible triangles in the inner parts of the robot that we should delete to make the model lighter.
I recommend using Blender (or similar 3D editing software) to edit the obj files.
|
Updated the branch onto the current |
|
Implemented the requested mesh cleanup and pushed it to
Could you please re-check the meshes in Blender/Webots and let me know if any additional hidden geometry should be removed? |
|
There are still many inner triangles that should be removed. |



Description
Adds a self-contained Webots model of the OneRobotics A1 independent seven-joint right arm, including motors and position sensors, physical properties, simplified box collisions, an end-effector slot, a Python motion demo, a sample world, documentation and an icon.
The assets derive from OneRobotics' published
a1_r.urdfand STL files at source commitecf530911284ba0e559f7a24dc222fd8e60d31ed. Robot assets are © 2026 OneRobotics, CC BY 4.0. Source STL hashes and modification attribution remain in the OBJ headers. Link1 derives from omichel's simplified mesh supplied for this PR on September 28.Mesh update —
0bbc181cThe eight visual OBJ meshes now total 3,196,692 bytes / 33,882 triangles, compared with 9,483,046 bytes / 57,904 triangles at
a24de471: 66.29% fewer bytes and 41.49% fewer triangles. The requested approximately tenfold file-size reduction remains outstanding.PlasticPBR appearance and cast shadows. Final index compaction saves 67,510 bytes while preserving numeric tokens and ordered face corners.Validation
PP_RVC_FLAGS=1000) and Blender comparisons confirm exact float32 position/normal/UV bits at ordered face corners before and after the final index compaction, including signed zeros.Documentation
OneRobotics A1 model documentation
Screenshot
Known limitations
This independent-arm revision has no gripper. Collision boxes approximate the visual geometry. Link7 mass and inertia retain the source's placeholder values.