Pages

Friday, April 26, 2019

CCD - Joint Rotation Constraints (1st Attempt)

My current solution does nothing to prevent overextension of joints, nor tight configurations of joint angles which “cause the chain to form a loop, intersecting itself” (Mukundan, 2009, p. 304).

Figure 1: Common drawbacks of CCD, including chain intersection (Mukundan, 2009, p. 304)

The problems this creates are clear - an example is demonstrated in figure 2:
Figure 2: Unconstrained solution allows intersections and overextension of joints

The animations my solutions produce must preserve the natural limits of the human body. Limiting the range of each joints’ rotation, coupled with the comparatively low degree of freedom of human limbs and my controllable trajectory plotter, should prevent the above problems.

Monday, April 8, 2019

CCD - Multi-End Structures

During my research for joint bias, I came across the concept of multi-ended kinematic structures. While this was not in my initial development plan, it should provide more natural reaching behaviour and with my current functionality should be a simple to implement in addition to constraining rotation of chain joints this week.

Kenwright (2013, pp. 63-64) discusses how the typical CCD algorithm can be applied to multiple hierarchy structures with separate end effectors.

“It work inwards from the end-effectors and bias the constrain update order towards the starting end-effector (i.e., by bouncing back to the start each time a joint moves), we can avoid joint ownership fighting. In such situations, however, the last updated sequence of joints for an end-effector will get priority on the final orientation (or length) of joints.” (Kenwright, 2013, pp. 63-64)

Monday, March 25, 2019

CCD - Joint Bias and Rotation Damping

Joint Bias 

As discussed by Bouckley (2018) the seeking action of CCD through a kinematic chain does not effectively mimic the natural motion of a human. A human will choose to move there limbs as little as possible to reach their goal, only moving their spine if it becomes necessary, whereas my solution will update every link in the chain each iteration.

To simulate more organic movement of the chain, Kenwright (2013, pp. 59-64) and Bouckley (2018) suggest giving joints closer to the end effector a higher bias, which will cause the joint order to “bounce back towards the start end and updates earlier joints” (Kenwright, 2013, p. 60) each time a joint is corrected, before progressing to the subsequent joint in the chain.

Figure 1: Joint bias
This favouring one chain end for joint correction more closely mirrors the natural joint accommodation behaviour of humans.

Tuesday, March 12, 2019

Cyclic Coordinate Descent - Implementation

Accommodating Chains of Greater Degrees of Freedom 

“When the number of links in a joint chain becomes greater than three, analytical methods usually become complex and difficult to implement.” (Mukundan, 2009, p. 1)

The function of a Cyclic Coordinate Descent (CCD) algorithm allows for control of highly articulated systems, well beyond 3 degrees of freedom which my current analytical solution limits me to.

As explored in my earlier inverse kinematics approaches blog, a heuristic iterative search aims to place the end effector as close to the target position as possible by performing a series of one-bone corrections in turn, along the length of the limb.

Thursday, February 28, 2019

Progress Presentation Feedback

Feedback received from the progress presentation indicates tutors are pleased with my progress and agree that my updated milestones from the initial project proposal have become more accurate and remain appropriate for completion of the project.

During the question period following the presentation I discussed including true physics interactions with the biped, simulating gravity and balance with a true inverted pendulum and support plane.
Lecturers were quick to point out that the scope of this addition is significant, and they expect it to be far too large for a stretch goal. I agree with their assessment and unless I manage to complete the MVP with substantial time remaining, will focus instead on polishing the existing functionality.

Wednesday, February 6, 2019

Project Milestone Adjustment, 2

Now I have produced a procedural walk for a 2D biped it is an appropriate time to review the remainder of my project – especially with a progress presentation due shortly. Adjusting now will enable me to present a more accurate plan to tutors.

The goals put in place at my last milestone would have achieved the absolute minimum functionality needed to create the 2D procedural gait. While I encountered some issues and had to invest more development time to solve them, I also chose to deviate slightly from my plan to explore, compare and understand the functionality behind the behaviours.
I’m pleased I made this decision as I’m confident I’m in a stronger position to implement the 3D end goal as a result.

Thursday, January 31, 2019

Procedural 2D Biped Walk Gait

Now all the prerequisite behaviours have been implemented, they can be combined to procedurally animate locomotion of a 2D biped.

Locomotion Logic 

My earlier gait analysis research has provided the basis for controlling the gait cycle, identifying gait phases which can be used to structure all necessary behaviour:
  • Initial contact
  • Double support
  • Rear foot lift
  • Single support/Swing
These phases will be an enum, used by both leg limbs states remain asymmetrical to each other during the gait cycle.