All motion is rigid body dynamics entirely and exclusively driven by the hydraulic cylinders.
Rigid body dynamics using Bullet physics engine built-in to Blender.
System (same since 2009) OS: Windows 7, CPU: i7 720, GPU: ATI Radeon 4890 (yeah, I know... :( )
(lag during real-time due to screen capture running on same PC)
Physics simulation is run at scale 1:1 with a standard mini/compact excavator. Grid floor units in animations are decimetres.
Hydraulic cylinders:
6DOF rigid body constraints (btGeneric6DofConstraint) using a translational motor on one linear axis, all others locked. Motor logic simply sets speed limited linear motor velocity, constrained by a max force, based on actual and desired distance between cylinder and rod.
Excavator Arm Structure:
Using V-HACD v2.0 enabled entire structure, every part, to be near (approximately detailed enough) physically accurate rigid bodies. All masses and center of masses relative to mesh volume and simulated material. Visual meshes' bevel depth = convex hulls collision margins.
Rigid bodies are compounded as a hierarchy down to the smallest parts. (btCompoundShape)
Top level rigid bodies are: Base, BoomBracket, Boom, Arm, BucketArm, BucketLink, Bucket; interconnected by 6DOF angular constraints at joints (with angle limits); with hydraulic cylinders and rods also connecting them with 6DOF angular constraints.
Phone tracking:
Nexus 5 running Android 5 (Lollipop) transmitting sensor data via wifi UDP to Blender.
Accelerometer, Gyroscope and Magnetometer hardware sensors used via TYPE_ROTATION_VECTOR (provides easy to use quaternion) and TYPE_LINEAR_ACCELERATION (very twitchy, so small movements filtered out) at rate SENSOR_DELAY_GAME.
Hydraulic hoses:
Series of capsules (btCapsuleShape) connected by 6DOF constraints with angle limits to skinned armature bones for animation.
Free, Open Source software used:
Blender (2.75):
www.blender.org/
includes Bullet physics engine:
bulletphysics.org/
V-HACD (Includes Blender add-on):
code.google.com/p/v-hacd/
Environment lighting created by Vlad "SATtva" Miller (Thanks!): vladmiller.info
8 июл 2015