dino updates: talked to Elijah and Andrew a little [updates]
Note nothing I'm about to share here is really proprietary, I think it formalizes a lot of the things we have already been talking about in terms of how to do control. Here's a few things we learned:
(1) How to do control w/ an Impedance Controller of the form Kp*e + Kd *ev + T_ff for desired behavior
In terms of robotic systems, there's usually a few major things we want to be able to control if we abstract the system to a higher level:
Stiffness of the mechanism - if we inject a disturbance, what is the effective mass of the system at the end effector and things like that (if I drop hoppy leg how well does it absorb impact).
Velocity - at what speed do we move to a target position.
Position - the target position at and given time.
Let's start w/ servo-ing to a target position, we learned from the brief dyno testing that what the PID controller in the Sparkmax is doing is setting essentially a duty-cycle at the end no matter what signal we are trying to control (wether that is current, position, etc). So we are thinking we can do this one of two ways outlined below:
Now to do something like this, because we are essentially creating our own controller. We want to run the loop as fast as we possibly can on the RoboRIO which means upping the loop-speed, here's a thread discussion below on how to do that (we want at least 100Hz). Otherwise we may need to consider using the SmartMotion that is included in the SparkMAX library.
**TO RUN ROBOT CODE AS FAST AS POSSIBLE: https://www.chiefdelphi.com/t/a-few-questions-about-the-control-system/152453/6 ( Teleop_Continuous() ) """You should have no problem getting 100hz+ execution rate on a RoboRIO."""
**NOTE: we do not have an integral term in the impedance controller, we don't really need one as if slop isn't an issue the "I" term would just case the system to go unstable quickly.
The next thing to talk about is setting a system stiffness. It's very simple - we literally just change Kp and we can set
To play more with this we're going to have to build hoppy leg. We're using the Dino to build the controller and the leg to ensure it works and do some preliminary tuning with the gearbox on it.
(2) How to create a smooth trajectory for robotics control
The last thing I want to touch on today is how to build a smooth trajectory for robotics control. I'll write this one in my notebook and then just attach pictures here.