Go to Post What? No Poof balls as pillows? Phfff. Amateur. :p - artdutra04 [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rating: Thread Rating: 7 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 22-02-2015, 15:17
michaelwm's Avatar
michaelwm michaelwm is offline
Integrated Systems Lead
AKA: Michael Midura
FRC #4976 (Rebel Robotics)
Team Role: Programmer
 
Join Date: Dec 2013
Rookie Year: 2010
Location: Georgetown
Posts: 23
michaelwm is a jewel in the roughmichaelwm is a jewel in the roughmichaelwm is a jewel in the roughmichaelwm is a jewel in the rough
Post Press A to Jump! A discussion on semi-automated software

I've written a post titled "Press A to Jump! // Part 1" available on my personal blog. It touches topics such as dual and single driver software, the separation of end user and producer, and how the software platform should differ from the implementation platform.

In a nutshell, it describes the importance of semi-automation in the tele-operated period of the FIRST Robotics Competition.

I'll be writing the second part, titled "Press A to Jump! // Part 2" soon, and the discussion will be focused on how anyone would actually begin to write semi-automated software.

Comments and criticism are appreciated!
__________________
Integrated Systems

Last edited by michaelwm : 22-02-2015 at 15:27.
  #2   Spotlight this post!  
Unread 22-02-2015, 17:31
Craig's Avatar
Craig Craig is offline
Drive it like YOU BUILT IT!
FRC #4976 (REBELS!)
Team Role: Engineer
 
Join Date: Jan 2004
Rookie Year: 2001
Location: Oakville, ON
Posts: 50
Craig is an unknown quantity at this point
Re: Press A to Jump! A discussion on semi-automated software

Very well written Michael.

A tank has 2 drivers

I see it as a time sensitive situation where multiple human input can lead to more efficient simultaneous activity.

I agree 100% with the advantage of automated software, but cranes, construction equipment etc. have all the time in the world and don't often operate mechanisms while driving. We have 2:15...learning to cooperate, along with a little automation can lead to a plenty efficient method of control.

Cooperation is also a valuable lesson in life!
__________________
Founding member: Team #4976 GO REBELS!
Spent some great years with #2386
Founding Member: Team #843
  #3   Spotlight this post!  
Unread 22-02-2015, 17:32
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,086
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: Press A to Jump! A discussion on semi-automated software

I like it -- and totally agree with a lot of this. These aren't just things that we do in FRC to be successful, but with any software that has an interface -- what is the most intuitive way to accomplish a task? This is what we try to teach students -- not just *how* to solve the problem from a low level perspective, but also how to *think* about the problem from a higher level first.

The best part about writing semi-automated robots is that it makes writing autonomous mode significantly easier.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
  #4   Spotlight this post!  
Unread 22-02-2015, 18:21
michaelwm's Avatar
michaelwm michaelwm is offline
Integrated Systems Lead
AKA: Michael Midura
FRC #4976 (Rebel Robotics)
Team Role: Programmer
 
Join Date: Dec 2013
Rookie Year: 2010
Location: Georgetown
Posts: 23
michaelwm is a jewel in the roughmichaelwm is a jewel in the roughmichaelwm is a jewel in the roughmichaelwm is a jewel in the rough
Re: Press A to Jump! A discussion on semi-automated software

Thanks Craig! I didn't expect anyone at 4976 to see this until Tuesday!

Someone on Reddit pointed out that I didn't mention a manual backup mode, and I realized it is something I forgot (as our team has a manual mode), and have now added it. Don't put all your eggs in one basket!
__________________
Integrated Systems
  #5   Spotlight this post!  
Unread 22-02-2015, 18:37
cjl2625's Avatar
cjl2625 cjl2625 is offline
apel py
AKA: Cory Lynch
FRC #2067 (Apple Pi)
Team Role: Programmer
 
Join Date: Jan 2013
Rookie Year: 2013
Location: Guilford, CT
Posts: 412
cjl2625 is a splendid one to beholdcjl2625 is a splendid one to beholdcjl2625 is a splendid one to beholdcjl2625 is a splendid one to beholdcjl2625 is a splendid one to beholdcjl2625 is a splendid one to beholdcjl2625 is a splendid one to beholdcjl2625 is a splendid one to behold
Re: Press A to Jump! A discussion on semi-automated software

Nice article.

As both the programmer and a driver/operator on my team, I automatically think in terms of what is easiest to control when writing the software.
If anything, I may be guilty of wanting to write too much automation when programming.
Semi-automation is especially important for our robot this year; simply lifting a tote takes 7 steps, with several pneumatics firing and the lift motor running. Automation has reduced this to one push of a button.
__________________
Head Programmer / Driver

Last edited by cjl2625 : 22-02-2015 at 18:42.
  #6   Spotlight this post!  
Unread 22-02-2015, 19:09
Fauge7 Fauge7 is offline
Head programmer
FRC #3019 (firebird robotics)
Team Role: Programmer
 
Join Date: Jan 2013
Rookie Year: 2012
Location: Scottsdale
Posts: 195
Fauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to allFauge7 is a name known to all
Re: Press A to Jump! A discussion on semi-automated software

Nice Article! This is definitely true! Even as a 3rd year programmer it does make sense to just put 5 buttons as one sequence but to be able to do that with 1 or 2 would be so much easier!
  #7   Spotlight this post!  
Unread 22-02-2015, 19:24
alopex_rex's Avatar
alopex_rex alopex_rex is offline
Rainbow Professionalism Dash
AKA: Scott Morton
FRC #0830 (The RatPack)
Team Role: Alumni
 
Join Date: Dec 2014
Rookie Year: 2012
Location: Ann Arbor, MI
Posts: 92
alopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond reputealopex_rex has a reputation beyond repute
Re: Press A to Jump! A discussion on semi-automated software

This is interesting, I look forward to reading the next article.

Last year we started out designing the controls from the "programmer's perspective." After a scrimmage, where we discovered that our robot was very difficult to drive, we designed a new semi-automated scheme. I spent several straight hours on my computer at home implementing it on top of our existing code, which was not structured well to accept the automation. It... worked, but it wasn't pretty.

This year we began with semi-automation in mind, and started brainstorming the control scheme as soon as we knew all the actuators to control. We settled on a very simple-to-control system; the copilot basically just has to press a button now and then, whenever we decide to pick up a tote or a recycling container. We have another "test" teleop mode for manually controlling each mechanism, which we use heavily for, well, testing. Just today we finally got the "official" teleop mode to be self-sufficient, i.e. we can use it continuously without having to switch to manual controls to fix issues. Today we were preparing for driver tryouts, and it was gratifying to see how easily everyone picked up the copilot controls. We haven't gone over to one-driver control, for various reasons, although I've certainly considered the notion from time to time.
__________________
Ratpack programming lead 2013 - 2015

ἔκλαγξαν δ᾽ ἄρ᾽ ὀϊστοὶ ἐπ᾽ ὤμων χωομένοιο / αὐτοῦ κινηθέντος: ὃ δ᾽ ἤϊε νυκτὶ ἐοικώς. (Ancient Greek nerds unite!)
  #8   Spotlight this post!  
Unread 22-02-2015, 21:33
GeeTwo's Avatar
GeeTwo GeeTwo is offline
Technical Director
AKA: Gus Michel II
FRC #3946 (Tiger Robotics)
Team Role: Mentor
 
Join Date: Jan 2014
Rookie Year: 2013
Location: Slidell, LA
Posts: 3,679
GeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond repute
Re: Press A to Jump! A discussion on semi-automated software

Thanks so much! I've been trying to drive exactly this message home this year. Maybe it'll sink in a bit more when it's coming from outside the team. Our lead programmer this year was also our driver last year, but I still don't think even he quite gets how much faster and easier it will be to use a semi-automated system as compared to manual operation from behind the alliance wall.

As far as the "manual backup mode", we intentionally wrote that first. This is because we needed to verify that the motors were actually doing what we expected, and set the appropriate inverted motors. We also did not yet have an array of sensors in place (we are at one camera, 9 limit switches, and four analogs presently; we will be moving one analog to I2C and another to an encoder (2 DIOs) this week on our practice 'bot to improve reliability. If you didn't already plan to do this in later blogs, you should also consider describing how to incorporate sensors into the semi-automation process. This may very well be the first time we've actually used any sensor other than the camera in operating our robot.
__________________

If you can't find time to do it right, how are you going to find time to do it over?
If you don't pass it on, it never happened.
Robots are great, but inspiration is the reason we're here.
Friends don't let friends use master links.
  #9   Spotlight this post!  
Unread 23-02-2015, 07:35
Ian Curtis Ian Curtis is offline
Best Available Data
FRC #1778 (Chill Out!)
Team Role: Engineer
 
Join Date: Feb 2005
Rookie Year: 2004
Location: Puget Sound
Posts: 2,521
Ian Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond repute
Re: Press A to Jump! A discussion on semi-automated software

Minor quibble, it is preferred to call the second pilot the "Pilot Monitoring" instead of "Pilot Not Flying".

Boeing actually uses two driver trucks frequently to move some of the oversized loads between factories. The front and rear wheels have their own drivers!
__________________
CHILL OUT! | Aero Stability & Control Engineer
Adam Savage's Obsessions (TED Talk) (Part 2)
It is much easier to call someone else a genius than admit to yourself that you are lazy. - Dave Gingery
Closed Thread


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 21:19.

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