AGXMagneticJoint

AGX Magnetic Joint is a joint that behaves like a magnet using AGX Dynamics.
For implementation lock joint of AGX Dynamics is used.
../_images/magnetic_joint.png

Sample

The sample is below. When loading the sample project with Choreonoid and running the simulation, you can see the blue object stick together with the red object automatically (see above figure).

  • project file: chorenoid/sample/AGXDynamics/agxMagneticJoint.cnoid
  • body file: chorenoid/sample/AGXDynamics/agxMagneticJoint.body

How to write

AGX Magnetic Joint can be described and used as follows.

links:
  -
    name: Plug
    elements:
      -
        type: AGXMagneticJointDevice
        link1Name: Socket
        link2Name: Plug
        position1: [ 0, 0.25, 0 ]
        position2: [ 0, 0, -0.05 ]
        connectAxis1: [ 0, 1, 0 ]
        connectAxis2: [ 0, 0, 1 ]
        jointCompliance: 1e-6
        jointSpookDamping: 1.0
        validDistance: 1.0
        validAngle: 20
  1. Set the link you want to connect with AGXMagneticJoint to linkName
  2. Set which part of the link you want to connect to position and connectionAxis
  3. Set how much force and speed to connect to jointCompliacne and jointSpookDamping
  4. Set the distance and angle at which the connection is valid to validDistance and validAngle

poistion is the relative position from the link coordinate and connectAxis is the connection direction of the joint. For example, if you set connectAxis in different directions as shown on the left in the figure below, the connection is made so that each connectAxis matches.

../_images/magnetic_joint_detail.png

Explanation of parameters

The parameters are described below.

parameter default value unit default value explanation
type: AGXMagneticJointDevice - - string declaration of using AGXMagneticJoint
link1Name - - string name of the link1
link2Name - - string name of the link2
position1 [0, 0, 0] - Vec3 position of the joint relative from the link1 coordinate
position2 [0, 0, 0] - Vec3 position of the joint relative from the link2 coordinate
connectAxis1 [0, 0, 1] - Unit Vec3 direction of the joint relative from the link1 coordinate
connectAxis2 [0, 0, 1] - Unit Vec3 direction of the joint relative from the link2 coordinate
jointCompliance 1e-8 m/N double compliance of the joint
jointSpookDamping 0.33 s double spook damping of the joint
validDistance 0 m double distance threshold when the magnetic joint effective
validAngle 0 degree double angle threshold when the magnetic joint effective