Go to Post Wait hold the phone. Do you mean its physically possible to not spend time on robotics during the season?!!! Too much.......for brain......to compute!...goes against.....beliefs........aaaaarrrrrrghhhhhh!!! [syntax error] - BuddyB309 [more]
Home
Go Back   Chief Delphi > Technical > Programming > C/C++
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 14-01-2016, 10:14
nandeeka's Avatar
nandeeka nandeeka is offline
Registered User
FRC #1868
Team Role: Programmer
 
Join Date: May 2014
Rookie Year: 2013
Location: United States
Posts: 53
nandeeka is on a distinguished road
CommandBasedRobot v. IterativeRobot

This season, our team is debating whether or not to switch from IterativeRobot to CommandBasedRobot. What are the pros and cons of each option?
Reply With Quote
  #2   Spotlight this post!  
Unread 14-01-2016, 12:51
nollchr nollchr is offline
Registered User
FRC #2170 (Titanium Tomahawks)
Team Role: Mentor
 
Join Date: Feb 2014
Rookie Year: 2014
Location: Glastonbury, CT
Posts: 28
nollchr is an unknown quantity at this point
Re: CommandBasedRobot v. IterativeRobot

When we transitioned from LabView to C++, we chose Command Based over Iterative for one major reason: RobotBuilder and the associated Command Based framework

We have a pretty limited level of programming expertise (but a large number of 'programmers' to keep busy) and the RobotBuilder/Command Based framework gives a nice structure and way to manage many different pieces. Also, the paradigm of subsystems and commands allowed us to easily split up "assignments" to different programmers without having to develop a similarly sophisticated framework in just IterativeRobot.

There are fans and haters of RobotBuilder, but it has worked well for us for the last 2 seasons and we plan to continue with Command Based this season.
Reply With Quote
  #3   Spotlight this post!  
Unread 15-01-2016, 02:21
jmullins16's Avatar
jmullins16 jmullins16 is offline
Registered User
AKA: Jeff Mullins
FRC #2135 (Presentation Invasion)
Team Role: Mentor
 
Join Date: Nov 2011
Rookie Year: 2011
Location: San Jose, CA
Posts: 23
jmullins16 is an unknown quantity at this point
Re: CommandBasedRobot v. IterativeRobot

We have also found that RobotBuilder provides more structure for students with little or no programming experience. It creates good templates with all the language nuances in place. This lets us discuss how to make the robot do what we want and without explaining lots of C++ before we even start. At the time, we were also making the jump from LabView to C++.

The command-based robot project which comes out of RobotBuilder provides good object-oriented skeleton for creating subsystems and commands.

That said, this is our third or fourth year using RobotBuilder, and it has had some problems over this run. We have always been able to find plenty of support, and one of our mentors has even made local changes to extend it for CAN Talons last year. These were pushed back to FIRST and the rest of CD (Java source code is available for RobotBuilder).

We are local here in San Jose, and please feel free to contact our team if you need more info or support.
Reply With Quote
  #4   Spotlight this post!  
Unread 22-01-2016, 06:24
kmckay's Avatar
kmckay kmckay is offline
Registered User
FRC #5401 (Fightin' Robotic Owls)
Team Role: Mentor
 
Join Date: Jan 2016
Rookie Year: 2015
Location: Bensalem, PA
Posts: 46
kmckay will become famous soon enough
Re: CommandBasedRobot v. IterativeRobot

Command based is much more robust, distributive, and reusable.
It is robust in that it lets you do more things, and creates a default architectureto do the m in. Distributive means that more than one person can work on it atthe same time. The bunch of files means that joe can work on one subsystem while jane works on another, and integrating them is fairly easy once you get the hang of it. And reuse means you will build a on term library. We published our drive base code from last year and then this year we just picked it up and dropped it in.
We have a work in progress development guide that helps keep track of how to build acommand based code. Lots still to fill in, but we found the online guides lacking a lot. Its at team5401.org under Resources -> Tutorials
Reply With Quote
  #5   Spotlight this post!  
Unread 03-02-2016, 15:30
Mitchell C Mitchell C is offline
Registered User
FRC #0313
 
Join Date: Jan 2016
Location: Michigan
Posts: 8
Mitchell C is an unknown quantity at this point
Re: CommandBasedRobot v. IterativeRobot

If you have been using iterative and understand it, i would recommend sticking with it at least till off-season just so that you don't need to learn anything too new in the middle of build season.
Reply With Quote
  #6   Spotlight this post!  
Unread 03-02-2016, 18:33
Kevin Sevcik's Avatar
Kevin Sevcik Kevin Sevcik is offline
(Insert witty comment here)
FRC #0057 (The Leopards)
Team Role: Mentor
 
Join Date: Jun 2001
Rookie Year: 1998
Location: Houston, Texas
Posts: 3,622
Kevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond repute
Send a message via AIM to Kevin Sevcik Send a message via Yahoo to Kevin Sevcik
Re: CommandBasedRobot v. IterativeRobot

Quote:
Originally Posted by Mitchell C View Post
If you have been using iterative and understand it, i would recommend sticking with it at least till off-season just so that you don't need to learn anything too new in the middle of build season.
This is sound advice. I think Command-Based is pretty nifty as if you have a robust set of basic actions/commands programmed, it makes building automations and autonomous routines pretty easy. But there's definitely quirks to the framework that can hang you up.
__________________
The difficult we do today; the impossible we do tomorrow. Miracles by appointment only.

Lone Star Regional Troubleshooter
Reply With Quote
  #7   Spotlight this post!  
Unread 19-02-2016, 21:06
King Nerd III's Avatar
King Nerd III King Nerd III is offline
Chief Programmer/Head of Autonomous
AKA: Isaac
FRC #1410 (The Kraken)
Team Role: Programmer
 
Join Date: Jan 2014
Rookie Year: 2014
Location: Denver, CO
Posts: 113
King Nerd III is an unknown quantity at this point
Re: CommandBasedRobot v. IterativeRobot

I definitely prefer CommandBased because of having commands and subsystems split out into separate files. Yes, managing all the files can be a little hard and the structure can get confusing (most of the time it's me going "wait, did I declare that in this subsystem or that one??") but overall, it keeps everything clean and spread out so that if you break something it's easier to fix.
Not sure if you've read it, but this is the reading the previous head of programming had me read that inspired the use of the CommandBased robot: http://www.laputan.org/mud/ It's an interesting read, I suggest you take a look.
__________________
Isaac
Chief of Programming and Head of Autonomous Control
FRC Team 1410
Reply With Quote
  #8   Spotlight this post!  
Unread 27-02-2016, 23:02
JefferMC JefferMC is offline
Registered User
AKA: Jeff Corbett
FRC #1319 (Flash)
Team Role: Mentor
 
Join Date: Nov 2012
Rookie Year: 2005
Location: United States
Posts: 44
JefferMC will become famous soon enough
Re: CommandBasedRobot v. IterativeRobot

Iterative is more straightforward. Once you chafe at the restrictions that iterative imposes on you, switching to CommandBased will probably feel like a breath of fresh air. Before these frameworks came out, it was really hard for a student programmer just learning programming to do anything with coding. Now, with a rudimentary understanding of C++, they can successfully create new commands and work on Subsystems. More experienced student programmers can do the whole thing.

Doing more than one thing at a time in Iterative is complicated (i.e. driving while moving an arm). In CommandBased, it's easy.

I tend to avoid the RobotBuilder because I want to explain what we're doing as we go along, but the code it emits is not all that different from what I would code by hand (that is, before you have to put your logic in).
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 13:28.

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