Constraint based motion of 2D Assemblies
Sripada Subramanyam ( 94289 )
Suraj Gaurav ( 94293 )
Introduction
Given a description of a 2D assembly and the spacial location of the bodies, our aim is to find the allowed motions for each body so that no two bodies interfere. We also plot the given parameter of one body with respect to some other parameter to realize these motions.
Motivation
Gemetric Reasoning plays a fundamental role in our understanding of the physical world. The problem that we are addressing forms a central task in geometric reasoning and manifests itself in other related domains - describing mechanical assemblies, constraint based sketching and design, geometric modelling for CAD and kinematic analysis of robots and other mechanisms.
Description
The user gives the description of the bodies. Each body is modelled as a polyarc. The user also gives the co-ordinates of the various lines and arcs in each polyarc. This completes the spatial description of the bodies. In an assembly, the bodies interact with one another, this interaction can be encoded in the system by defining certain constraints on the motion of the bodies.
There are three types of allowed constraints :-
For example, in the above case, if the center
of the circle has point-point constraint with the origin, then the body
can only rotate about the origin with radius equal to the point-point constraint
distance. Mathematically speaking, a point-point constraint specifies a
circle constraint, and we can get the coordinates of the other point by
solving a circle equation.
For example, in the above case, if the center of the circle
has a point line constraint with the xaxis L, then the circle is constrained
to move parallel to the xaxis. Mathematically speaking, a point-line constraint
specifies a line constraint, and we can get the coordinates of the point
by solving a linear line equation.
For example, in the above case, if line L has a line-line constraint with line L1, then the body can only parallel to xaxis. Mathematically, this is equal to two point-line constraints because we can take two points on the first line and define point-line constraint on both of them to get the same effect.
Once the constituents i.e the bodies have been defined and the constraints defined on them, we can derive the allowed motions for each body. It is assumed that an unconstrained body has three degrees of freedom, 2 translational degrees and one rotational degree. As the body is constrained, its allowed motions reduce.
Results
We have tested the program on two sample assemblies.
Crank Slider Mechanism
Here, the point P1 has a point-point constraint with point C. The point P2 has a point-point constraint with point C. The point P3 has a point-point constraint with P2 and point-line constraint with the xaxis. The result of plotting x along Y-axis and theta along X-axis is as follows.
Crank Lever Mechanism
Here, the point P1 has a point-point constraint with point C. The point P2 has a point-point constraint with the origin. The point P3 has a point point constraint with P2. The point P4 has a point-point constraint with P3 and a point-line constraint with xaxis. With these constraints defined, now we are plotting beta along Y-axis and alpha along X-axis to get the following result.
Cam -Follower Mechanism
Here, we are attempting to solve a much complicated problem defining functions for translating and rotating polyarcs. This is a very famous set-up and the constraints are defined as follows: The center of the lock barrel has a point-point constraint with the origin and a point-line constraint with the xaxis. So, it can only rotate about the center. The pin has a line line constraint with the xaxis which constrains it to move only parallel to the xaxis. Defining these constraints, we are plotting theta (starting from zero) for which the pin can go into the cut of the lock-barrel to get the following result.
References