Has anyone successfully used dynamics (as opposed to just kinematics) in hexapod simulation and control? I’ve been working out the dynamics involved in a hexapod and I think interesting control can be achieved by applying a dynamical approach as opposed to a strict kinematic approach.
Sounds interesting. Do you mean a dynamic walking gait? I believe Matt Denton is using that. I did add a balance mode which I believe can be used to achieve a sort of dynamic gait. Do you have any link/information about dynamic simulation? (I didn’t google it yet )
I’ve also got ambition to reinvent a smart multileg.
Worked out a effective (dynamic) locomotion model.
Eventually movement will be based on matrix math with solvers - requiring a lot of theory study.
I hope using matrices eventually will enable merging behaviors such as moving whilst elevating the body. Imagine it is walking, but gets terrified by something on the right. This would combine two matrices making for a very natural and smooth transition of different behaviors, or merging them. Consider a matrix that elevates its body, or lowers it. This could then be made dependent of how the bot evaluated the terrain.
Will take over 5 years before i complete this though. My prototype hardware will consist of a bioloid kit + eeepc because i like the smart AX12 actuator. Eventually i will make it a esthetically pleasing carbon fiber body.
Thanks for the responses! In terms of motion study, kinematic analysis deals only with the position and movement of manipulators (pose frames, angles, velocities, etc.) - not their physical properties (mass, inertia, torque, etc.). Dynamical analysis picks up where kinematic analysis leaves off and is somewhat more involved. I’ve been studying it for about two months now and not having any background in mechanical engineering it’s been quite a learning experience for me.
Anyway, while strict kinematic control with cyclical gaits works well on flat surfaces, uneven surfaces with limited footholds screams for dynamic feedback and control. I’ve worked out the closed form dynamical equations for a single leg suspended in space using Lagrangian mechanics, but things get far more complicated when dealing with the robot as a whole. The system changes from an open chain serial manipulator (single leg) to a parallel manipulator with multiple closed chains (six legs with at least two on the ground). It’s not yet obvious to me how to approximate the dynamics of the whole robot in a reasonable amount of time.
Barryke - I like your idea of interpolating between pose matrices to derive behaviors. Imagining the spatial relationship between pose matrices and how they might change reminds me of continuous topology deformation (won’t let me post a link, but search Wikipedia for Topology for more information). Maybe some of the same techniques could be used?
Could not agree more on all that, sounds like we share ambitions! We could assimilate related research references & knowledge on a wiki / duo-blog of sorts.
What i said about combining behavior basically is procedural animation driven by sensors. A common ingredient in future videogames.
Some insight in my doings, current progress: ] attempting to get subsidized funding (in the Netherlands everything is possible) or work with uni’s/:m] ] actually order bioloid kit/:m] ] attempt uber simple lab-experiment “keep weight-scale pressed on constant weight while vertically moving the hip of 3dof leg around” to test responsiveness of minimal (feetsensor or AX12) feedbackloop./:m]note to self:
Kinematics and Dynamics Library (KDL): orocos.org/[/list]
Spider with procedural animation: nl.youtube.com/watch?v=I1P_B65XW4I (may skip halfway tru)
One problem I think you would have with dynamics is that you are really pushing the processing power of a Basic Atom. Also, you have the problem that if you are doing too many calculations to manage your stride you have to pause to read sensors or plan a path. If you really want to pursue dynamics I would recommend other processors.
I agree that dynamic computation would likely overwhelm the standard on-board processor. I’m hoping to use dynamic simulation to evolve interesting behaviors in the hexapod model, likely using some combination of genetic algorithms and artificial neural networks. The simulation would distill the behaviors into a network that could then be loaded onto the physical robot. Running the trained network is a relatively lightweight operation and could be done in real time.
Previous researchers (don’t have the papers in front of me right now) have trained an artificial neural network to approximate the output from the inverse dynamics simulation. The trained network was good enough for control and requires fewer resources.
Interestingly, some researchers have, rather than training up a network in a simulation, freezing it in time, and loading it on the robot used an online adaptive approach. Here the robot continued to learn during operation. In order to support adaptive learning each leg had a pretty beefy microprocessor dedicated to its operation in addition to the central microprocessors.
IMO, we are missing one important requirement here in order to allow for the implementation of dynamic gait, which is servo feedback. The gait we are using here are all pre-generated gait base on static stability gait. For dynamic gait to function, the gait sequence and position is instantaneous, based on the instability of the gait at that moment.
The idea is that you could open up your servos and connect some wire to the feedback potentiometer in the servos, and read the voltage coming out for live feedback. i explained pretty poorly, check out the thread, especially the part where Robot Dude comes in.
Barryke - I’m trying to remember in the pile of papers I’ve read through where I’ve seen that referenced. I know MJ Randall talks about it in the excellent monograph “Adaptive Neural Control of Walking Robots” - amazon.com/Adaptive-Control- … 357&sr=8-1 There he is using an entirely online adaptive approach rather than pre-training with a simulation. That’s an all-around excellent book for hexapod locomotion. It’s sad that he died before completing his research.
PrinterFace/tnay - I think Dr. Randall (above monograph) measured the current supplied to the servos to derive the applied torque - this provided his feedback. This is the approach I’m planning on experimenting with once I progress further in my research. I must confess I’m not sure if I’m missing something here - do you think it could work as a feedback mechanism?
It would only work when the servos are drawing more current than idle; which means you will only get feedback when the legs are in contact with ground.
Unless your leg component (i.e. femur and tibia) has considerably weight, then you may compute the force and current draw.
Next, you will need to figure out the equations and processing power to compute the position and current feedback. Also, you will need to introduce some amount of DSP to condition the signal. It’s just too much work. I know I can’t handle it.
It would be easier to open up the servo, tap directly from the potentiometer. 8)
Another option, is to use gyro. By sensing the roll, tilt and pitch, and knowing the weight of each legs (plus servo), you could generate a gait to balance the robot. Not exactly a dynamic model, but close enough to exhibit dynamic gait.
Rather than implementing dynamic gait on hexapod, I guess a closer challenge would be to implement quadruped walking gait on hexapod, whereby the bot walk using middle and rear legs only.
I don’t have any reference. Just an idea actually. The servos and leg components do have some amount of weight. When we move the leg, there is some amount of mass, and inertia. Since the weight should be relatively small compare to the body, we could use it as part of counter weight for balancing.
It is actually an idea for quadruped, trot gait. Trot gait is a dynamic gait actually. Though it look simple, if implement without feedback, it would not execute nicely. A tad of gyro feedback should be sufficient to make it happen. I have yet to detail out the mathematical/dynamic model. It should work well on flat terrain.
Frankly, hexapod is more suitable for kinematic, or static stability gait. With duty cycle as high as 0.5, it is the best kinematic gait.
I read a literature on a study of dynamic gait for cockroach. In one word, random. 8)
I am working on starting my independent research project on all of this stuff. I have some ideas about creating a hexapod with j shaped springs in the lower limb of each leg (like athletic prosthetic legs) and designing it so that it stores some of the energy in each stride. Initially the price estimate was too high for my budget because two of the professors I am working with said that servos would not have the speed or torque requirements to achieve the gaits I am shooting for. What do you think, do servos have what it would take? I have a lot I want to put out here and talk about but I need to read a little more on this forum and collect my thoughts.
In dynamic, the force required to create dynamic motion is usually higher than the holding/static force. It depends on application, it may range from 1.5x to 4x.
How heavy is your bot? I think torque would be the primary constraint here. Try do biped, you save 4 legs, and improve your budget