-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request of the guidance of the proper XML simulation setting for NIST gear meshing #19
Comments
Have you checked Note 2 here in this section of our readme https://github.com/yunshengtian/Assemble-Them-All?tab=readme-ov-file#4-install-assembly-datasets? You'll need to make sure the mesh resolution is enough for such complex geometries with local rich geometry features, i.e., have dense vertices for accurate contact handling. |
In this case, I think you would need to 1) set a small collision detection threshold and/or 2) consider increasing SDF grid resolution. For 1), you can try changing "col_th" in your XML to 0. For 2), you can try reducing "dx" in your XML. I suggest trying 1) first. If it does not work, try 2). |
@yunshengtian, the problem has now been solved. After an extensive range of tries, the cause has been pinpointed which is the improper design of 3d models for the assembly. Specifically, the gears in the assembled state have overlap with each other on their respective teeth, which incurs the failure of simulation initially. And the simulator is not capable of telling us whether such overlap/mesh penetration happens initially. So after I corrected the 3d model design for the assembly, the simulation now runs properly, even with your default parameters. |
The reason why I reopen this issue is that I found another cause that hinders the incidental motion of the gear(s) involved in the animation. That is, when the Assemble-Them-All/examples/run_joint_plan.py Line 585 in 29db7df
path is not set as None, the incidental motion won't take place in the animation. So I need to set path as None when calling this method. Could you tell me why, @yunshengtian?
|
Good to hear the issue was resolved that way. The penetration allowance needs to be determined by the user since it's pretty different for different CAD assemblies, though there are APIs of simulation that can tell you the amount of penetration. Regarding this new issue, what's the animation that you get if you don't set path as None? Since the path only stores the successful disassembly motion, which is probably not the rotating motion you showed here. If you set the path as None, it will just play all the trial motions (not necessarily disassembly motions) during the physics-based planning. |
Hi, @yunshengtian. First thank you for your great share on the assembly plan.
I am now using your implementation for the assembly plan on the example of gear meshing in the NIST challenge (https://www.nist.gov/el/intelligent-systems-division-73500/robotic-grasping-and-manipulation-assembly/assembly). In this specific example, I want to generate the disassembly plan for the gears under the simultaneous effect of both translational force and torque (in the same direction). The gear assembly looks as below.
However, when I changed the XML simulation settings correspondingly to make the disassembly process work based on your defined physics model, weird things happen. As you can see in the gifs below, (the 1st gif) the medium-sized and small-sized gears don't revolute around their respective axis, or at least move in a physically expected way. Instead, they keep still with severe mesh penetration between the large and medium gears. Similarly, (the 2nd gif) the small-sized gear moves in an anomaly way along with severe mesh penetration.
And here are the corresponding XML strings for both gifs.
For the 1st gif, 'part2' refers to the large gear, 'part0' the small one, 'part1' the medium one, and 'part3' the base holding the gears.
For the 2nd gif, 'part1' refers to the medium one, 'part0' the small one, and 'part3' the base holding the gears.
Many thanks for any kindly helpful support!
The text was updated successfully, but these errors were encountered: