Comments (4)
Your approach sounds right. However, I suggest using PlasticineLab directly. Compared to PlasticineLab, ManiSkill features articulation (instead of rigid actor), dynamic control (instead of fixed or kinematic trajectory), and 2-way coupling (instead of using rigid body as boundary condition only). I also find 1-way coupling a really bad idea for our dynamic simulation. For example, if a rigid body squishes a soft body without the soft body pushing back, the soft body can be completely flattened and it crashes the simulation easily. However, if you are using a prescribed trajectory, it is probably fine.
So for me, it sounds like Plasticine Lab suits your use case perfectly and ManiSkill will only give you additional overhead in learning the framework. If there is some reason you really cannot use PasticineLab, you can just modify the MPM base class and not apply the rigid body wrench to achieve 1-way coupling.
from maniskill.
Since we focus on realistic settings, we do not take free-floating actors into consideration when we design ManiSkill2. It is tricky to support sapien.Actor
rather than sapien.Articulation
, since most designs in BaseAgent
and BaseController
are based on sapien.Articulation
.
The easiest way I have come up with is to wrap your actor in a URDF as pybullet does. And then you can use the ManiSkill2 framework seamlessly. But could you provide more details or any reference implementation in other frameworks? For example, whether it should be controlled by force and torque, or by target velocity/position.
If you build an environment with SAPIEN from scratch instead of using the ManiSkill2 framework, then you can just control actor
by actor.add_force_torque
in env.step
. Some examples of building RL envs from scratch can be found at here
from maniskill.
Thanks @Jiayuan-Gu for the reply, that is super helpful!
As you said, I can build the environment with SAPIEN. At the same time, I also like to simulate deformable dough. So I think I will need to do the coupling myself, that the actor in SAPIEN will add boundary condition to the dough in WARP simulator. (I don't care about the coupling from dough back to the actor, my use case is more similar to PlasticineLab, that I can suppose the rolling pin just follows the prescribed trajectory).
Specifically it looks to me that I will copy MPMBaseEnv
class, but modify the step_action
function, that I do not need to compute the wrench in this block
https://github.com/haosulab/ManiSkill2/blob/9885db8cf1df374277ca74a9d6234087ceb269f2/mani_skill2/envs/mpm/base_env.py#L604-L618
Does this sound right to you?
from maniskill.
Thanks @Jiayuan-Gu and @fbxiang for the help (and sorry for my belated reply).
I implemented both the one-way and two-way coupling in ManiSkill2. As you mentioned, the one-way coupling is dangerous. The dough might apply a large reaction force to resist the motion of the rolling pin on the actual robot, such that we cannot follow a prescribed trajectory.
Close this issue as it has been resolved.
from maniskill.
Related Issues (20)
- [Question/Bug] Size Mismatch for actor_mean Runtime Error HOT 2
- How to take pictures from different cameras? HOT 5
- Record trajectories ray-tracing HOT 7
- [Question] How to load in truly randomized YCB objects each time HOT 3
- Error with motion planning: ManiSkill must have unique names HOT 1
- How to get camera extrinsic and intrinsic parameter? HOT 2
- How to get all environment IDs of ReplicaCAD and AI2THOR? HOT 12
- [Question] Color randomization as in ManiSkillv2 HOT 8
- Cuda kernel init errors caused by massive number of objects being spawned at 0 during reconfiguration
- Regarding the visualization error issue and the parallelization problem in Maniskill3. HOT 2
- Articulation object - bug in get_net_contact_forces with multiple link names HOT 1
- set_qf doesn't appear to control the robot
- [Feature] Add a DAPG baseline HOT 4
- Segmentation fault (core dumped) HOT 4
- Can I scale a loaded actor without changing its shape? HOT 3
- [Bug] joint delta pos to joint pos control conversion has 0 success HOT 3
- Robot control in ArchitecTHOR_SceneManipulation-v1 HOT 4
- Old ManiSkill2 Vulkan Installation Page Broken HOT 1
- [Docs] Modify PPO, SAC, RLPD, and RFCL baselines to report the same metrics where possible for easy comparison
- [Feature] Add in vectorized TDMPC-2 Baseline
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 maniskill.