On behalf of FRC Team 3544 Spartiates from Montréal, Québec, I am happy to announce we will be participating in #openalliance this season. Having greatly benefited from OA last season, especially in the first weeks where were online only, we decided we were in a good position this season to be ones to give a hand to anyone that could need it by sharing our discoveries, processes, CAD, code, progress and more.
It’s fair for me to say things almost never went the way we wished to in the past seasons, but we do recognize our successes from last season, even though we didn’t perform like we wished to.
To making our first ever turret, CNC machined parts and waterjet parts. To making our first real good CAD with every subsystem. To programming vision and a decent autonomous for the first time. To having a decent looking build schedule and team management. Above all, to having team of dedicated students and mentors that work well together and have fun doing so, there were so many firsts for us last year that we can only be proud of all we accomplished.
We now take this pride with humility this season knowing that a new challenge awaits, but we are certainly ready to take it head on, and we can’t wait! Hoping that you will find our thread to be of any meaningful insight.
I can say this game looks very interesting and we like it a lot! I also figure it would be interesting to let you know how we plan or working for these next few weeks and what you can expect from us. First of all, the actual documents our team uses for our build schedule, strategic design and more are mainly in french since we’re based in Québec, but we will make sure to translate the relevant points here for everyone to follow. We will still share our progress on those documents for alll as soon as we have something to present (maybe the end of this week). And if you understand french then great! There aren’t that many francophone teams or ressources here, so the more the better.
WEEK 1 STRATEGY AND DESIGN GOALS
Our team objective this season
Game and cycles analysis
Define our main strategy outlines
Define priority list of robot operations
Define necessary subsystems (not specific yet)
Define subsystem priority list
Define control system features priority list
Prototyping!
Define strategic objectives and constraints per subsystem
Define their equivalents on the robot
Official beginning of CAD per subsystem
Our main goal is to be able to start fabrication and assembly of our subsystems during week 2, starting with our highest priority subsystem, the drivetrain. We also want to limit the number of subsystems we try to make this year to around 4, compared to the 6 we made last season. This should naturally give us more time for tests, programming and iterations and give our team a better chance at having a competitive robot.
If you have any question about our strategic design process, do not hesitate to ask or reach out! We will keep you updated with our findings this week as soon as we have something.
Bonjour !
I love this! Robo’Lyon wishes you all the best for this year and we are really looking foward to reading more as you post new updates !
We also have our own build blog with openalliance!
See you very soon in Trois-Rivières!
Likewise! We’re also happy to see you with openalliance and can’t wait to read about your robot and to share more with you. Good luck with your strategy meetings! The Trois-Rivières regional looks like is gonna be a lot of fun
SEASON OBJECTIVE, STRATEGY OUTLINE AND PRIORITY LISTS
Bonjour,
After a good analysis of the game, we have now set our season objectives, defined our strategy outline, and completed our 3 priority lists. All of those things might still be subject to change this week, but we are confident with what we have right now. We have a philosophy to follow priority lists methodically, meaning we will sacrifice elements lower on the list to make sure that what we think is more important doesn’t get compromised. Allow me to present you with what we have so far with some brief explanations.
With the return of a pick and place game and our past experiences, we are confidently aiming for a top 10 at our regional. This objective shapes our strategy and revolves around getting the most RPs possible during qualifications and working as a team for the win during playoffs. Our season objective is set, but our strategy will be further developed as the weeks go by to encompass more situations and feature more of our robot’s capabilites as they come along.
Our robot operations priority list is highly inspired by 3847’s Task priority list. We chose to put only 20 points instead of 27 since we believe this is a good amount of operations for us to try to achieve. An important consideration for us while making this list was the importance of picking up tipped cones and placing objects on the high nodes. Like many teams, we really wish we could just do those two things, but we realize that would mean our robot would do everything, and we learned our lesson again last season. We are better off aiming for less but do it a lot better and focus on some of our strengths like reliable and quick drivetrains or robust structures. However, we still decided to keep those two things at the end of our priority list in case we find that miracle solution.
Like I said in a previous post, we decided to limit ourselves to 4 subsystems this season instead of the 6 we attempted last season. We already see how complex some of them might become, so we are happy to not have more. We believe the key to a good performance is in programming since every subsystem here can benefit from a lot of automation. We had an interesting and positive experience with a lot of discoveries last year with programming features. That brought us to make a programming features priority list for the first time.
While making our list, we realized we still have a lot to learn, and is the list we are the least confident with for now as it is the most likely to see changes. It was still a good exercise to imagine what our robot capabilities could look like more accurately. We will make some research to validate some of our ideas here and see how we will actually tackle them as a lot of things on this list are new to us.
LIMELIGHT 2 IN 2023
We have a Limelight 2. After seeing the release video for the Limelight 3 and reading about it, we are a bit scared to be left behind with our old and expensive hardware. For now, our programmer is installing PhotonVision on it to see how it works with apriltags and more. We will also wait for the Limelight software updates to see how we can benefit from them, if at all, as the updates seem to be advertised for the LL2+ only. Our goal, for now, is to take our current hardware as far as we can, and we will let you know what we find out if you ever find yourself to be in a similar position.
WHAT IS TO COME FOR THE REST OF WEEK 1
We are starting to conceptualize our subsystems now. Our goal is to write down what kind of strategic constraints and objectives we want every subsystem to have, to then think about how exactly they will achieve them. We should also be starting our drivetrain’s CAD pretty soon to be able to start some fabrication next week.
We’re also working on how we will manage the different tasks efficiently and stay on schedule. We are working on a team specific build schedule and work planning model that is easy to adopt and understand, which is a challenge in itself but know it will be worth it in the long run.
We like how things are looking for us right now as everything seems clear, for now at least. Also, you will soon hear from different team members soon with the season advancing and us finding more things to share.
At the end of week 1 we pretty much know what we want to build to realize our strategy and objectives. A tank drive with a hybrid game piece manipulator mounted on a double-jointed arm on a turret. We’re almost agreeing on how those subsystems will work, so we went ahead and did some sketches to validate the geometry of our concepts. We also had a little time to throw together a prototype.
We also bought the wood to build the field. As of now, we have the grid to prototype manipulators and we should build (or almost) the charging station and human player loading structures by the end of this week
WEEK 1 PROTOTYPING: CONE GRIP
We didn’t get very far in terms of prototyping this week, but we were able to test the grip on the cones a little bit. We found out that the 50A andymark blue wheels had more grip on the cones than the 45A vex flexwheels. What we think is that the compression of a harder wheel applies more force to retain the cone. The cone is also very soft so maybe using soft wheels on a soft object might not be the way to go.
So we decided to go with a double jointed arm on a turret. We believe we can reach all our objectives and facilitate alignment this way. The goal is to be able to intake both game pieces with the same manipulator. As a lot of prototypes from other teams are showing, it is very much possible, but we will have to work on prototypes of our own since this is the subsystem we have the less clues on how it will look or function. We are not aiming to pick up tipped cones either. Our current geometry should allow us to pickup cubes from the ground, game elements from the human player stations and to score them on the low and middle nodes.
Our main strategy doesn’t include scoring on the high nodes, but that might change if we ever find during our design process that we can easily make a robust and reliable arm to reach the high nodes. We are very cautious with attempting the high nodes since we don’t want to overshoot our objectives and end not scoring well anywhere at all. This is a subject we’ll have to keep debating on.
Since we had a positive experience with the turret and alignment last year, we’re confident for the controls part, but we undeniably need to reinforce the turret structure to the drivetrain to make sure it will hold during the game.
BEGINNING OF CAD
I’d say there’s not much going on here, but it’s a good start. The main challenge is integrating the arm to the turret and the turret to the drivetrain in simple way we can do it within our capabilities, but still be very solid as to not break during high intensity games and still keep a low center of gravity. A lot of rough edges and ideas, but the goal is to polish those progress a lot on CAD this week.
We have a lot of constraints on our subsystems with our current design. The complexity of integrating a turret to the base of the drivetrain that rotates multiple mechanisms brought us to decide to wait before starting our drivetrain fabrication and put more resources into designing a robot that integrates every subsystem better. We’re still confident we can build a good robot with our concept, we simply want to make sure that our design stands up to our expectations in terms of quality. Right now would also be a good time to start painting parts we know we’ll need to be ready before fabrication and assembly.
We also spent some time fiddling with our lovely CNC router to make sure we can use it efficiently. This may become useful this week to prototype and choose a manipulator concept.
We will also share a more in-dept analysis of the strategy to visualize where our goal stands compared to oher potential robots and better estimate how many points per game different type of robots can get every game.
Great post! What decision made you go for a double-jointed arm? Did you do any prototyping? Have you ever done a double-jointed arm before? I like the idea of the turret!
https://youtu.be/VroAYlPGBzE 3544 Spartiates brings a fresh look to The Open Alliance Show by opting to forgo the high nodes with quick and effective scoring. 3544 provides a CAD overview, details how they approach project management and showcases their intake prototypes
During week 2, we focused on our CAD and on manipulator prototypes. Aside from great progress on our CAD, we tried a few different quick manipulator prototypes. We also went the extra mile with our team management this week, presenting every document to the team to allow everyone to get a glimpse of what is happening in every subteam. We decided to have 15-20 minutes general meetings on Tuesdays to go through our schedules and adapt if we get delays or if the situation changes. You can see all of this with some explanations in our FUN video.
The goal with those prototypes was to figure out how to grip on cones and cubes and to experiment with how we can fabricate prototypes. It’s the first time we actually try to prototype many different concepts so it’s a challenge for us, but we’re also learning a lot along the way. Designing and fabricating good prototypes also takes more time and resources than we thought, so we will try to make fewer prototypes, but with better quality, to the point, we could actually mount them on the robot. My prediction is that the line between prototyping and iterating designs will be very blurry for the game piece manipulator, but that’s kind of desirable if we want the best outcome.
WHAT’S TO COME FOR WEEK 3
We were missing a roller prototype, so we will be making one with better quality than our previous prototypes as this concept looks very promising to us and seems to answer to our design goals. We will attempt to figure out the spacing between shafts, compression of the objects, and angle of approach for both game pieces with this prototype.
We will fabricate those plates using 1/4’’ polycarbonate on our CNC to make sure to structure holds for the tests to come. This is an upgrade from the 1/8’’ MDF board we used on our previous prototypes which wasn’t strong enough and broke multiple times on us.
Our progress with the design team these last few weeks allowed us to start ordering the necessary parts so that they can arrive this week and start the fabrication of the drivetrain this weekend. Our goal is to finish everything else on CAD except the manipulator before Friday to be able to send every big custom part like the bellypan to be manufactured next week and hopefully receive them for start of assembly by next weekend. We will also start making our shopping lists for hardware and tools we will need for assembly.
Also, we wish good luck to our FTC team 20274 that will be competing at their regional event this Saturday. This also means that starting next week, all of our mentors will be able to focus on FRC and we’ll be able to count on a few additional helping hands from our FTC team. We will also go from 3 meetings per week to 4-5 in February.
We have end of term exams at our school on Thursday and Friday, so don’t forget to study, and good luck everyone!
How to start this. We’ve been extremely busy with everything including CAD, prototyping, fabrication, ordering parts and hardware, t-shirt making, making a new robot cart and our impact award submission among many other things. I’ll do my best to summarize.
CAD
Apart from the manipulator which is at the end of the prototyping phase, the rest of our CAD is well advanced, enough to start fabrication and send parts that we can’t do in-house to be fabricated. You can view our CAD here: Onshape And here are some pictures of our progress:
Drivetrain
Our drivetrain is a 4 Falcon WCD with 5" wheels on a 6:1 gearbox. We are betting strongly on speed and high maneuverability and driver practice to best the swerve drivetrains we’ll play with or against. We also did a hex-patterned bellypan again this season cause it looks very cool.
Double-jointed arm
Our arm is a very neat subsystem. It uses the upper axle as a dead axle and a live axle at the same time. The goal with this was to keep both gearboxes as low and as centered to the robot as we could to help with our center of gravity. The arm itself should be pretty light, with the heaviest part being the manipulator at the end of it which is still to come.
Turret
Our turret is based on the WCP GreyT turret. We used it last year on our robot, but we are remaking every plate to adjust them to the mounting on this year’s robot and some of the cuts we made last year made the turret hard to reuse as it was. We are also buying new bearings and replacement hardware. The motor also now features a MAX 90 degree gearbox to allow the turret to be as low as we could mount it within our capabilities.
We’ve done a bit of prototyping so far, but we decided to try a version of the everybot intake. This design is very versatile and quite a lot of variables can be changed like the type and size of wheels used, the space between the axles, and the angle of each roller pair. We prototyped with 2 different models and a few combinations of wheels. Our goal is that our next design makes it onto the robot, keeping the possibility that we might want to iterate it. Here are some images of our prototyping.
Our goal was to focus on the 1st and 2nd level of the grid to place cones and cubes. Well our design reaches the highest level as well. We still want to focus on the first two levels but… But having the option to aim for more later is still very nice to have, so we’ll keep our design that way for now. We also have the possibility of adding a second backup configuration of arm lengths since the only change is just the cuts on the tubes which might be helpful if we ever need to swap things.
We are almost done already with the fabrication of our drivetrain and arm already. The other parts like the turret plates, based on the WCP turret, and our Bellypan are sent to be machined by a company since we don’t have the capacity in-house.
Everything we send are 0.125" aluminium plates to be waterjet. Having every part made the same way keeps costs reasonable for us. It’s the 3rd time we outsource parts this way and it gives us really well made parts.
The cuts on our 2x1 and 1x1 MAXtubes are all done and were pretty easy to make on our cirular saw. However, the bearing holes gave us more trouble than we thought. First of all, our stepdrill gave and stopped drilling due to excessive ware through many seasons, so we had to buy a new one. But still, it was hard to make really well centered bearing holes, even though we used the 10 holes already on the stock to guide the drill. A few holes were up to 0.018" off-center, which worries us about alignment when we’ll do the assembly. We have the capacity to do them again, but we would like to avoid wasting new MAXtubes if possible. We might also try other solutions, like usign bearing blocks if the problem persists. Here are what the off center holes look like. One of our mentors made a 1" hole using better equipement to test the MAXtubes.
Drilling all the way in one go
The 10 holes make it easy to see how the 1" hole is a bit off center. And in this case, it’s a skilled mentor that made the test using better equipment we usually use at the school.
The first conclusion is that we may be a lot less well equipped than we thought to make centered holes. We are using a small drill press that might not allow us to make such big holes with precision.
The second conclusion is that the 10 hole grid on the MAXtubes are kind of… oval. We haven’t measured precisely but some of the holes on the grid seem kinda off. There are some other slight manufacturing issues on the tubes we have that we noticed. We don’t know if that’s a common issue or if another team brought that up, but we could share more about it if you are curious about it.
PROGRAMMING
This part was written by our Lead Programmer.
Bonjour everyone! I’m Charles, the lead programmer of team 3544. This week, we’ve achieved a ton of progress on both a vision subsystem and just general programming stuff.
As of now, we’ve setup a basic 3D Apriltag tracking solution using a Limelight 2, although we are planning to get a Limelight 3 soon. I’ve observed an average FPS of about 20 at a 640x480 resolution, which is generally sufficient for basic vision. You can get higher FPS with a lower resolution, although tracking range is somewhat hindered.
We have also started writing some basic code, even if we don’t have the full robot yet. We’ve chosen to use command-based programming this year, which allows us to have more “modular” code compared to a traditional project. Lots of subsystem code is already in place, but we’re waiting for the robot to be a little bit more complete to start writing more in-depth commands.
Drivetrain, arm and turret subsystems already have their basic code written. All that’s left is to test it on the robot and to tune some gains. Since we mostly use Falcon 500s, we’ve opted to use Motion Magic to accurately control the position of our arm and turret. It also makes their movement much S M O O T H E R compared to a traditional PID controller. Some vision code is here as well.
As always, if you want to see what we’re cooking up in more detail, don’t hesitate to check out our GitHub repository, where you can always consult our most recent code
T-SHIRT MAKING FOR OUR FTC TEAM
Unexpectedly, we found ourselves making t-shirts the day before our FTC team’s competition. It was the first time we tried making shirts on our own and after a disastrous first attempt, we were able to make something that looks very nice. We liked doing that so much that now we decided to also make the t-shirts for our FLL teams as well in the following weeks.
You might want to try a hole cutter for making bearing holes. Not the bi-metal kind, but one of these. I’ve got the Greenlee 645 one (backordered) and it can make a snap fit for bearings with a hand drill! If you use a drill press set it to the slowest speed. Expensive, but one of the best bang for buck tools I’ve bought for FRC.
I was so busy I didn’t even see your question! At first, we kinda threw the idea during our brainstorm at the beginning of the season. We wanted to avoid going with an elevator since we don’t have any experience with them, so an arm made a lot of sense for us, and a double-jointed arm allows for a lot of reach and more control on the angle.
For the turret, while it is the lowest subsystem in our priority list, in a competitive sense, we think it’s a must have if we want to be better than teams with a swerve drivetrain. We believe we can easily expect around a dozen teams will have swerves at Trois-Rivières.
https://youtu.be/TG8UsfVX_3I 3544 Spartiates is back to show off their progress including an overview of CAD, demos their turret, intake and vision functionality and provides more on their assembly progress
It’s been a while :') Our last update was a month ago. As you can imagine, we were pretty busy the robot construction, but also hosted FLL qualifications with 24 teams, made t-shirts for our FLL teams and worked on our Impact award submission and video. Now we’re back from spring break and things are looking bright. Here is what our robot looks after the last month’s progress:
We finished our robot mechanically this weekend by mounting the intake. Right now, we’re about at the same point we were last season when we had 1 or 2 days left before our event, so we’re excited to have about 3 weeks to make sure our robot is as performant as we can make it. We still had some deadline issues and are about 1 week late on what was originally planned. With only minor fixes and tuning on the mechanical side, if we finish all our cable management and get to testing the basics, we should recover from our 1 week delay. To help recover, we also decided to give up on painting the whole robot, which was a step we already planned to skip if we had delays. We updated our CAD with the colors we’ll have for the competition:
Our intake is simply our take on the triple roller concept from the everybot. We thought we couldn’t go wrong with that choice and it would allow us to have more time for testing and iterating if needed. Of course, we still did our own design and are pretty proud of the look and pocketing on the polycarbonate and the finish from our CNC. By the way, the intake is the only subsystem we haven’t shared here yet so here are some pictures:
We’re basically taking the whole robot apart right now for the sake of clean and secure cable management. We’ve had varying experiences in the last seasons with electrical connections and so we know very well what can happen during the intensity of an FRC match. We’re printing labels for everything and remaking our electrical panel to really make sure we leave no stone unturned. We didn’t have that kind of time last season so we really see this as an amazing opportunity to make our robot even more reliable! You can see we took the whole arm off the turret the get a clear view of everything:
We’re also advancing well on the programming side. The basics of the code are already pretty much done, but we had to do some fixes. We initially programmed our 2 arm stages to set positions with motion magic using the Falcon 500 integrated encoders. It worked just fine before we put the weight of the intake on the edge of the arm. With all that weight now, there’s a big dead zone with all the play on the chains and sprockets. Here is how it worked before:
We believe to have fixed that programming problem by installing CANcoders on the hex shafts closest to or directly at the axle we wanted to control. We can make sure we read the actual position of the arms that way by skipping all the play and backlash with the chains and sprockets. Since we took everything apart, we still have to test that out.
Otherwise, we tested some code for apriltag detection and zeroing our turret back in mid-February as featured on our openalliance live show on February 14th. We haven’t progressed much more with our code, but I think that what we currently have is a very interesting starting point considering we will have at least 2 weeks to put it all together and practice. Here are some videos from our tests:
WHAT’S NEXT
I already feel like it’s the endgame now with events starting and our progress being as surprising as it’s exciting meeting after meeting. We will keep working hard, and will likely work even more late nights but our efforts are really paying off. We hope we’ll be able to see positive results from all of this.
For now, we gotta focus on our next event, our Robot Reveal night happening Tuesday March 14th at 7pm at our school! We absolutely need to have a cool looking and functioning robot by then to show our parents, teachers, friends, sponsors and the community. If you ever happen to live nearby and are free, vous êtes la bienvenue!