OCCRA
Go to Post When was the last time you heard of someone on their death bed talking about a great movie they saw? I think it far more likely to hear of their accomplishments, something they did to make things better. Well that's what FIRST is all about. - DougHogg [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

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 08-05-2018, 01:21 AM
andrewda's Avatar
andrewda andrewda is offline
Programmer
AKA: Andrew Dassonville
FRC #2521 (SERT)
Team Role: Programmer
 
Join Date: Oct 2016
Rookie Year: 2016
Location: Eugene, OR
Posts: 35
andrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to behold
Team 2521's 2018 code release

There have been a bunch of code releases lately, so I'll keep this short.

Primary robot code: https://github.com/SouthEugeneRoboticsTeam/PowerUp-2018
(written with our Sertain framework: https://github.com/sertain/sertain)

Vision code: https://github.com/SouthEugeneRoboti...Up-2018-vision

General features:
* Kotlin
* 15 Pathfinder autonomous modes
* Smart path storing on the robot (automatically regenerates new or updated paths, keeps old ones)
* Cube tracking with vision
* Easy version tracking by displaying latest Git commit/branch/changes on Shuffleboard
* UDP communication between Jetson (vision co-processor) and roboRIO

In addition, we continue to make updates and innovations throughout the off-season, so stay tuned for more (maybe even some cool new tech incoming).

I'm also super happy with the number of amazing new and talented programmers who have worked on the code this year! We've had a great season and I can't wait to see what next year brings!

Feel free to reply with any questions/comments.
__________________
Andrew Dassonville

Team 2521

Last edited by andrewda : 08-05-2018 at 01:26 AM.
Reply With Quote
  #2   Spotlight this post!  
Unread 08-05-2018, 08:17 AM
gerthworm's Avatar
gerthworm gerthworm is offline
Making the 1's and 0's
FRC #1736 (Robot Casserole)
Team Role: Mentor
 
Join Date: Jan 2015
Rookie Year: 2015
Location: Peoria, IL
Posts: 661
gerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond reputegerthworm has a reputation beyond repute
Re: Team 2521's 2018 code release

Awesome stuff, thanks for sharing!

What's the design philosophy behind the Sertan framework? Is there a particular architecture you're trying to drive toward?

Also, what was your experience having the Git build SHA1 info available at runtime? How did you end up using it, was it valuable enough to replicate next year, etc. ?
Reply With Quote
  #3   Spotlight this post!  
Unread 08-05-2018, 09:09 AM
Prateek M's Avatar
Prateek M Prateek M is offline
Kotlin Master Race
FRC #5190 (Green Hope Falcons)
Team Role: Programmer
 
Join Date: May 2018
Rookie Year: 2018
Location: Cary, North Carolina
Posts: 37
Prateek M is on a distinguished road
Re: Team 2521's 2018 code release

Glad to see another team using Kotlin!
Reply With Quote
  #4   Spotlight this post!  
Unread 08-05-2018, 11:39 AM
andrewda's Avatar
andrewda andrewda is offline
Programmer
AKA: Andrew Dassonville
FRC #2521 (SERT)
Team Role: Programmer
 
Join Date: Oct 2016
Rookie Year: 2016
Location: Eugene, OR
Posts: 35
andrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to behold
Re: Team 2521's 2018 code release

Quote:
Originally Posted by gerthworm View Post
What's the design philosophy behind the Sertain framework? Is there a particular architecture you're trying to drive toward?
We're trying to keep the overall philosophy and structure similar to WPILib – subsystems, commands, etc. We mainly made Sertain in order to make use of more Kotlin APIs that we wouldn't have been able to otherwise. It also gives us a little more fine-tune control over the lifecylce of commands, so we know what's running and when. We'll be adding more over the course of this off-season, especially in regards to testing and simulation. I'd really like us to do more test-driven development next year, but even having a few tests is a step in the right direction.


Quote:
Originally Posted by gerthworm View Post
Also, what was your experience having the Git build SHA1 info available at runtime? How did you end up using it, was it valuable enough to replicate next year, etc. ?
It was actually super easy with Gradle, fewer than 50 lines. You can see the code here. That was all made post-competition season so it's never been used in competition, but it has helped us tremendously at off-season demonstrations and even just everyday debugging. We just display it on Shuffleboard for anyone wanting to check the version of the code, but I'm looking to do more now that we have access to all that information.
__________________
Andrew Dassonville

Team 2521
Reply With Quote
  #5   Spotlight this post!  
Unread 08-05-2018, 11:42 AM
marshall's Avatar
marshall marshall is offline
Online Stripe & Drape Sales
FRC #0900 (The Zebracorns)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2003
Location: North Carolina
Posts: 2,934
marshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond repute
Re: Team 2521's 2018 code release

Quote:
Originally Posted by andrewda View Post
* Cube tracking with vision
I'm curious about this and how you implemented it. Can you add some more details about how it works?
__________________
"La mejor salsa del mundo es la hambre" - Miguel de Cervantes
"The future is unwritten" - Joe Strummer
"Simplify, then add lightness" - Colin Chapman
Clarke's Laws
Reply With Quote
  #6   Spotlight this post!  
Unread 08-05-2018, 12:15 PM
andrewda's Avatar
andrewda andrewda is offline
Programmer
AKA: Andrew Dassonville
FRC #2521 (SERT)
Team Role: Programmer
 
Join Date: Oct 2016
Rookie Year: 2016
Location: Eugene, OR
Posts: 35
andrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to behold
Re: Team 2521's 2018 code release

Quote:
Originally Posted by marshall View Post
I'm curious about this and how you implemented it. Can you add some more details about how it works?
Nothing fancy. Basically just color thresholding, find the biggest blob of the right dimensions, then send the location back to the roboRIO which uses it to grab a cube. We did dabble around with actual object tracking with OpenCV's CSRT, KCF and MOSSE classes, but we didn't ever get anything more usable than without, and the FPS drops weren't really worth it. Nothing zebracorns-level by any means

We did just get a LiDAR, though, and have got some basic SLAM running, but that's a whole different story... Hopefully we can strap it on the robot and upload the code within the next few weeks to see how well it does or doesn't work.
__________________
Andrew Dassonville

Team 2521
Reply With Quote
  #7   Spotlight this post!  
Unread 08-07-2018, 12:55 PM
demosthenes2k8's Avatar
demosthenes2k8 demosthenes2k8 is offline
Registered User
AKA: Matt Soucy
FRC #0166 (Chop Shop 166)
Team Role: Mentor
 
Join Date: Jan 2009
Rookie Year: 2007
Location: Merrimack, NH
Posts: 603
demosthenes2k8 has much to be proud ofdemosthenes2k8 has much to be proud ofdemosthenes2k8 has much to be proud ofdemosthenes2k8 has much to be proud ofdemosthenes2k8 has much to be proud ofdemosthenes2k8 has much to be proud ofdemosthenes2k8 has much to be proud ofdemosthenes2k8 has much to be proud of
Re: Team 2521's 2018 code release

Thank you for your code release! I had been toying with converting our team's code to Kotlin, so it's interesting to see how you did things. I'm also curious about if you plan on using IDEA next year, given that VS Code is going to be the new standard, and from my experience it doesn't quite pick up gradle dependencies for its intellisense yet.

One suggestion I have - you link to sertain's JavaDocs, but there are no descriptions/documentation for any of it in those docs. Those would be really helpful for pointing people in the right direction for where to get started. From what I could see from a quick glance, you came up with a similar notation that we did for declaratively creating CommandGroups, which is encouraging to me, though I'm not quite sure what your "mirror" and "bridge" commands are, or how they're meant to interact with core WPIlib.
__________________

GSR Dean's List Finalist 2011
Reply With Quote
  #8   Spotlight this post!  
Unread 08-07-2018, 01:24 PM
andrewda's Avatar
andrewda andrewda is offline
Programmer
AKA: Andrew Dassonville
FRC #2521 (SERT)
Team Role: Programmer
 
Join Date: Oct 2016
Rookie Year: 2016
Location: Eugene, OR
Posts: 35
andrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to beholdandrewda is a splendid one to behold
Re: Team 2521's 2018 code release

Quote:
Originally Posted by demosthenes2k8 View Post
Thank you for your code release! I had been toying with converting our team's code to Kotlin, so it's interesting to see how you did things. I'm also curious about if you plan on using IDEA next year, given that VS Code is going to be the new standard, and from my experience it doesn't quite pick up gradle dependencies for its intellisense yet.
We love IDEA/IntelliJ and definitely plan to continue using it. Every IDE has its use, and IntelliJ exceeds at usability with Java/Kotlin/Gradle. That said, most of us do use VS Code for everything non-Java/Kotlin, such as our vision and other coproccessor code.

Quote:
Originally Posted by demosthenes2k8 View Post
One suggestion I have - you link to sertain's JavaDocs, but there are no descriptions/documentation for any of it in those docs. Those would be really helpful for pointing people in the right direction for where to get started. From what I could see from a quick glance, you came up with a similar notation that we did for declaratively creating CommandGroups, which is encouraging to me, though I'm not quite sure what your "mirror" and "bridge" commands are, or how they're meant to interact with core WPIlib.
Thanks for the suggestion! Yea... we're in the process of cleaning it up a little. CommandBridge really shouldn't be accessible, and most of that is all internal hacking to get around some weird WPILib stuff. We'll add some examples and step-up the documentation over the next few weeks!
__________________
Andrew Dassonville

Team 2521
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 04:45 AM.

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


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