Comments (7)
I am working on a (mostly functional at this point) URDF loader for nphysics. I am currently trying to get permission from my advisor to release it as open source, so it may not be available for a few months.
from nphysics.
@cmuell89 Looks like the README is slightly out of date. I don't think we need any more joints. Though it is true that not all our joints support motors and limits yet.
I agree with @Ralith that it would make sense to put this on a separate crate. Though this separate crate could be located on the same github repository as nphysics itself if we want to make its maintenance easier (to always keep it in sync with the latest nphysics version).
We can close this for now if you'd like, and perhaps I or someone can reopen if a good approach is implemented as an available add-on package/crate.
Let's keep this open so it is clearly visible in case someone else wants to try implementing this, unless you manage to do it yourself. Feel free to ask here on on the rustsim discord if you have difficulties working on this!
from nphysics.
Hi!
There is no support for any file format in nphysics yet. And adding these would be a great contribution!
Regarding missing features, what types of joint types are missing exactly? I believe nphysics supports most types of joints with most combinations of degrees of freedoms. Perhaps there are some robotics-specific joints I am not aware about?
What are you referring to with "sensor types"? nphysics has a concept of sensors for collision detection without any effect on the simulation state, but I guess that's not what you call sensors?
Would it be possible for you to give a more detailed list of the missing feature to cover what URDF needs?
from nphysics.
I was referring to the fact that the README mentions some limitations due to the age of the library: "more joints, joint limits, joint motors and breakable joints". My comment was really the opening for a discussion about whether asset files like URDF etc,. are supported. W.r.t. robotics, this would make the use of this physics library much more desirable, but might also be suitable for other applications utilizing other asset files.
What is your opinion of adding additional dependencies?
https://github.com/OTL/urdf-rs
from nphysics.
Is there any reason these need to be baked in, rather than maintained as an independent crate? It'd be nice not to increase the build/maintenance load for all the users who aren't doing robotics research.
from nphysics.
There is no particular reason. Certain physics libraries will offer support for the loading of model files and URDF is a common format for certain applications. Maintaining a separate crate seems like an appropriate choice. I am not very familiar with Rust and so I'll have to evaluate my ability to contribute. We can close this for now if you'd like, and perhaps I or someone can reopen if a good approach is implemented as an available add-on package/crate.
from nphysics.
As an update, the loader I have works and I'm pretty happy with it and I should hopefully have it released as OSS by the end of October. A few notes, though:
- I do not have Xacro or ROS package support and I have zero desire to add any ROS to the loader. However, it does handle the
file://
scheme and it does have a way for the user to add their own collision mesh loading. - I have found that most URDFs are totally unusable inside of nphysics without some kind of collision filter. Many of the robot models are designed with assumptions about self-collisions (or lack thereof). Assuming #278 is merged, I have a few filters included in the loader that will probably solve collision issues for the majority of robots with user-defined filters filling in the gaps.
- Some simulators (i.e., Gazebo) merge groups of fixed links. I'm sure there is some performance benefits for this, so I may include it as a loading option, but my loader currently doesn't do this. Mostly because it can be annoying when you're trying to find the position of a link that has been merged away.
from nphysics.
Related Issues (20)
- v0.13 doesn't build with wasm_bindgen HOT 3
- Testbed `look_at()` method doesn't seem to center the camera at the location given HOT 3
- Very slow on macos HOT 3
- Panic "Invalid parent body part handle" when creating and deleting a body in the same frame
- A doc issue, let joint = RevoluteJoint::new(-0.1); needs to update
- Custom Broadphase Collision Filters HOT 2
- The mechanical world stops updating after 524,288 seconds when using `f32` precision HOT 6
- Rigidbody velocity gets improperly clamped if a max_linear_velocity is set HOT 2
- Contact between a ball and cuboid sometimes and has no contact pair HOT 2
- Update nalgebra dependency to latest version (0.21.0) HOT 2
- Expose nalgebra and ncollide through nphysics HOT 3
- 2d: Moving an object over many ground boxes with width 1, sometimes cause the object to sometimes fly off in the Y-direction? HOT 2
- Is there an example that works with wgpu HOT 3
- Broad phase pair filters cannot access body information HOT 2
- Until `MechanicalWorld::step` is called, `GeometricalWorld::interferences_with_point` uses old collider positions HOT 1
- Wrong inertia calculation in `<RigidBody<N> as BodyPart<N>>::add_local_inertia_and_com`
- FEMVolume `renumber_dofs` breaks kinematic indices
- Can't build examples HOT 1
- When will the new features like 'physx5.0' be supported? such as 'Soft Body Dynamics'、'Cloth'、'PBF'、'...'
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 nphysics.