FRC 4481 Team Rembrandts 2023 Build Thread

Could you clarify how exactly you are combining module angle and angular rate into a motor command? It sounds like you are using this:
SparkMAXPIDController.setReference(angle, ControlType.kPosition, pidSlot, [feedforward value from omega])
But the last sentence is confusing.

Are you also using the SimpleMotorFeedforward’s calculate method that takes acceleration and velocity for the wheel speed?

You can get a pretty good number theoretically; kV should be Volts/setpointUnits, and kA should be Volts/setpointUnits^2. This means you can use the free speed of your motor and 12V to find kV, while you’ll need some physics (or empirical data) to find kA.

1 Like

The command we use is indeed equivalent to
SparkMAXPIDController.setReference(desiredAngle, Controltype.kPosition, pidSlot, kV * desiredOmega)
We do use the SimpleFeedforward, but that basically does kV * desiredOmega

What I meant by that we don’t use a PID loop for the omega is that the actual speed of the motor isn’t checked or fed back to the controller every cycle of the program. For the position we do use PID with the feedback of the current position.


Opa Foss History Lessons

If you follow the team on social media you may have noticed a weekly post called “Opa Foss History Lessons” (Opa = Grandpa in Dutch, it’s the nice way of calling me old). For the 15 weeks leading up to Kickoff I have been sharing robots from the past of FRC that I thought were good conversation starters with a focus on design, simplicity, and pick and place games. After several years in a row of collecting spheres and scoring them, many of our students have not seen a pick and place game. An additional resource for teams is also this spreadsheet we shared last year: Design Study - Pick and Place Games.

Selected Robots

  1. “Forbes” arm - 842 (2011)
  2. Arm on an elevator - 177 (2011)
  3. Roller claws - 148 (2007)
  4. Gears from the floor - 448 & /558 (2017)
  5. Tall elevator and passive shoulder - 1625 (2011 IRI redesign)
  6. Break the game - 469 (2010)
  7. Design tradeoffs - 973 (2019)
  8. Simplicity wins blue banners - 1503 (2011)
  9. Passive joints - 1538 (2011)
  10. Opening roller claws - 33 (2011)
  11. Let go quick - 173 (2005)
  12. Handoffs - 118 (2011)
  13. Don’t do it all - 2910 (2019)
  14. Can you collect it with wheels? - 973 (2019)
  15. Can you score it with wheels? - 254 & 1717 (2014)


Each of these posts came with a set of questions designed to get team members to “dig in” and do a bit of research, and came with some links to get everyone started. Some example questions include:

  • What do you think was the strategic choice that went into this?
  • How many scoring locations were there on the field available?
  • How many scoring cycles do you think the average team could do? What about the best teams in the world?
  • What is the benefit of this design option?
  • What are some negatives of this design?
  • Do you think the added complexity is worth the added functionality?

Example Post


The reception of the posts within the team was good, and it allowed us to discuss strategy, robot design, design tradeoffs and simplicity. In order to actively engage more students, it was sometimes needed to directly @ one of them to prompt a response. An additional bonus to these posts is that there is now 15+ robots for the students to look at and quick reference. We would strongly recommend other teams consider doing something like this in the offseason to familiarize their team members not only with old games or specific robots, but to give them a toolbox of resources by which to do their own research after kickoff to “steal from the best, design the rest”.

This post was written by:


CHARGED UP Cheatsheet

Our Media and Branding team has made a cheatsheet / strategy map for the game. This can be very useful for planning strategies during building season or even right before a match with your alliance partners. All files can be downloaded here.


Kickoff / Reaction Post

Here we go again, Kickoff for Team Rembrandts 10th official season. We are excited to dive into this year’s game and continue the positive momentum from our 2022 season. We will try to keep this thread as up to date as possible with posts from multiple subteams and likely a variety of authors.

Right after the reveal webcast we spent a large portion of the time this weekend reading the manual (RTFM), watching the game reveal video, and watching and re-watching the field tour videos.

It’s safe to say that it’s about time we get a Pick and Place game after several years of collecting and launching games (though we suspect it’s likely that we will see some teams launching game pieces this year as well). This Pick and Place game, which certainly has similarities to past games, presents its own unique challenges.


  • Charging Station - reminds us of the 2012 balancing bridge
  • Two individual game Pieces - 2019
  • Full Field Cycles - 2017 Gear Cycles, 2011 Tube Cycles, ~2013 Frisbee Cycles
  • Scoring Locations - 2005 Tetras, 2007 Tubes on the Rack, 2011 Tubes on Pegs

Unique Challenges

  • Extension rules and overall extension vs starting configuration
  • Tight travel lanes on the field
  • Brand new game piece, Traffic Cones

2023 Initial Impressions

Team Kickoff Video

Scoring Breakdown and Skills List

After the first independent read through of the manual the team got back together to go over the scoring breakdown for this years game, and start the robot skills list, the completed list is shown here:

Scoring Locations

Those who followed along with us last season and saw our week 1 robot already know we like to really analyze which scoring objectives are worth it from a points objective. We jokingly talk about doing “the minimum acceptable level of performance” in order to score enough points to win our qualification matches and get those sweet, sweet, Ranking Points. Last year this resulted in us focusing on scoring in the low goal because it was the easier route to increase the volume of scored balls to get the RP and it decreased cycle time as cargo was introduced back onto the field quicker.

We’ve yet to make a final decision on which level to score cubes and cones but have started this analysis process. We were inspired by Pearadox’s scoring chart, but felt that without autonomous scoring also being included it didn’t give us all the information we wanted to know. Unfortunately this also meant it wasn’t possible to fit it into one simple chart and it became the following three charts:

A simple conclusion that can be made from this is that a good autonomous will quickly limit robots that can only score low. Obviously in all cases scoring on a higher level will always lead to more points, but based on evaluation of our prototypes this week we hope to give better insight on if scoring on a lower level may be able to improve cycle time in a way that leads to higher scoring at the end of the match, either because more links can be made or because enough cycles can be scored to outperform a higher level.

From this came a quick evaluation if scoring high in autonomous but mid/low in tele-op would be an interesting strategy for us. This led to the following two charts, the first a simple chart documenting how many points it would lead to and the second showing the difference in points between it and scoring mid/low the entire match.

As you can see here, if you don’t reach 3 autonomous cycles there are several situations where scoring mid/lower the entire match outscores scoring high in auto and moving onto mid/lower in tele-op, this caused by reaching more links.

All of this needs further research but it is a promising start.

Lessons Learned

  • This game appears simple on the surface, but the strategy to win may be complex.
  • The reach required to score high is deceptively long compared to previous game challenges
  • It is not impossible that scoring on a lower level might outperform scoring higher under the right circumstances.

Next Steps

Game Analysis - The Data Driven Design Department (3DM) will be going over the game manual with a fine tooth comb to best understand the game. With an understanding of the game, they will then deep dive into scoring analysis, cycle time analysis, and predict the single robot contribution to win at our Week 1 and 2 events. From there they will help to set the Functional Requirements list for the robot that will be used to down-select prototypes and work towards our robot design for our first events.

Prototyping - The rest of the team will be focused on prototyping and exploring all of the subsystems that we potentially will need for this year’s challenge. At the start we are not limiting ourselves and the team members are free to explore any aspect of the game they would like. Here is a list of general things we will be exploring:

  • Cube collection
    • From HP
    • From Floor
  • Cone collection
    • From HP
    • From Floor Upright
    • From Floor Tipped Over
  • Game piece re-orientation
  • Telescoping arms
  • Rotational arm joints

This post was written / compiled by: @Justin_Foss, @Tijinn


Update #1 - The Start of Prototyping

You know it’s officially the start of build season when there is no longer a quiet moment in the shop. The chop saw, band saw, lathe, hand tools, and power drill sounds are now filling the air. It’s time to get stuff done, make a bunch of mistakes, and learn as much as we can as fast as possible.

YouTube Playlist of Prototypes

As we make our way through the beginning of the season we will do our best to capture all of our prototypes on video and share them with the FIRST community. We believe that as we learn from our successes (and even more importantly our failures) the community can benefit by following along. For that reason we have set up our YouTube playlist for the Build Season 2023 - Robot Development.

We hope you enjoy, and in the world of YouTube… we hope you Like, Comment, and Subscribe!

Notable Prototypes

Here are some of the more notable prototypes so far:

Cone - Dual Axis Star Flipper

Cone - Four Wheels Vertical

Cone - Weed Wacker

Cube - Blue Star Wheels

Lessons Learned

Our prototypes have taught us a great deal so far about the dynamics of the game pieces and how they interact with the wheels and materials we have available in the shop. Additionally, thanks to the field build team we also have the field tape laid out and the field elements have started to be built allowing us to better understand the scale and space on the field. Items of note so far:

  • This field is really tight, and the common driving paths will cause a lot of congestion, not only with opponents but also with partners entering, exiting, and playing in the scoring areas
  • The cubes are really compressible, and most intakes designed for balls will work on them, it is not necessary to treat them like 2018 cubes.
  • We initially tested with a 3D printed cone, but the tip wasn’t done printing, which caused the unfinished 3D printed cone to flip easier in front of the robot than the real cone. The real cone needs a significant amount of space in front of the robot if we want to flip it there using an intake mechanism.
  • Star wheels and compliant wheels with the outer edge removed have a really good grip on the cones and work great for flipping/intake mechanisms.

Next Steps

We will continue to explore new ideas as we come up with them, and also test ideas we have seen from other teams in Ri3d, #openalliance, on the FRC Discord server, and here on ChiefDelphi. Additionally we are working on making higher fidelity prototypes of our most interesting and promising designs, moving them into CAD and having some parts laser cut out of wood by one of our mentors, and from aluminum / steel from one of our sponsors.

This post was written / compiled by: @Justin_Foss


I always look forward to your prototypes. The weed wacker and dual-axis star flipper both look pretty promising and I’d have never thought about doing it like that. I’m looking forward to seeing what else you come up with.


The cone Weed Wacker looks incredibly promising. For those unaware, here’s another video of this design from the 4481 YT Channel showing it picking up cubes both pointing away and towards the chassis and standing them upright:

This design can presumably pickup a cone in any orientation, although some refinement is needed.


Are you willing to share the dimensions of the intake in this video?


  • which wheels are you using and how large are they?
  • what are the distances horizontally and vertically between the rollers?



The video you linked is a little older.

This one is from an hour ago or so and seems to be more dialed in:

They’re working on a sketch that outlines all the important dimensions. Once that ready they’ll post it.

The wheels in the last video are all 4" wheels. Combination of fairlanes, stealth wheels and compliant wheels.
We’re waiting on an AndyMark order with extra compliant wheels.


Did your second-order swerve code ever get published?


Pre Season Software Release

It took a while because we had to iron out some bugs while merging code between WPILib 2022 and the 2023 beta, but I’m happy to announce that the 4481 Stock Robot code for the 2023 season is now live on our Github page!

This release includes changes to our Path Planning system and our custom Swerve implementation.


Update #2 - More Prototyping, Yes More

If you’ve been following along, you know we’ve spent all of week one working on prototyping while our 3DM (Data Driven Decision Making) team has focused on analysis. To close out the week, here is a recap/spotlight on some of our prototypes.

YouTube Playlist of Prototypes

Remember we post all of our videos directly to our YouTube playlist for the Build Season 2023 - Robot Development. We hope you continue to enjoy, and in the world of YouTube… we hope you Like, Comment, and Subscribe!

Notable Prototypes

Here are some more notable prototypes so far:

Cube - Ri3D Redux Intake

Cone - Ri3D Redux Intake

Cone - Pinch Rollers

Cone - “Verticalizer”

Cone - Pneumatic Pinch With Gravity Rotation

Fun Prototypes

Here are some of the more fun prototypes so far:

Cone - Double Weed Wacker

Cone - Launcher?!

Lessons Learned

Cubes = Balls, enough said on that one.
Cones = One of the most interesting and challenging game pieces we have had.

Next Steps

It’s approaching the time where we start to move from prototyping to living in front of the computer screens. That’s right, it’s time to go from plywood and left over parts to CAD and custom sheet metal and polycarbonate. We will be looking to combine some of our favorite prototypes into a mockup of subsystems on a chassis to get an idea of how it all works together.

This post was written / compiled by: @Justin_Foss


Week 1 | Team rembrandts Buildseason 2023 Recap video

Week 1 | Team rembrandts Buildseason 2023
Fail fast, learn faster is our motto which is especially true for week 1!

We’ve gained a lot of insight in what concepts work, what isn’t succseful and what the important parameters are for our overall design.

Let’s look back to a very productive but most importantly a very fun week through our week 1 recap video!

This post was written / compiled by: @Sandwich21


Game Analysis

Having a successful season requires building a strong robot. Building a strong robot requires a strong strategy. Having a strong strategy requires a high level understanding of the game. This year’s game, FIRST Charge up presented by Haas poses a new challenge to teams once again.

This analysis is a follow up to the game analysis we already started in our Kickoff / Reaction Post. We’ve started analysis on several different things, chief among them: Where do we want to score? and how quickly could we score? Both are going to be invaluable in not only deciding what we should build but also how to test them, when are they performing to the level we need them to perform?

Location Scoring

To start by stating the obvious: scoring links is going to be very beneficial. An easy calculation shows that even when scored on the highest level it gives you a 33% scoring bonus over three unlinked cones or cubes. This does mean that it seems necessary to either score on the low level a lot, or to be able to score both cubes and cones.

We’ve narrowed the options down to three ways that we think we could do and are worth looking into. These are: scoring everywhere with both cubes and cones, scoring on the middle and low levels with both cubes and cones, and scoring on the high level and lower with cubes, but on the middle and lower level with cones.

As a short reminder this is how that would look points wise, with on the y-axis how much cargo was scored in autonomous and on the x-axis how much cargo was scored in tele-op. For these charts we assume that you always make as many links as possible.

Scoring everywhere with both cubes and cones:

Scoring on the middle and lower levels with both cubes and cones:

Scoring on the high level and lower with cubes but on the middle and lower with cones:

As expected, scoring high and lower is obviously scoring a lot more points, but the third option is a lot closer in certain scenarios when you’re not scoring as much. The reason this third option was chosen is because we believe that we could potentially shoot cubes out of our intake, this would make it an easier mechanism for the cones and would also be slightly faster when scoring them, which would decrease our cycle time.

When you compare the high and lower scoring option with only scoring cubes high you do see that after a couple of cycles you need to start scoring way more cycles to keep up. In the chart below you can see how many tele-op cycles extra you would need to outscore it this way.

After you score 2 or more cycles in an entire match it becomes very tough to outscore high everything, because you can’t link the cubes on the highest rungs so they become basically bad decisions to score unless you can’t reach the 3 more pieces of cargo to get a link anyways. Not only would this be very hard to predict with how chaotic matches can be, but even if you could, with 3 or more cycles certainly being realistic it becomes very unlikely that we could score 2 cycles more just because shooting cubes would be slightly faster (especially with full court cycles this year) or because a less development time to just score middle would give us more practice time.

Cycle time analysis

Field layout

How are we going to make a strong cycle time analysis without understanding the field FIRST? Get it, FIRST. . . uhm yeah Right, Back to the topic. The field for Charge Up has quite some interesting aspects to share.

First, we’ll look at the layout of the field and check which zones are the most relevant places on the field to be. You can see it as some sort of “health map”. The zones indicated by a number are the “places to be”. Not only does this give an indication of driving distances but it also allows for a very first strategic discussion.

For example, where on the field would you want to play defense and is it worth it? Quite a big question to ask yourself.

Of course each zone on the field has its own specific function to the game. In the table below we share what these functions are and how they affect gameplay. In the comments we’ll note important limits or factors to keep in mind.

Nr. Name Gameplay task Function Comment
1. Grids Scoring Cube/Cone Scoring 27 scoring positions (12 cones) (6 cubes) (9 combo positions)
2. Charge station Docking/Engaging Scoring Docking/Engaging during autonomous/ Tele-operated. Angle changes depending on weight balance on the charge station.
3. Loading zone Grabbing Cube/Cone Pickup Cones and Cubes are grabbed from single substation and double substation. (Double has a placing pad and a dropping gate. Single substation has a dropping gate. Cones will not always stand upright.
4. community Scoring Cube/Cone Scoring 3 ways to enter the community: cross charge station, pass in between charge station and barrier, in between charge station and field border. Robots can start the game from anywhere in the community.
5. Staging marks Grabbing Cube/Cone Pickup 8 game pieces located (4 cones and 4 cubes) alliances can choose the line-up on their side.

At this point we have not yet looked into scoring data or game rules. These follow as we understand how the field works.

Scoring table and time assumptions

Let’s look at the scoring table. FIRST has made it a good tradition to add this to the game manual! We’ll only have to look it up and use it for our analysis.

In this game one of the first aspects to notice is that scoring on different levels actually does give different point valuations. You might remember 2019 where the scoring position didn’t mean anything to the amount of points an alliance would gain. Only the scored game piece mattered. In this game it’s the other way around. Another aspect that immediately caught our eyes is the importance of strategic scoring. The scoring location in this game can impact your score and your ranking due to the link and co-opertition system.

It really boils down to this: It doesn’t matter what you score, as long as you place your game piece in the right spot. Now, this isn’t completely true as you can’t score cones or cubes on every scoring location. Some are only for one type of game piece but in essence this is how we look at it.

Award Awarded for… AUTO TELEOP Qual. Playoff
MOBILITY each ROBOT whose BUMPERS have completely left its COMMUNITY at any point during AUTO. 3
GAME PIECES scored on a bottom ROW 3 2
scored on a middle ROW 4 3
scored on a top ROW 6 5
LINK 3 adjacent NODES in a ROW contain scored GAME PIECES. 5
DOCKED and not ENGAGED Each ROBOT (1 ROBOT max in AUTO) 8 6
DOCKED and ENGAGED Each ROBOT (1 ROBOT max in AUTO) 12 10
PARK Each ROBOT whose BUMPERS are completely contained within its COMMUNITY but does not meet the criteria for DOCKED. 2
ACTIVATION BONUS At least 26 total CHARGE STATION points earned in AUTO and/or ENDGAME. 1 RP
Tie Completing a MATCH with the same number of MATCH points as your opponent. 1 RP
Win Completing a MATCH with more MATCH points than your opponent. 2 RP

In order to estimate times we’ll need to do some assumptions based on previous years. We’ll go through these one by one. As you might expect, changing these assumptions will have an impact on your cycle time which in turn impacts a robots overall performance.

Variable value Unit
Collecting Cone / Cube 1,00 s Amount of time it takes to collect a game piece.
Scoring Cone / Cube 1,00 s Amount of time it takes to score a game piece.
Average drive speed 3,50 m/s Speed at which the robot travels. (11.5 ft/s)
Drive over charging station factor 1,50 n/a A slow down factor for driving over the charge station.
Docking + Engaging 2,00 s Time it takes to dock and engage a robot.
Inch → Meters 0,0254 m Yeah we’re European, we kind of need to use a different system.
Total time Auto: 15 s Time available in autonomous.
Field width 8,0035 m Width of the field.

Autonomous cycles

The pieces for our analysis are set in place. Let’s be honest, this is the part you’re reading this blog for, aren’t you? Before we do, we’ll have to keep in mind our starting position. This can be any spot within the community. We’ll assume 3 starting positions, but to keep this post slightly brief we are only focusing on one start position, the other two will look very similar anyways. Now the analysis. We’ll use the scoring table and assumption table to give ourselves an indication for each cycle.

The main question here is simple: What do we think is possible within 15 seconds?

2 game pieces high → Docking + Engaging (Position 1)

Afbeelding met tekst, scorebord, schermafbeelding Automatisch gegenereerde beschrijving

Action Time
Score Cone 1,00 s
Move to Cube position 1,18 s
Pick up Cube 1,00 s
Move to scoring position 1,63 s
Score Cube 1,00 s
Move to Charge station 0,85 s
Dock + Engage 2,00 s
Total time 8,65 s
Points 27,00 p

3 Game piece and no Docking + Engaging is 5,80 sec.
Without engaging the score becomes: 15.
Drive time*1,5 because driving over the charging station takes more time.

3 game pieces high → Docking + Engaging (Position 1)

Afbeelding met tekst, scorebord, schermafbeelding Automatisch gegenereerde beschrijving

Action Time
Score Cone 1,00 s
Move to Cube position 1,63 s
Pick up Cube 1,00 s
Move to scoring position 1,63 s
Score Cube 1,00 s
Move to Cone position 1,70 s
Pick up Cone 1,00 s
Move to scoring position 1,70 s
Score Cone 1,00 s
Move to Charge station 0,85 s
Docking + engaging 2,00 s
Total time 14,50 s
Points 33,00 p

3 Game piece and no Docking + Engaging is 11,65 sec.
Without engaging the score becomes: 15.
Drive time*1,5 because driving over the charging station takes more time.

Tele-operated cycles

For tele-op cycles we pretty much want to find out how quickly we can drive back and forth on the field. This game has a full field cycle. We haven’t calculated cycle times for the staging mark game pieces. The reason for this is because these aren’t consistent pick-ups as many things can happen during the game that influence their position. Besides this, some of these might be placed already once tele- op starts.

We can find a cycle time by understanding pick and place times and calculate how long the robot travels from point A to point B and back to point A. Now the pick up and places times depend on your sub systems. These estimates might change depending on proto type results. The travel time can be found if we know the distance and robot travel speed in m/s.

The first figure is a rough straight path for the robot to travel. We purposefully went for these points as their coordinates can be found in the official field drawings. In order to keep the calculations simple we’ve not determined individual times for each scoring position. At this point that would be overdoing things due to the amount of assumptions in our variables.

As you can see, the distance can be calculated by using geometry. The right top corner of the field in the image is taken as reference, you can see the yellow dot. Now you might say, well, but what about the bottom scoring position? You do have to drive quite a bit further right? Wouldn’t that take longer?

The answer is: yes it does. The difference is about 1 meter of drive distance. You can pretty much fill in the blanks. The result is about 1 to 1,5 seconds extra per cycle.

Afbeelding met tekst, scorebord Automatisch gegenereerde beschrijving

Cargo collect Time
Drive to collecting location 3,62 s
Collect game piece 1,00 s
Move to scoring position 3,62 s
Score game piece 1,00 s
Totaal 9,23 s
Points 6,00 p
Points per second 0,65 p/s

Assuming a scoring position as starting point. Then moving to collect position, then moving back to scoring position.
So: 3->2->1->2->3

Approximate cycle time: 9,5 / 10,5 s
Total time (tele-op) 135,00 s
Total time (auto) 15,00 s
Cycles completed 12,86 cycles
* Assumed as a theoretical “max” with the assumptions in our tables.

Lessons Learned

With our analysis we can conclude several things. First let’s look at our autonomous cycle times.

  • Scoring high with both cubes and cones is going to be the way for us to score the most points we can.
  • 3 game pieces → Docking + engaging seems to be a reach, but will be incredibly tough to reach consistently. The cycle times add up to more than 15 seconds and you could see that our estimates might be forgiving too.
  • 12 cycles in tele-op seems to be a theoretical max with our assumptions. This means that it seems impossible to solo reach the link RP at all as you’d at least need to complete 15 cycles.
  • Due to the long time each cycle takes it will be very important to score your gamepieces at the most optimal position. The link bonus adds up as it basically grants 1 free high scoring game piece (5 points). With a link, 3 high cycles add up to 20 points. Without it, this would only be 15 points.
  • Flexibility in autonomous mode will become key. The charge station adds some strategy to the autonomous gameplay. It seems to be a reach to score 3 game pieces and dock + engage during auto. Therefore splitting up strategies might benefit you flexibility towards alliance partners.

This post was written by: Gijs de Veer and @tijnn


At 3 game pieces per link and 5 links (4 with coopertition) for the RP that would be 15 cycles (12 with coopertition) to get the RP, no?


You may want to consider driving to the middle of the field as a potential auto as well. Remember, only one robot gets credit for docking/engaging in Auto. Could be worth going to the middle to prepare for tele/cut down on first cycle.


I was thinking about this part, and this is where our prototypes are.

Flipping a cone

Lifting a cone

I’d probably have a redux intake front (funnel) in the channel, and then a pincher grabber at top of slope.


Is there any update on this? Thanks!

Here’s a link to our v2 sideplate solidworks files: 2023 CAD - Team Rembrandts - Google Drive

Don’t have the sketch on hand. The hole pattern matches that of the REV tubes and we used it to test different heights relative to the ground.

I asked within the team again and they said they’d post the sketch tonight! Sorry for the delay.