Comments (12)
To process visual mesh and visual material, you can use Blender to do that and there are many tutorial on the internet for mesh simplification with Blender.
For the collision mesh of hand, we already take much effort on simplifying the meshes of shadow hand in this repo. From SAPIEN persepctive, it is better for us to first profile your simulation and figure our the simulation speeding and rendering speed respectively. After you get to know what is the bottleneck, you can better clean up the mesh for training.
By the way, speeding up simulation in general is a hard problem compared with training RL. It requires much expertise on modeling and coding. This is also the reason why we provide many well-modeled URDF in this repo.
from dex-urdf.
Based on your video, the motion is broken in an abnormal way. I have some guess for the cause.
- Self collision, which is the most common reason for your video. To test whether it is the case, you can try the following code after loading the robot to disable self collision detection and find out whether it helps:
robot_builder = loader.load_file_as_articulation_builder(urdf_path)
for link_builder in robot_builder.get_link_builders():
link_builder.set_collision_groups(1, 1, 17, 0)
robot = robot_builder.build(fix_root_link=True)
-
Gravity compensation. You can add it by
robot.set_qf(self.robot.compute_passive_force())
-
Using a smaller time step, for example, 1/240.
Please let me know what happens after you try these solutions.
from dex-urdf.
Hi @Charlie0257
First i would like to confirm with you whether you are training visual RL (the observation space is RGB or Point Cloud) or state RL (the observation space is simple state vector).
If you are training with visual RL, I think the training speed will be slower than the xarm6_allegro URDF in our dexart project due to the very complex visual mesh. For example, in your UR10 urdf
, the shoulder.obj
has more than 90k vertices, which is more complex than xarm.
Also even for state based training without rendering, the collision between object and shadow hand is also more complex than allegro hand due to more dof and more links. Thus the simulation-only speed is also slower.
from dex-urdf.
Thanks for your patient answers! @yzqin
I am training visual RL (the observation space is Point Cloud) with shadowhand_UR10e.urdf.
From the visual mesh view, 1) how can I reduce complex vertices? 2) How did you and your partners generate the lightweight xarm6_allegro_wrist_mounted_rotate.urdf in the first place?
From the Sapien Simulator view, is there a way to process mesh files or collisions to speed up training?
Thanks for your patient answers again!
from dex-urdf.
Thanks for your suggestions!
I will try to solve this problem :)
from dex-urdf.
Hi, @yzqin
When I use [shadow_hand_right.urdf](https://github.com/dexsuite/dex-urdf/blob/main/robots/hands/shadow_hand/shadow_hand_right.urdf) in Sapine? How can I make it behave more naturally? In the appended video, the thumb of shadowhand keeps spinning and the arm keeps shaking :(
As far as I know, joint.set_drive_property
improves shadowhand's performance. Is there anything else that can be done to make shadowhand behave more naturally?
Thanks for any suggestions!
shadowhand_control.mp4
from dex-urdf.
Hi, @yzqin
Thanks for your suggestions!
-
For the first suggestion, it does not work for me :( The thumb of shadowhand still keeps spinning...
-
For the second suggestion, my original code is
self.robot.set_qf(self.robot.compute_passive_force(external=False, coriolis_and_centrifugal=False))
. But when I replaced it as you suggested, the spinning issue seemed to have been solved! The appended video shows the result after revision. -
For the third suggestion, I apologize that I don't know where to set the time step. Can you provide instructions with a little more detail?
-
By the way, I set
robot_arm_control_params = np.array([100000, 5000, 500])
andfinger_control_params = np.array([100000, 100000, 10])
for**joint.set_drive_property**
in the video. To be honest, it is tough to set. Is there any trick or detailed documentary?
Thanks for your help again!
shadowhand_sef_qf.mp4
from dex-urdf.
Hi @Charlie0257
Are you using the random action in this video. The motion still looks not so smooth to me but I am not so sure weather is it just because the delta position provided is very large.
Also since you mentioned that you are using the following code before but it does not works:
self.robot.set_qf(self.robot.compute_passive_force(external=False, coriolis_and_centrifugal=False))
You can try to set either external
or coriolis_and_centrifugal
to be True and figure out which option is more important to you. I think this experiment can provided us more information about what happened underlying the robot.
For the timestep, you can set it by
scene. set_timestep(1/240)
For the control params, I feel that the params are little bit large to me. Maybe you can use a smaller value for both damping, stiffness and force limit, which are the three params in the set_drive_property
from dex-urdf.
@yzqin, thanks for these suggestions!
-
The video is generated by running random_action.py. Now I am testing the performance generated from RL.
-
Actually, the time step in my code is set to
self.scene.set_timestep(0.004)
I will try smaller control parameters to acquire more stable performance.
Thanks for your help again! :)
from dex-urdf.
Hi, @yzqin
I'm sorry to bother you again.
- When I interact with the valve using shadowhand as the agent, as shown in the video, there is mold penetration.
- When rendering with sapien, how do I convert the view to the collision model? (My sapien version is 2.2.1)
- What do the blue and green colors in the following collision visualization image mean?
Thanks for any help! And there are the penetration video and collision visualization
https://github.com/dexsuite/dex-urdf/assets/53024517/ecd4b11f-9b97-4546-be20-537723e0118a
from dex-urdf.
- Make sure that the collision between valve and shadow hand is not disabled. Check your URDF loading code and if there is something related to "xx_collision_group", pay attention to these codes. It may disable normal collision detection.
- To render collision, you can turn on the show collision in the viewer articulation window, there is a
Show
and aHide
button to show that. - Green means the particular collision shape is a convex mesh file while blue means primitive collision, e.g. box, cylinder, sphere.
from dex-urdf.
Thanks for your suggestions!
I will check the URDF loading code carefully :)
from dex-urdf.
Related Issues (9)
- Could you provide the UR10e assets corresponding to Sapien? HOT 4
- Can you provide left shadow-hand robot files please. HOT 1
- How to attach hand on robot arm HOT 1
- Which version of sapien is used? HOT 1
- About inspire hand support HOT 1
- Request on updateing the support for the second-generation inspire hand HOT 3
- troublesome leap_hand_left.urdf HOT 2
- No Collision in Sapien HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dex-urdf.