Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Holometric Drive Pseudocode? (http://www.chiefdelphi.com/forums/showthread.php?t=92534)

sakekasi 21-02-2011 03:56

Holometric Drive Pseudocode?
 
As an off season project, I am working on a holometric drivetrain system with a mechanic on my team. A holometric drive has 4 omni wheels at 45 degree angles to a square frame and can go in any direction using vector cancellation.

I was wondering how I would compute the speeds to power the wheels at given the x and y components of the vector that indicates the desired motion of the robot.

Any ideas?

Thanks in advance.

Galum 21-02-2011 04:57

Re: Holometric Drive Pseudocode?
 
We did something along these lines just this summer! I'll ask our programming crew leader to post here once school-day is over :)

pafwl 21-02-2011 06:15

Re: Holometric Drive Pseudocode?
 
I believe the code is exactly like Mecanum drive. We have code we use for this. The nice thing is you can modify the values to your liking. You pass in Power, Direction and Turn. We use a single joystick for this that has x, y and twist. If you look at the code you will see that the twist is returned as throttle. This is because this joystick is mapped a little differently. No big deal.

You call the Mecanum function 4 times, once for each wheel. Works very well.


You can get my 2010 code at http://www.frc272.com/seminar/Archive

Below is an example how to use them. (fbw stands for fly by wire, We read inputs and sensors into fbw variables, cook them a little and the write to outputs.)

fbw.f_LeftFrontDriveMotorPower = GetMecanumPower(LC2010::kMecanumLeftFront, fbw.f_DriverDirection, fbw.f_DriverPower, fbw.f_DriverTurn);

fbw.f_LeftRearDriveMotorPower = GetMecanumPower(LC2010::kMecanumLeftRear, fbw.f_DriverDirection, fbw.f_DriverPower, fbw.f_DriverTurn);

fbw.f_RightFrontDriveMotorPower = GetMecanumPower(LC2010::kMecanumRightFront, fbw.f_DriverDirection, fbw.f_DriverPower, fbw.f_DriverTurn);

fbw.f_RightRearDriveMotorPower = GetMecanumPower(LC2010::kMecanumRightRear, fbw.f_DriverDirection, fbw.f_DriverPower, fbw.f_DriverTurn);

Ether 21-02-2011 08:11

Re: Holometric Drive Pseudocode?
 
Quote:

Originally Posted by sakekasi (Post 1028141)
As an off season project, I am working on a holometric drivetrain system with a mechanic on my team. A holometric drive has 4 omni wheels at 45 degree angles to a square frame and can go in any direction using vector cancellation.

I was wondering how I would compute the speeds to power the wheels at given the x and y components of the vector that indicates the desired motion of the robot.

Any ideas?

I think you'll find what you are looking for here and here.

Or here, at line 00460.

BTW, the word you want is "holonomic" not "holometric":

http://www.holonomicwheel.com/index.jsp

http://en.wikipedia.org/wiki/Omni_wheel




All times are GMT -5. The time now is 11:25.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi