Thursday, July 25, 2019

Project Evaluation

My project goal was to produce a procedural walk for a biped model, using inverse kinematics to maintain natural human motion.
While I did not effectively complete this milestone, I believe my development progress demonstrates that I have acquired an understanding of the necessary functionality in order to meet my goal.
Having completed multiple IK implementations, step trajectories and logic systems to enact locomotion logic I am impressed with the amount I have learnt through research and prototyping into an area I was previously unfamiliar with and consider the project a success.

Monday, July 22, 2019

Simulating Balance: Contact Wrench Cones to Remove Limitations of ZMP

Contact Wrench Cone 

Continued reading into approaches to maintain biped stability revealed some limitations of ZMP concept.

As discussed by Dai, H. and Tedrake, R. (Planning robust walking motion on uneven terrain via convex optimization, 2016) The ZMP approach relies on the assumption that the ground contact plane is perfectly flat and even, otherwise the calculation of the support polygon can quickly become highly complex and produces poorly defined areas.

Dai, H. and Tedrake, R. continue to explain that ZMP always considers the contact surface to have theoretically infinite friction to keep the leg limbs from slipping on the surface. This is an issue in real-world robotics as it means that even if the ZMP lies within the support polygon, the leg limb can still slide along the surface and unbalance the system.
In real-world robotics, slipping is a necessary consideration. For my simulation I would be able to adjust the friction of any surface to be sufficient to guarantee no leg-slip, though expanding the solution to assess friction would allow for more believable interactions with external objects as the previous proposed blog improvement would allow.

The stability of the biped systems stance on surfaces of varying friction and tilt can be assessed with the concept of a contact wrench cone.

“The contact wrench cone (CWC) is the admissible set of the total contact wrench, which is computed by summing up the individual contact wrenches at each contact location.” (Dai, H. and Tedrake, R., 2016, P. 580), where a wrench is the concatenation of force and torque.

Saturday, July 20, 2019

Simulating Balance: ZMP and Support Polygon

As briefly visited in an earlier blog, when considering the natural motion of a biped’s joints through gait phases I was able to make use of a simple inverted pendulum which I discovered through research into Zero Movement Points.

“ZMP is defined as the point on the ground where the net moment of the inertial forces and the gravity forces has no component along the horizontal axes” (Goswami, 2009, p. 9).

My solution was not produced to account for gravity on the biped, due to the time constraints of the project - though if it were to be expanded, while significantly increasing the systems complexity would produce more realistic behaviours as the biped system adapts its speed and posture with the goal of remaining balanced.

This would allow more realistic behaviours when traversing different terrain types and also from interactions from external forces.

To define the ZMP of a legged system, a single point is approximated by evaluating the ZMP as a function of the systems centre of mass position and centre of mass acceleration as discussed by Danilov et al. (2016, pp. 3-4).

Wednesday, July 17, 2019

Improving Footstep Placement

Orienting the foot to the supporting surface is comparatively simple compared to the selection of foot placement during locomotion.

Kanoun, Laumond and Yoshida suggest using a model where “Two successive footprints are viewed as two virtual rigidbodies joined by two prismatic joints and one revolute joint around the vertical” (2010, p. 478).

The defined distance between the feet assists with balancing the ZMP within the support polygon. This approach also means that the location of every previous step can be stored in memory – allowing the biped to backtrack if necessary.

Figure 1: Foot step locations with separation determined by two prismatic and a revolute joint (Kanoun, Laumond and Yoshida, 2010, p. 478)

Monday, July 15, 2019

The Footbase - Improving Foot Constraints

In addition to correctly restraining the joint angles during motion, for added realism a model’s feet should match the surface angle of the terrain. Currently only the heel joint is used to check the contact with the floor, which may cause the rest of the foot to clip through the ground/obstacles during the support phase.

Johansen (2009) explains that simply using a single joint/point on the foot is insufficient to orient the joints of the feet to the surface appropriately, as shown in figure 1.

Figure 1: Foot clipping with environment when single joint used to compare ground plane (Johansen, 2009)

Johansen (2009) presents a solution to this issue – the footbase.

Wednesday, July 10, 2019

3D Procedural Walk

With the exception of the IK algorithm joint constraints, the prerequisite behaviours are now in place to attempt a 3D procedural walk.

As per my milestones, to demonstrate the procedural capability of the solution, I created a script to take basic input from the user: accelerate, decelerate, pivot (about y-axis).
The values in this script are then converted using inverse lerp to give proportional values which are used to define how far ahead of the biped the next foot marker is place and how fast the hips will rotate over the supporting foot.

Sunday, June 16, 2019

Bézier Trajectory - 3D Bubbles of Free Space

3D Limb Bones Intersection Problem 

My previous trajectory plotter checked for intersections linearly between the Bézier curve resolution points to determine whether the was an obstacle, and whether the respective obstruction was ‘walkable’.

This approach was suitable for the 2D biped walker, as the model only had to account for the travel space of a point (the centre of the end effector).
Using a 3D model, the foot object (from ankle joint to toe-end joint) must be considered as it moves through space.

To obtain a trajectory that guarantees not to pass through another object, Zhao (2015, pp. 52-58) proposes creating a path of connected ‘bubbles’ as shown in figure 1.
"the concept of bubbles of free configuration space ... is an exact collision checking by attempting to cover the path with collision-free neighborhoods"(Zhao, 2015, p. 54)

Figure 1: Overlapping bubbles of free space to create a clear path (Zhao, 2015, p. 55)