Go to Post Back in MY day, we had full metal to metal contact. Not any of this wussy bumper stuff! - Michael Hill [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
  #1   Spotlight this post!  
Unread 03-05-2016, 06:13
EmileH's Avatar
EmileH EmileH is offline
it's not a water game, ok?
AKA: Emile Hamwey
FRC #1058 (PVC Pirates) & FF (NE Way You Want It)
Team Role: Programmer
 
Join Date: Dec 2014
Rookie Year: 2011
Location: New England
Posts: 524
EmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant future
Re: When programming doesn't get enough time

Quote:
Originally Posted by cjl2625 View Post
Curse those filthy wrench-swinging rivet-popping screw-driving hammer-smashing mechanical barbarians.

Hand over the robot to the programmers!
Quote:
You must spread some Reputation around before giving it to cjl2625 again.
Most true statement I've read in a while
__________________
2016-present: High School Student, FRC 1058 PVC Pirates
2016: RiverRage 20 Champions, Battle of the Bay 3 Champions

2013-2015: Middle School Student, FRC 3467 Windham Windup
Reply With Quote
  #2   Spotlight this post!  
Unread 03-05-2016, 07:07
R2D2DOC's Avatar
R2D2DOC R2D2DOC is offline
Registered User
AKA: Laszlo Hideg
no team (Judge & Volunteer)
 
Join Date: Oct 2007
Rookie Year: 2006
Location: Michigan
Posts: 79
R2D2DOC will become famous soon enoughR2D2DOC will become famous soon enough
Re: When programming doesn't get enough time

Hello,

In sympathy with the programmers, how about this (and check the legality of any of it):
(1) Is wireless flash of the controller available? If so:
(2) Bag the robot with a charged battery.
(3) Put the robot up on blocks.
(4) Depending on what is in the bag, and attached:
(5) Programmers can modify code and wirelessly flash and do limited testing?
(6) Yes electrons are passing though the bag. Yes an electrical change is being made on the robot, but not mechanical.

Just thowing it out there. . . . .

It is human nature to let things slide, especially when the deadline appears far away, and you are not on the tail end of the process. Off season, endeavor to think about scheduling, robot modular design, practice robot, or even partial practice robot that can be controlled and powered. For example, if the mechanical design crew is working on the game manipulator, with a modular design, the programmers can work on chassis control.

Hoping to make the process more effective for as many teams as possible.
Reply With Quote
  #3   Spotlight this post!  
Unread 03-05-2016, 07:50
Bongle's Avatar
Bongle Bongle is offline
Registered User
FRC #2702 (REBotics)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2002
Location: Waterloo
Posts: 1,069
Bongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond repute
Send a message via MSN to Bongle
Re: When programming doesn't get enough time

We got around this very effectively this year by taking a test-driven approach.

Split whatever code you're trying to test out into its own class, and have its entire interface with the robot be a single function call. Make sure the controlling code doesn't talk directly with WPILib (or else it ups the complexity of doing your simulated tests) We had something like:
Code:
class ArmController
{
public:
  Tick(double currentTime, double armPosition, double* shoulderPower, double* elbowPower);
private:
  PIDController m_myPidController;
  int myCurrentState; // 0 = stowing, 1 = going out, 2 = out, 3 = stowed, etc.
};
Usage in the robot code looks like:
Code:
double shoulderPower=0;
double elbowPower=0;
m_armController.Tick(currentTime, m_armPot.Get(), &shoulderPower, &elbowPower);

m_shoulderMotor.set(shoulderPower);
m_elbowMotor.set(elbowPower);
Then, elsewhere (in our case in Visual Studio), write some other code like:
Code:
ArmController controller;
double desiredShoulderPower;
double desiredElbowPower;
controller.Tick(0, OUT_POSITION, &desiredShoulderPower, &desiredElbowPower);

assert(desiredShoulderPower == 0); // the arm is out, so we shouldn't be trying to drive it
assert(desiredElbowPower == 0); // the arm is out, so we shouldn't be trying to drive it.
And do that for every other state that the arm might be in. We ended up with 20-30 unique tests for our arm controller, found a _ton_ of subtle bugs (some that we may not have found while doing in-pit testing anyway), and it worked _flawlessly_. We wrote it in the stands at Waterloo while the team was unbagging the robot, and basically didn't even give it a classic on-robot test.

Last edited by Bongle : 03-05-2016 at 07:52.
Reply With Quote
  #4   Spotlight this post!  
Unread 03-05-2016, 09:47
Drakxii Drakxii is offline
Registered User
FRC #4131 (Iron Patriots)
Team Role: Mentor
 
Join Date: May 2014
Rookie Year: 2012
Location: United States
Posts: 119
Drakxii is just really niceDrakxii is just really niceDrakxii is just really niceDrakxii is just really niceDrakxii is just really nice
Re: When programming doesn't get enough time

Quote:
Originally Posted by R2D2DOC View Post
Hello,

In sympathy with the programmers, how about this (and check the legality of any of it):
(1) Is wireless flash of the controller available? If so:
(2) Bag the robot with a charged battery.
(3) Put the robot up on blocks.
(4) Depending on what is in the bag, and attached:
(5) Programmers can modify code and wirelessly flash and do limited testing?
(6) Yes electrons are passing though the bag. Yes an electrical change is being made on the robot, but not mechanical.

Just thowing it out there. . . . .

It is human nature to let things slide, especially when the deadline appears far away, and you are not on the tail end of the process. Off season, endeavor to think about scheduling, robot modular design, practice robot, or even partial practice robot that can be controlled and powered. For example, if the mechanical design crew is working on the game manipulator, with a modular design, the programmers can work on chassis control.

Hoping to make the process more effective for as many teams as possible.
This... is a terrible idea. Not only do you run the risk of putting a hole in the bag but you can't really test anything this way. My programmers and I can make any bot WORK in about an hour or two but it takes days of coding AND FIELD testing to make it work RIGHT.
__________________
Michael D.
Favorite game: Aerial Assist
Least Favorite: Recycle Rush

Pantherbots Mentor - #2582 Lufkin, TX
* Lone Star Regional 2016, 2015 - 3rd place (Semifinals), 2014 - Quarterfinals, 2013 - Quarterfinals (Judges Award)

Iron Patriots Mentor - #4131 Renton, WA
PNW Ranking: 2016 - 18
* Auburn Mountain View District Event 2016 - Semifinals (EE Award)
* Auburn District Event 2016 - Finalists (ID Award)
* PNW Champs 2016 - Quarterfinals
* World Champs 2016 - Carson
Reply With Quote
  #5   Spotlight this post!  
Unread 03-05-2016, 10:07
adciv adciv is offline
One Eyed Man
FRC #0836 (RoboBees)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2010
Location: Southern Maryland
Posts: 478
adciv is a name known to alladciv is a name known to alladciv is a name known to alladciv is a name known to alladciv is a name known to alladciv is a name known to all
Re: When programming doesn't get enough time

There's a reason we're building two robots now. As programmers, we frequently find flaws mechanical didn't consider. Some require a moderate redesign. e.g. We sheared the rivets again, you need to make this more durable. If you think the programmers are being hard on the robot, you should see what Drive Team does to it...
__________________
Quote:
Originally Posted by texarkana View Post
I would not want the task of devising a system that 50,000 very smart people try to outwit.
Reply With Quote
  #6   Spotlight this post!  
Unread 03-05-2016, 10:36
Ninjastahr's Avatar
Ninjastahr Ninjastahr is offline
FRC Member
FRC #3928 (Team Neutrino)
Team Role: Programmer
 
Join Date: Feb 2016
Rookie Year: 2014
Location: Iowa
Posts: 30
Ninjastahr is an unknown quantity at this point
Re: When programming doesn't get enough time

Quote:
Originally Posted by adciv View Post
There's a reason we're building two robots now.
This is a great strategy, and my team was able to get a lot of programming done in build season before the real robot was even finished with just a practice drivetrain and a camera!

EDIT: But sometimes I still wished that the Mechanical people could just hurry up and finish the robot

Last edited by Ninjastahr : 03-05-2016 at 10:39.
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:24.

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