Quote:
Originally Posted by PAR_WIG1350
That would not be unicorn drive. You can also control center of rotation in a unicorn drive which adds 2 more variables. These would be the two that you would preset to make driving easier, otherwise, in the most intuitive drive interfaces, center of rotation would be controlled by a second joystick, alternatively, you could use polar coordinates and one joystick. In this setup the x and y axes give you translation angle and velocity while the z-rotational (twist) axis controls turning radius and the z-axis (throttle) controls the front to back variation of the center of rotation.
|
Quote:
Originally Posted by AdamHeard
I think you're a bit off here, the center of rotation is an arbitrary point the robot is instantaneously rotating around based on the combination of translation and rotation inputs. The code takes the translation and rotation inputs and figures out what arbitrary arc the robot is driving upon at that second, and then finds the resultant wheel angles and speeds to travel along that arc. No matter what, the vehicle is driving along some arc instantaneously, and it's defined by three things, not five (it would be overdefined).
this is incredibly intuitive; move that way that fast, and spin this way this fast. I don't understand how this isn't "unicorn drive".
|
These are both different methods for controlling a "unicorn" drive, with the prior being better for autonomous path planning and the latter being easier for human control. For the prior, there are simply too many inputs for a person to feasibly and intuitively control, but this method (rotation around any arbitrary instantaneous center) is best suited for advanced path planning/navigation. For example, if you wanted to autonomously drive a robot along lines, arcs, or splines while rotating the drive base, the first one would be the chosen control scheme. For this drive mode, everything is broken down into driving straight, driving in arcs, driving along splines, etc and the control inputs are based upon the desired states of these actions.
The latter scheme, as Adam pointed out, is similar the prior, but much simpler (less inputs, less inverse kinematics). This makes it easier for someone to control it, but with has "less control" over the outputs of the system. However, this can be overcome by "transferring" some of the complicated "inverse kinematics" back to the human driver: by training, the human driver could learn to control the three inputs they are given in this scheme to produce very similar results to the above control scheme (e.g. the driver could drive in an arc/spline while rotating by learning how to perfectly alter and coordinate the X-Y vector and Z-rotation joysticks).