We are a rookie team looking for some help on programming the robot. I know we may be starting on this process a bit late in the build process, but due to the dynamics of our team (6 students, 0 expertise in anything this build requires and our mentor is at the exact same place as the students) we took things one challenge at a time. Below is our accomplishments and current challenges when it comes to getting our little bot moving.
Accomplishments:
Wiring the robot
Flashing the RIO
Getting the radio up and running (way harder than expected. Ended up using an old desktop to get it to work)
Challenges:
Programming the robot. We have no idea if it’s best to use C++, Java, or labview. We don’t even know how to use them. We built a very simple robot that can deliver gears with no moving parts. That means we only need to code for the motors powering the wheels and for the autonomous part of the competition (we kept it simple for our first year). We may add a climber if we have time, but that is a big if.
Limitations:
Budget: minimal.
Ability to get parts/supplies is extremely limited. We are one of the most remote schools outside of Alaska. Its a 4 hour roundtrip drive to the nearest walmart and 6 hours roundtrip to the nearest hardware store. Our mail delivery is very slow.
So what would be the best next step for our team to get programming? We are good to go for any challenge that this may entail. Our team motto is “Determination”. You could not even imagine what we have had to go through to get this far (seriously).
Great job knowing what you can tackle and tackling it. Delivering a gear in Auto as a rookie team is a great goal.
I personally would recommend using Java and RobotBuilder. if you have a basic drivetrain, this will take care of most of your needs with only basic configuration.
There’s a lot of discussion here on what’s the best programming language to use. The short answer is they’re all good. If you have a programming mentor, or someone with prior experience with any of the three, then use that. Generally, more teams use Java, and is generally simpler to use than C++. LabView is second, but offers a completely different paradigm than text based languages, it may take longer to learn for people already familiar with text based programming. Really, experiment with all of them and whichever one gets what you need done first is the one you should use. There is no “This is the best language in all circumstances” for every team.
As a rookie team with (I’m guessing) little on site assistance from veteran teams, it sounds great that you are getting a robot that can contribute to the game.
It would be good to post detailed pictures of your robot as there are several common ‘rookie’ mistakes that you may not know you have made.
Robot volume restrictions – be sure to have at least 1/2" of ‘buffer’ planned.
Bumper coverage of frame
Bumper construction and attachment. Use decent grade 3/4 plywood or a hardwood board (e.g. oak), not chip board, pine board, OSB, etc.
Everything starting inside your ‘frame perimeter.’ For example, if your gear handling piece is leaning out over your bumper and does not move, you’ve got a problem.
Wiring gauge and wire color. Since you mostly have only a drive train at this point, you will typically want 12 awg wiring to your drive motors.
Secure battery mounting. If someone can pull out your battery by vigorous pulling, twisting, etc. without explicitly undoing its securing mechanism, or if you batter could fall out if two people turned your bot upside down (or any other direction) and shakes your robot then you may have a problem.
Main power switch accessibility – It should be easy to reach quickly, without risk of injury from moving parts, but should also be immune from getting turned off from flying fuel or gears dropped near your bot.
Thanks for the starting point! We will check that out during tonights build.
We are not planning on using any sensors. As a rookie team we are trying to do one thing really well. We chose to do gears. Climbing would be a bonus and should not be too hard as it only requires an extra motor.
That would be awesome! After we get everything assembled i will get in touch with you for some inspection tips.
some sensors may help you do gears better. the KoP Gyro plugs in with no wiring, and you can get the angle back very easily. this might help you drive more accurately in autonomous, and if it doesn’t work, you can just not use it.
Our team used Labview depending on one students our rookie year, he graduated and we were back to square one.
I’m a data miner freak… so I got a table with data from every robot that connected to a field last year worldwide and found that top 2 were:
49% Java
35% Labview
With that in mind, we choose Java, ended up not using the robotbuilder but use it for training… found tons of example online and we had a driveable robot early on… fun part will be the setup for sensors, but we are happy with our move… younger kids are also learning java with FTC… so overall, it was a good move for us.
I will post pictures of our bot in a few days. Your list is fantastic! We are good to go on all the items in your list. We were not able to get our kit till a week after kickoff due to a snow storm making the only road out here impassible. We used that week to design and pour over the rules over and over.
like others have said, great job knowing and listing limitations, and overcoming the obstacles you have so far. Getting the kit a week late as a rookie is a pretty big setback.
How is your internet connection there? If you decide to do Java, I (or I’m sure several others) would help via skype or similar to walk you through questions in real time.
I see that your team is registered for the Utah regional. We are using Java this year, so if that’s what you choose to use, I’m sure our programmers would be more than willing to provide assistance at the event if you need it.
I would probably go with either of the text languages and Java is what we use, but like has been said before “pick what you know”.
I would also suggest you check a few other things too:
1 - Know (write down) how your motors and motor controllers are connected. This is called the IO map and is required to help develop the software.
a - Which PWM output from the RoboRio is the motor controllers connected?
b - Which output on the PDP is the motors connected?
c - are you using 1 or 2 motors per side and how are they connected to the PDP?
d - Update your RobotMap.java (or its equivalent) to update the motor controller locations from above.
2 - Are you using the default Joysticks or borrowing someones gamepad? I would assume the Joystick.
3 - Use RobotBuilder or modify one of the Example projects (in eclipse you can go to:
New->Other…->WPILib Robot Java Development->Example Robot Java Project (next)
Then select a simple project like the “Getting Started” project is the simplest
4 - Try your first tests with the robot up on blocks. That way it doesn’t run away from you when you test the code for the first time.
These will be a start. Please keep up the posts since a number of people are here wanting to make sure you succeed.
Sorry for not posting an update till now. Here is where we currently stand.
We have drawn up rudimentary schematic of the layout of how everything is wired up.
We downloaded and started taking a look at Java programming. (we did not spend a ton of time since there is still loads on our need to do list)
To answer some questions:
Internet- 90% of the time we have amazing internet. Computers on the other hand are very out of date. The Netbook that came with the kit is better than the staff desktops.
We hope to do with tank controls on a single xbox controller using both analogue sticks. If we get the climber done it will be controlled with a single button (trying to keep it as simple as possible our first year)
I will post how the motors are attached with a photo tomorrow.
Losing the first week to snow pretty much sucks. We don’t have a lot of power tools so everything takes a while to put together. We do have a welder though and lots of scrap metal. we have done a really good job keeping weight down. Once everything is attached we should weigh in at 95-105 pounds.
We downloaded the eclipse java program yesterday. We have no idea what we are looking at. Today we will go through the screen steps to figure out how to get the robot moving.
Our programming goals:
Autonomous: Get to the baseline for some points. It would be cool if we could hang a gear, but keeping things simple and getting it moving is a good start.
Teleop: Move the robot with a single xbox controller using both analogue sticks. if we get the climber built we want that to be controlled by a single button.
that looks like a great start - the only inspection issue i can see so far from the electronics is that the CAN wires need to be connected. Run a pair of wires from the RoboRio to the PDB. traditionally, the wires are yellow and green, but that’s not strictly required. the PDB has two yellow terminals and two green terminals. you only need one of each color connected to the rio.
I’d recommend tying wires down to the wood between the components. The simplest way is to staplegun in some staples to use as tie wrap points, or to screw on tie wrap mounts. Don’t bother with sticky back tie wrap mounts unless you also put a screw in it.
The more professional looking way is to get some 1" x 1" panduit and screw it to the board between some of your components, then run the wires through the panduit for a neat and contained look.
Great job! Kepp going with the screensteps and post if you have issues.
There is no really best language. Like others, I would suggest using a language your programmers are familiar with. Personally, C++ might be a bit harder than java but it all depends on your experience. There are lots of examples of drivetrain (tank or whatever you are using) code that you could use. I would suggest after getting your robot moving, try to get a gear on a peg in autonomous by trial and error. A gyro would make it easier. In the off season, you could definitely learn some more and maybe even look into vision tracking. Keep it simple though, you do not want to over complicate everything in your situation.
I second Java and RobotBuilder Watch these video’s https://www.youtube.com/watch?v=k7PaYcjDEDc&list=PLYA9eZLlgz7t9Oleid2wtlgnvhGObeKzp about robotbuilder.
The thing I like about Robotbuilder is that it organizes the code very well. Also with Command Based robot once you have a function working you move on and use it when you need it. Sometimes with the other robot programming types a edit can break the whole code. You do still need some understanding on using commands and ending them but you simple first year robot will not task the code skills very hard.
You mentioned you were unsure of what you were looking at when you opened eclipse.
Eclipse is an IDE (Integrated development environment) - i.e. a program to help you make program’s (in this case, java ones for your robot.) It also let’s you deploy, run and debug code on your robot.
Many people have mentioned using robot builder, and that is a good path to take. Another option, which I might just plug for my team, is using Arachne - a library my team made to make development quicker and easier. Importantly, it has a nice youtube guide on how to use it including installation, setting up drive motors, actuators, sensors and checks (checks are an Arachne thing) which are all explained here - https://www.youtube.com/watch?v=XmGCtnV0tq0&index=1&list=PLbbC2GOkau3WT_rqxHjYa_-5tqaGyea1-
If you do choose to use Arachne I and my team would be more than willing to help with everything - but of course, so is chief delphi for your other issues!
Either choice is fine, and while I think Arachne is good, if you have already started using, or understand more, or for what ever reason want to use RobotBuilder (or any other method) then that’s fine, and a perfectly good choice. Ultimately What ever works, works, and it is your robot.
Good luck, and if you need help I’m more then willing to try, Arachne or not!