OCCRA
Go to Post Excuse me while I rant on your comment here a bit. - Andrew Remmers [more]
Home
Go Back   Chief Delphi > ChiefDelphi.com Website > Extra Discussion
CD-Events   CD-Media   CD-Spy   FRC-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 11-06-2011, 01:10 AM
Madison's Avatar
Madison Madison is offline
Dancing through life...
FRC #0488 (Xbot)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1999
Location: Seattle, WA
Posts: 5,048
Madison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond repute
Send a message via AIM to Madison
pic: FRC488's Octocanum Ver 2.0

Reply With Quote
  #2   Spotlight this post!  
Unread 11-06-2011, 01:14 AM
AllenGregoryIV's Avatar
AllenGregoryIV AllenGregoryIV is offline
Engineering Coach
AKA: Allen "JAG" Gregory
FRC #3847 (Spectrum)
Team Role: Coach
 
Join Date: Jul 2008
Rookie Year: 2003
Location: Texas
Posts: 1,705
AllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond repute
Send a message via AIM to AllenGregoryIV
Re: pic: FRC488's Octocanum Ver 2.0

This looks really great I have a couple questions

1. Why did you choose to pivot the traction wheels down instead of moving the mecanum wheels?

2. What are the final gear ratios to each set of wheels?

3. Why did you choose to build under the kit frame instead of on top of it?What's the sub-frame made out of?
__________________
Spectrum 3847 - Blog - Website - Facebook - Twitter - Flickr

Team 647 | Cyber Wolf Corps | Alumni | 2003-2006 | Shoemaker HS
Team 2587 | DiscoBots | Mentor | 2008-2011 | Rice University / Houston Food Bank
Team 3847 | Spectrum | Coach | 2012-20... | St Agnes Academy
LRI | Alamo Regional | 2014-20...
"Competition has been shown to be useful up to a certain point and no further, but cooperation, which is the thing we must strive for today, begins where competition leaves off." - Franklin D. Roosevelt
Reply With Quote
  #3   Spotlight this post!  
Unread 11-06-2011, 08:01 AM
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 6,170
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: pic: FRC488's Octocanum Ver 2.0

Quote:
Originally Posted by Madison View Post
Ask questions and I'll answer them.
What mecanum wheels are you using, why did you select them, and what (if any) issues have you had with them?

Quote:
Originally Posted by Madison View Post
We implemented mecanum drive better than most of what I've seen on the field
What makes your mecanum implementation better?


Reply With Quote
  #4   Spotlight this post!  
Unread 11-06-2011, 10:44 AM
Madison's Avatar
Madison Madison is offline
Dancing through life...
FRC #0488 (Xbot)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1999
Location: Seattle, WA
Posts: 5,048
Madison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond repute
Send a message via AIM to Madison
Re: pic: FRC488's Octocanum Ver 2.0

Quote:
Originally Posted by AllenGregoryIV View Post
This looks really great I have a couple questions

1. Why did you choose to pivot the traction wheels down instead of moving the mecanum wheels?

2. What are the final gear ratios to each set of wheels?

3. Why did you choose to build under the kit frame instead of on top of it?What's the sub-frame made out of?
We pivot the traction wheels down for a few reasons. First, by putting them nearer to the center of the machine, it makes turning with four high-traction wheels a bit easier to accomplish. We also gear down further to that wheel set, so it makes sense for it to be at the end of the gear train.

The gear ratios are 8.45:1 at the mecanum wheels -- that's one of the options for the Toughbox Nano -- and about 25:1 at the traction wheels. The traction wheel ratio makes things pretty slow, but it's easy to swap in sprockets to speed things up as required.

The kit frame is 1.25" thick and the output of Toughbox is 1.5" from its edge, so when using a 6" mecanum wheel, we'd end up with just .25" of ground clearance if we built things the other way around.

The subframe, right now, is 1x1x.125" angle bolted to the perimeter of a .125" perforated PVC sheet and hung from the Toughbox Nano housings. It is intended to hold electronics and would need to be enhanced if it were going to see more substantial loading.

Quote:
Originally Posted by Ether View Post
What mecanum wheels are you using, why did you select them, and what (if any) issues have you had with them?



What makes your mecanum implementation better?

This is based on AndyMark 6" mecanum wheels -- http://www.andymark.com/product-p/am-0136.htm

We used this last season and I'm happy with the build quality and performance. They're heavy, but they're not as heavy as the 8" set we originally played with years ago and we're willing to deal with the weight and cost in place of building our own.

Our mecanum implementation worked. I didn't program it, so I can't speak too much to what made it work, but our programming team did a fantastic job there. We had accurate, fast, field-oriented drive that allowed us to fully use the movement capabilities of the mecanum wheel set. In my experience, most teams fail to achieve the level of control we managed.
__________________
--Madison--

...down at the Ozdust!

Like a grand and miraculous spaceship, our planet has sailed through the universe of time. And for a brief moment, we have been among its many passengers.
Reply With Quote
  #5   Spotlight this post!  
Unread 11-06-2011, 04:28 PM
AllenGregoryIV's Avatar
AllenGregoryIV AllenGregoryIV is offline
Engineering Coach
AKA: Allen "JAG" Gregory
FRC #3847 (Spectrum)
Team Role: Coach
 
Join Date: Jul 2008
Rookie Year: 2003
Location: Texas
Posts: 1,705
AllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond repute
Send a message via AIM to AllenGregoryIV
Re: pic: FRC488's Octocanum Ver 2.0

Thanks that cleared some things up.

Are the wheel assemblies and bearing blocks the only machined parts?

How do you avoid compressing the C-channel when you bolt the tough-boxes through it?
__________________
Spectrum 3847 - Blog - Website - Facebook - Twitter - Flickr

Team 647 | Cyber Wolf Corps | Alumni | 2003-2006 | Shoemaker HS
Team 2587 | DiscoBots | Mentor | 2008-2011 | Rice University / Houston Food Bank
Team 3847 | Spectrum | Coach | 2012-20... | St Agnes Academy
LRI | Alamo Regional | 2014-20...
"Competition has been shown to be useful up to a certain point and no further, but cooperation, which is the thing we must strive for today, begins where competition leaves off." - Franklin D. Roosevelt
Reply With Quote
  #6   Spotlight this post!  
Unread 11-06-2011, 05:25 PM
Madison's Avatar
Madison Madison is offline
Dancing through life...
FRC #0488 (Xbot)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1999
Location: Seattle, WA
Posts: 5,048
Madison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond reputeMadison has a reputation beyond repute
Send a message via AIM to Madison
Re: pic: FRC488's Octocanum Ver 2.0

The wheel assemblies are 1/4" ABS with .5x.5x.125" angle added for rigidity. We can laser cut the ABS parts in a few minutes; then it's simply a matter of cutting the angle to length and match drilling it to the ABS.

The bearing blocks are of similar construction, but are really ugly right now. I'm still working on those.

If possible, we'll bolt the transmissions through just one wall of the C-channel. Otherwise, we'll laser cut 1/2" ABS inserts to stick inside the C-channel to prevent it from buckling where it's bolted through.
__________________
--Madison--

...down at the Ozdust!

Like a grand and miraculous spaceship, our planet has sailed through the universe of time. And for a brief moment, we have been among its many passengers.
Reply With Quote
  #7   Spotlight this post!  
Unread 11-06-2011, 05:32 PM
Andrew Lawrence's Avatar
Andrew Lawrence Andrew Lawrence is offline
Learning how to learn.
AKA: SuperNerd256
FRC #1323 (Madtown Robotics)
Team Role: College Student
 
Join Date: Jan 2011
Rookie Year: 2011
Location: Merced, California
Posts: 3,405
Andrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond repute
Send a message via Skype™ to Andrew Lawrence
Re: pic: FRC488's Octocanum Ver 2.0

Woah.....

I have seen many amazing drive trains in my time (and I mean MANY), but this is just AMAZING! I love the idea! Are you going to implement it next year?

Just some questions:

1. How many KoP parts does it use?
2. How many other parts?
2.5 Where can these parts be obtained?
3. How easy is this to make (during build season, with a team of builders)
4. Is it open source?
__________________
Team 256: 2011-2014
Team 1323: 2014-Present

"The greats weren't great because at birth they could paint, the greats were great because they paint a lot" -Macklemore
Reply With Quote
  #8   Spotlight this post!  
Unread 11-06-2011, 05:53 PM
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 6,170
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: pic: FRC488's Octocanum Ver 2.0

Quote:
Originally Posted by Madison View Post
Our mecanum implementation worked. I didn't program it, so I can't speak too much to what made it work, but our programming team did a fantastic job there. We had accurate, fast, field-oriented drive that allowed us to fully use the movement capabilities of the mecanum wheel set. In my experience, most teams fail to achieve the level of control we managed.
Mecanum is not hard to program. It is very straightforward. The same is true of field-oriented drive.

If your robot had superior control, I suspect the reasons are probably:

1) superior craftsmanship and attention to detail of the mechanical design (wheel and frame alignment, leveling, weight distribution, minimal and consistent drivetrain friction, carefully assembled and adjusted mecanum wheels)

2) attention to detail of the electrical design (proper wiring to motors and gyro, selection of gyro with minimal drift, etc)

3) well-designed driver interface (match the driver interface to the driver)

4) skilled drivers with lots of practice



Reply With Quote
  #9   Spotlight this post!  
Unread 11-06-2011, 06:04 PM
Andrew Lawrence's Avatar
Andrew Lawrence Andrew Lawrence is offline
Learning how to learn.
AKA: SuperNerd256
FRC #1323 (Madtown Robotics)
Team Role: College Student
 
Join Date: Jan 2011
Rookie Year: 2011
Location: Merced, California
Posts: 3,405
Andrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond reputeAndrew Lawrence has a reputation beyond repute
Send a message via Skype™ to Andrew Lawrence
Re: pic: FRC488's Octocanum Ver 2.0

^ Those help too.
__________________
Team 256: 2011-2014
Team 1323: 2014-Present

"The greats weren't great because at birth they could paint, the greats were great because they paint a lot" -Macklemore
Reply With Quote
  #10   Spotlight this post!  
Unread 11-06-2011, 09:25 PM
BJC's Avatar
BJC BJC is offline
Simplicty is Complicated!
AKA: Bryan Culver
FRC #0033 (The Killer Bees)
Team Role: Alumni
 
Join Date: Jan 2010
Rookie Year: 2009
Location: Kettering/Greenville
Posts: 689
BJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond reputeBJC has a reputation beyond repute
Re: pic: FRC488's Octocanum Ver 2.0

Comments/ questions are bolded

Quote:
Originally Posted by Madison View Post
We pivot the traction wheels down for a few reasons. First, by putting them nearer to the center of the machine, it makes turning with four high-traction wheels a bit easier to accomplish. We also gear down further to that wheel set, so it makes sense for it to be at the end of the gear train.

I was always under the impression that the traction wheels were suppose to be on the outside to aid in pushing/ not being pushed; that not being able to turn was desired because you are only ever going straight when pushing? Also, if the mecanums are on the inside won't you rock up onto the mecanums when pushing someone? Additionally, are you concerned with your wheel pods being bent in when your traction wheels are down and someone T-bones you going 14+fps?

The gear ratios are 8.45:1 at the mecanum wheels -- that's one of the options for the Toughbox Nano -- and about 25:1 at the traction wheels. The traction wheel ratio makes things pretty slow, but it's easy to swap in sprockets to speed things up as required.

Any concerns about the gearbox ripping itself apart when you are switching wheels at full speed and both wheels are momentarily touching the ground or do the mecanums slip enough for this to not be a problem?

The kit frame is 1.25" thick and the output of Toughbox is 1.5" from its edge, so when using a 6" mecanum wheel, we'd end up with just .25" of ground clearance if we built things the other way around.

How high do the inner wheels pivot off of the ground, and how dropped are the traction wheels when they are down?

The subframe, right now, is 1x1x.125" angle bolted to the perimeter of a .125" perforated PVC sheet and hung from the Toughbox Nano housings. It is intended to hold electronics and would need to be enhanced if it were going to see more substantial loading.



This is based on AndyMark 6" mecanum wheels -- http://www.andymark.com/product-p/am-0136.htm

We used this last season and I'm happy with the build quality and performance. They're heavy, but they're not as heavy as the 8" set we originally played with years ago and we're willing to deal with the weight and cost in place of building our own.

Our mecanum implementation worked. I didn't program it, so I can't speak too much to what made it work, but our programming team did a fantastic job there. We had accurate, fast, field-oriented drive that allowed us to fully use the movement capabilities of the mecanum wheel set. In my experience, most teams fail to achieve the level of control we managed.
Overall, very cool. I'm a fan of the ability to quickly strafe in any direction, to hold your ground when pushing, and with proper programming basically what amounts to a shifting drivetrain. Looks like you have a good thing going here.
__________________
Float like a butterfly, Sting like a bee
-------------Team 33--------------
"The losers are the ones caught up in that afternoon rush hour. The winners drive home in the dark."-Neal Boortz
Reply With Quote
  #11   Spotlight this post!  
Unread 11-06-2011, 10:33 PM
Jonathan Norris Jonathan Norris is offline
Jno
FRC #0610 (Crescent Robotics)
Team Role: Mentor
 
Join Date: Nov 2005
Rookie Year: 2004
Location: Toronto ON
Posts: 1,051
Jonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond reputeJonathan Norris has a reputation beyond repute
Send a message via MSN to Jonathan Norris
Re: pic: FRC488's Octocanum Ver 2.0

Any thought into making the Mecanum wheels the pivoting ones?? Our team last year developed some CAD prototypes for this combination, and eventually didn't implement it due to the added complexity. However, we did use mecanum last year, and didn't have a great experience with it. I think one of the biggest problems we saw (other then malfunctioning Jaguars...), was that when all four wheels were not on the ground (due to an un-even playing field, and seams in the carpet) the controllability of the system declined, and even worse the power of the drive system declined. Some of this we could correct with programing, but loss in power and acceleration was really noticeable. The loss in acceleration is I believe the biggest downside of using mecanum, the reality I saw was that our robot was just far slower in accelerating, changing direction, and stopping (decelleration) then high traction based drive systems.

I was wondering if you pivoted around the traction wheels instead of the Mecanum wheels in the octocanum, if you would see any advantages because the pistons could act as a suspension system. I've been told that mecanum drive systems perform better with a suspension system, I would be interested in hearing from teams that have used suspension in their mecanum drives. But for me I would need to see a big improvement in acceleration/deceleration to advocate for using mecanum again.
__________________
2013 World Champions (1241, 1477, 610)
Co-Founder of Taplytics.com
Crescent Robotics Team 610 Mentor
K-Botics Team 2809 Founding Mentor ('09-'11)
Queen's University Mechanical Engineering, Applied Science '11

Crescent Robotics Team 610 Alumni
Reply With Quote
  #12   Spotlight this post!  
Unread 11-06-2011, 10:47 PM
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 6,170
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: pic: FRC488's Octocanum Ver 2.0

Quote:
Originally Posted by Jonathan Norris View Post
The loss in acceleration is I believe the biggest downside of using mecanum, the reality I saw was that our robot was just far slower in accelerating, changing direction, and stopping (decelleration) then high traction based drive systems.
What do you think would cause a mecanum to stop unacceptably slowly?

Are you saying it slides across the carpet when you try to stop quickly?

Do you have any video showing this?


Reply With Quote
  #13   Spotlight this post!  
Unread 11-07-2011, 06:17 PM
JohnGilb JohnGilb is offline
Programming Mentor, Drive Mentor
FRC #0488
 
Join Date: Mar 2011
Rookie Year: 2003
Location: Redmond, WA
Posts: 96
JohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura about
Re: pic: FRC488's Octocanum Ver 2.0

Quote:
Originally Posted by Ether View Post
Mecanum is not hard to program. It is very straightforward. The same is true of field-oriented drive.

If your robot had superior control, I suspect the reasons are probably:

1) superior craftsmanship and attention to detail of the mechanical design (wheel and frame alignment, leveling, weight distribution, minimal and consistent drivetrain friction, carefully assembled and adjusted mecanum wheels)

2) attention to detail of the electrical design (proper wiring to motors and gyro, selection of gyro with minimal drift, etc)

3) well-designed driver interface (match the driver interface to the driver)

4) skilled drivers with lots of practice


Granted, the 488's 2011 machine was built quite well, but there were still all sorts of mechanical inconsistencies. The center of gravity moved around significantly as the arm moved, generally there was more weight in the back (and slightly more on the left side, I believe), not to mention occasionally getting rammed around or crashing into objects.

The base aspect of converting a desired vector/rotation into wheel speeds is pretty easy (it's even included in the WPI libraries), but we did a lot of additional work so the robot would _actually_ move the way you intended. There were many PID operations that more or less worked in concert to allow smooth robot control. It was essentially a solved problem from a theory perspective, but still required a lot of code in order to operate well.
Reply With Quote
  #14   Spotlight this post!  
Unread 11-07-2011, 06:36 PM
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 6,170
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: pic: FRC488's Octocanum Ver 2.0

Quote:
Originally Posted by JohnGilb View Post
There were many PID operations that more or less worked in concert to allow smooth robot control.
Other than closed-loop speed control of the 4 wheels (did you do that?), what other closed loop controllers did you use for controlling the drivetrain?


Reply With Quote
  #15   Spotlight this post!  
Unread 11-07-2011, 06:59 PM
JohnGilb JohnGilb is offline
Programming Mentor, Drive Mentor
FRC #0488
 
Join Date: Mar 2011
Rookie Year: 2003
Location: Redmond, WA
Posts: 96
JohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura about
Re: pic: FRC488's Octocanum Ver 2.0

Initially, we had 3 closed-loop systems:

Rotational - used a gyro to keep the robot on target heading
Translational - used encoders on "follow wheels" (unpowered wheels) to gauge ground speed and keep the robot translating on a target vector
Wheel Speed - used encoders on the drive wheels themselves to achieve precise wheel speed control

After a while, we actually disabled the wheel speed, as we didn't appear to get much performance improvement from it and we were looking to save on some CPU cycles.
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 11:16 AM.

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


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