Go to Post Don't start celebrating yet. I haven't a clue if we can get this working. - Kevin Watson [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #31   Spotlight this post!  
Unread 30-05-2016, 17:13
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,086
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Hex Kiwi Drive

Quote:
Originally Posted by caume View Post
I should have added the pseudo to the original post, but this guy did it just how I did. The only difference is I would have field orientation
@caume: I'm curious to see how you would go about this. Please post your pseudocode with field orientation.


Reply With Quote
  #32   Spotlight this post!  
Unread 30-05-2016, 20:48
wildwaffle's Avatar
wildwaffle wildwaffle is offline
Registered User
FRC #1073 (The Force Team)
 
Join Date: Sep 2015
Rookie Year: 2015
Location: Brookline, NH
Posts: 7
wildwaffle is an unknown quantity at this point
Re: Hex Kiwi Drive

I might have missed someone saying this(correct me if they did), but a hexagonal robot would not be for pushing power. The design makes it easy to get out of being pinned. A perk to an omni wheel drivetrain is that if you know how to drive it well, then you can use another robot pushing you to your advantage. I know it's a different shaped chassis but team 33 in 2014 had a four omni wheel drivetrain. It wasn't omni directional unless another team applied the force to their side, and they used this to their advantage. (They won 2 districts, their district champs, and we're finalists in their division at worlds)
__________________

Reply With Quote
  #33   Spotlight this post!  
Unread 30-05-2016, 22:37
caume's Avatar
caume caume is offline
Registered User
AKA: Cameron Aume
FRC #3324 (Metrobots)
Team Role: Programmer
 
Join Date: Feb 2015
Rookie Year: 2014
Location: Ohio
Posts: 21
caume is infamous around these partscaume is infamous around these partscaume is infamous around these partscaume is infamous around these partscaume is infamous around these partscaume is infamous around these parts
Re: Hex Kiwi Drive

Quote:
Originally Posted by Ether View Post
@caume: I'm curious to see how you would go about this. Please post your pseudocode with field orientation.


With this model, the battery is the back of the drive, the point opposite it is the front. flMotor would be the motor on the left side, closest the point opposite the battery.

Psuedocode:
Code:
if (fieldOriented) {
	cosA = cos(( target - gyroAngle ) * 3.14159 / 180 )
	sinA = sin(( target - gyroAngle ) * 3.14159 / 180 )

	x = (driverLX * cosA) - (driverLY * sinA)
	y = (driverLX * sinA) + (driverLY * cosA)
}


flMotor =   y*sind(60) + x*cosd(60) + turn
mlMotor =   y + turn
blMotor =   y*sind(60) - x*cosd(60) + turn 
frMotor = - y*sind(60) - x*cosd(60) + turn
mrMotor = - y + turn
brMotor = - y/sind(60) + x/cosd(60) + turn

Last edited by caume : 31-05-2016 at 20:19. Reason: Clarified motor positions
Reply With Quote
  #34   Spotlight this post!  
Unread 01-06-2016, 13:19
TheMagicPenguin's Avatar
TheMagicPenguin TheMagicPenguin is offline
Registered User
AKA: Josh B
FRC #1640 (Sab-BOT-Age)
Team Role: Mechanical
 
Join Date: Jan 2015
Rookie Year: 2007
Location: Pennsylvania
Posts: 12
TheMagicPenguin is an unknown quantity at this point
Re: Hex Kiwi Drive

I'm not 100% sure if having six wheels woild give you an advantage over having 3 or 4. The real advantage with this design is manuvrability.

Having a hexagon robot would allow you to not get pinned easily, and also the added advantage of having a smaller turning diameter.

I can attest to this advantage. In my first year of FTC we created a 4 omni wheel robot hexagon frame, and a round shell. Having this rounded shell let us cut corners that no one else could, not get pinned, and when turning we had no corners that could get caught on obstacles (i.e robots, field elements, field perminiter).

Here is an attached picture:
Attached Thumbnails
Click image for larger version

Name:	IMG_0223.JPG
Views:	68
Size:	1.80 MB
ID:	20825  
__________________
I'm not scard to have the unpopular opinion.
Reply With Quote
  #35   Spotlight this post!  
Unread 05-06-2016, 22:21
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,086
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Hex Kiwi Drive

Quote:
Originally Posted by caume View Post
With this model, the battery is the back of the drive, the point opposite it is the front. flMotor would be the motor on the left side, closest the point opposite the battery.

Psuedocode:
Code:
if (fieldOriented) {
	cosA = cos(( target - gyroAngle ) * 3.14159 / 180 )
	sinA = sin(( target - gyroAngle ) * 3.14159 / 180 )

	x = (driverLX * cosA) - (driverLY * sinA)
	y = (driverLX * sinA) + (driverLY * cosA)
}


flMotor =   y*sind(60) + x*cosd(60) + turn
mlMotor =   y + turn
blMotor =   y*sind(60) - x*cosd(60) + turn 
frMotor = - y*sind(60) - x*cosd(60) + turn
mrMotor = - y + turn
brMotor = - y/sind(60) + x/cosd(60) + turn

If I assume the following:
driverLX is the driver's field-centric move right command
driverLY is the driver's field-centric move downfield command
turn is the driver's rotate clockwise command
target is an angle offset which defines the "front" of the robot relative to the point opposite the battery
... then your code gives incorrect answers for the wheel speeds. See example with target=0 (front is defined as the point opposite the battery as stated above) and gyroAngle=0 (robot front is facing straight downfield).


Quote:
Originally Posted by caume View Post
this guy did it just how I did.
Apparently not. The code I posted gives the correct wheel speeds for robot-centric driver FWD and STR commands.

To make that code give the correct wheel speeds for field-centric driver FWD and STR commands, just modify those commands as follows before calculating the wheel speeds:

Code:

temp =  FWD·cos(θ) + STR·sin(θ);
STR  = -FWD·sin(θ) + STR·cos(θ);
FWD  =  temp;
... where θ is the gyro angle, measured clockwise from straight downfield.

Attached Thumbnails
Click image for larger version

Name:	badcode.png
Views:	20
Size:	6.9 KB
ID:	20837  
Attached Files
File Type: xls badcode.xls (14.5 KB, 4 views)

Last edited by Ether : 06-06-2016 at 15:12.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 20:07.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


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