Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by JmD_2 · Aug 04, 2011 at 12:31 PM · forcenormalsphysxcontact

Reading normal force between colliders

I am experimenting with balancing and moving multiped robots. In some solutions to such problems one reads the contact force between each leg and the ground. For example a quadroped lifting one leg while the other legs are resting on the ground, the balancing algorithm should take into account how much of the weight each of the legs on the gound are carrying. This is usually done through the normal force of the contact point/points between each leg and the ground. But I find no such parameter exposed through the PhysX api in Unity.

Am I missing something or is that function not exposed in the Unity Implementation of PhysX?

Many thanks in advance ///JmD

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by sneftel · Aug 04, 2011 at 01:19 PM

Unfortunately, it isn't exposed. You have to request PhysX to give you contact force data through a special flag, and presumably Unity didn't think it was important enough to expose.

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image JmD_2 · Aug 04, 2011 at 01:39 PM 0
Share

I was afraid of that. Ben 12 - I thank you for your answer and throws out a follow up question;

Can anyone think of an alternative method to get roughly the same result - for examble reading the sum of forces currently being applied to the HingeJoint closest to the ground or something similar? $$anonymous$$aybe that information isn't available either?

Regards ///JmD

avatar image sneftel · Aug 04, 2011 at 01:59 PM 0
Share

I guess you could apply a force at each contact point and increase them until the contact is broken. That's a little silly, though.

avatar image
0

Answer by JmD_2 · Aug 04, 2011 at 03:29 PM

That's not an all too bad idea, Ben. You just introduced an alternative way of comparing the forces between each leg and the ground. Lifting the legs (or trying to) with eaqual forces applied and se what leg lifts first - or maybe even reading other parameters like the shift of center of mass for the whole robot when trying to lift the legs - and som on. Very good input - much appreciated.

Regards ///JmD

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by GalanLefont · Nov 24, 2021 at 10:56 PM

I have been working on a vehicle suspension system and I found the same blockage: How to get the normal force on the wheels. I found two ways to work around this:

  1. By coding my own spring and using the force it applies as the normal force.

  2. Not using rigid bodies for the wheels but instead calculating their position inside a script, using a raycast to detect the ground distance and calculating the force needed to get them to the surface in the duration of one frame( ((distanceUnderGround / Time.deltaTime * 2) / Time.deltaTime) *wheelMass), resulting in (I think) the normal force.

My solutions are probably not the more accurate but since I saw this problem in multiple forums with no answer I decided to at least try to put my grain of salt.!

//EJGL

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

add torque at position 2 Answers

How to stop stretch armstrong? 4 Answers

contacts.normal question 1 Answer

physx joint clutch 0 Answers

Increase Jump Through Mouse Clicks? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges