VISIBOTICS LESSONS

Building a Robot

For a good robot, you need two drive motors, one or two sliders, two wheels, and a robot hub.  A total of four motors can used in First LEGO League.  Two motors will be used for the drive, and two motors can be used as manipluators, which are like the hands of the robot. 


If a line-follower program is desired a light sensor will be necessary. Spike Prime hubs have a gyro sensor built into it.  Gyro sensors can be used for navigation. 


The robot hub is attached to a strong LEGO base. It is important for the drive motors to be attached at multiple points to effectively translate power to the wheels.  This helps the robot drive straight.


Sliders are used to stabilize the robot. Attach any sensors desired. Manipulator motors can then be installed. The last step in connecting the wires of the robot components to the hub. 

Attachments

Attachments are important for a good score in the robot game. Attachments are lego-built creations designed to complete missions in the robot game. 


Attachments can be passive or motorized.  A passive attachment is not connected to a motor and activates with the motion of the robot itself.  For example, a lever attached that hits a target as the robot drives.


There are many ways to activate attachments. A dog gear system is one such way. A dog gear system is a form of a clutch system. A clutch translates motion one axle to another. This is useful as attachments can be built onto the clutch and quickly installed and removed.


A one-way curtain is a passive attachment where the curtain can move in one direction but not the other.  This is useful in collecting objects without using a motor. It slides over the object then pulls it back when the robot moves back. 


Build Instructions



A one way lever is a lever that can only go one way. One way lever requires a stabilized base, an easy moving lever, and a rubber band for retraction. It is a passive attachment, because it does not use any motors.


Build Instructions


Myblocks

Myblocks are used to create and reuse functions.  Multiple blocks of code can be combined into a single block to shorten code and make it simpler to debug (see above).


Myblocks combine one or more blocks and have the option of using inputs. Myblocks make it easy to code and add a personalized touch to your code. Your inputs can control anything from speed to angle. To make a Myblock, click on the “Make a Block” button. First, you name the block. Then you can add numbers or boolean inputs. It helps to add labels to your Myblock. For your inputs in the code, just drag the inputs into where the inputs are in your code.

Gyro Turns

Gyro turns are used for precision in turns. Normal turns can fluctuate in accuracy, but gyro turns stop when it reach the appropriate turn degree. The Spike 3 robot brain has a built-in gyro sensor. To do a gyro turn, you use a start moving in whatever direction you want. Then you use a wait-until block, use a greater (or a less) block, put the yaw angle in the first space, and then the degree amount you want. You then stop the robot and set the yaw angle to zero. Keep in mind that for left turns, you need negative numbers. These are simple codes, but you can make them Myblocks for consistency.


Adding Comments

Adding comments helps you organize your code and tells you when you’re doing something. If your code stops working at some point in your code, you can easily fix it by looking at the comments to find the code. Just right-click on a block and click “Add Comment”. Then you type whatever you want to be in the comment. 


Using Color Sensors

A color sensor is a sensor that detects color that it is under. It works by shining light on whatever is under it and reading the amount of light under it. Color sensors are important for stopping on lines and following lines. To use the color sensor, all you need to do is put the input for the color. FLL uses black lines, and the black input for Spike Prime is 0. All you have to do is put a <1 input for the color sensor blocks. 


Reliability

Reliability is a big part of the robot game. Reliability is incorporated when your robot does not behave properly. For example, if your robot is going different ways every time from the base that means you do not have a specific alignment. If you don't do something the same way every time then it won't behave the same way every time. 

Variables

Variables our a number that changes when an action happens. A good example of a variable is if you made the speed of the robot change with a random number. The number would change every time you run the robot, making each run be different (although this approach is typically not suggested).


PID

PID: Proportional Integral Derivative, is a code used to make the robot correct its driving. It senses if the robot is going off course, it multiplies the yaw angle by -0.9 and turns that way until it reaches that point. It continually does that until the drive is finished.


Clone Robot

Doing the robot game is a lot of work, and a way to divide the work is to divide the group into two teams. Each group has an identical robot, and they code on different sides of the field. At the end of the day, the two groups can mix the code.


Linear Actuator

A linear actuator converts rotational motion into linear motion. It can go horizontal or vertical, and it is made to lift or push. They are designed to be strong so they can be used to do harder mission.


Capture Bearing

A capture bearing is a funnel-shaped object used to lock into missions. It can fix the way the robot is going. NASA uses them to lock into the International Space Station.


Robot Alignment

It is very important to regularly align your robot in the same spot during your robot runs. It is much more difficult to complete missions consistently if your robot placement is different each time you launch your robot. Here are some ways to find a good place to consistently and precisely position your robot for launches:

Backing Up Code

ALWAYS back up your code. Backing up your code will help you not lose it in the event of the SPIKE app not saving the code. Click on the "File" space in the top left of the SPIKE website. Then click "Save As". This will save it to your file app. You can also take a screenshot using "Win+Shift+S".


Squaring On A Line

Squaring on a line can be used to make your runs more accurate. You can code the robot to drive forward until the color sensors sense a black line. When it senses the line it stops. If the left sensor senses it, it will power the right motor until it the right motor senses a black line, and vice versa if the right motor senses the black line. This can also be used for white lines.


Team Role Hand Book

Creating a handbook of each team role and its purpose is a great way to help future generations of your team assign roles and recognize the responsibilities each role will entail. Creating a team role handbook can also make sure your current team is aware of each person’s responsibilities. To create a team role handbook:


Team Captain

The role of team captain is a very important one. A team captain leads the robotics team and works alongside the team manager to ensure that practices are productive and organized. The team captain also is responsible for coordinating with the robot captain, project manager, and core values captain to help the team succeed in all areas. It is important to for a team captain have experience in all areas of robotics, including the robot game, project, etc., and for the team captain to have leadership skills such as good communication and delegation. 


Team Manager 

The team manager is essentially an assistant of the leader. As team manager you are an organizer of files, paperwork, and, homework. As team manager, I am responsible for making sure work that is assigned gets done, ensuring that notes are taken for professionals we talk to, brainstorms are in the drive, and whatever we need for presentations. 


Mission Manager

My role in the team is the Mission Manager. The Mission Manager directs the strategy of the robot runs. This entails making plans of the runs, including how many runs we do and how many points we receive. The Mission Manager must know the rules and requirements for the missions, the points you receive for each accomplished mission, and the names of the missions extremely well. One of the greatest resources is the FLL websites. These are great resources because they show what you do and how many points you receive. The success of the role depends on whether you have the missions done in the allotted time.


Robot Manager

The Robot Manager oversees the design of the robot and its attachment as well as progress of the robot game. He/she is responsible for keeping the building kits organized and keeping record of progress made. He/she works closely with the Mission Manager, Engineer, and Code Manager to accomplish missions. The Robot Manager is there to guide and assist team members as they work on solving missions. 


Specific Roles:


Get familiar with mission/game rules, and score sheet

Work with members on the overall design of the robot

Work with members to design attachments

Keep record of progress and changes to design of robot and attachments

Take photos of progress on the robot

Work with Mission Manager to keep record of progress on missions accomplished

Keep team on track to make progress on the robot game each practice

Create 3D model of robot or make sure it gets done 

Work with Mission Manager to check all mission model builds for any errors before mission work

Keep kits organized

Update team members on progress

Work with members to assign roles for competition 

Oversee robot design presentation script


Required Knowledge:


Prior experience of robot game

Prior experience building with technic lego pieces

Prior experience working with a hub (controller) and accessories such as motors, color sensors, touch sensors, gyros, etc.

Knowledge of how gears work 

Knowledge of understanding mission rules


Available Resources:


First Lego League Season Resources website

Robot Path Diagram

Pseudocode worksheet

Rule book

Other team members

Other teams


As robot manager I take ownership on what needs to get done. I try to keep everyone on track. I try to fill in my teammates on what is going on around the room. I give them advice on how to fix or make something that he/she is working on. I try to help as best I can with the questions they have. I feel like I could be more effective if I had better leadership skills. I would feel successful at the end of the season if I can help my team knock out all the missions. I would like our team to get the max score (550) on the robot game at competitions. My goal is to help the team go to Nationals or Worlds. In order to succeed in my goals, I have to stay on task, not goof around, and help my teammates do the same. 



Project Manager

The project manager plays an important role in the team. It makes sure all the homework is done and they can also assign homework. They will help do the documentation for the project and meetings. They should be able to take charge in the project room. They should know how the project works and know the prompt for the project. They should be hard workers and be able to come to all the practices.



Team Engineer

The team engineer is a secondary robot captain for the robot game. This position is to help the robot captain get work done and if the robot captain is absent from a tournament or a robot practice they would be doing that job. I love motorcycles, which are run by motors. Motors are very similar to the mechanics that we use when doing robotics. The resources required for my role are a good mindset, make mistakes and keep trying, able to code and engineer items or attachments for the robot, help the team get work completed. At the end of the season, my role would have helped me learn more about engineering and coding which is a very good and interesting to have knowledge of for your future career paths.




Outreach Specialist

My role for the team is outreach. Outreach correlates to social media for example, Youtube, Instagram, and more. I manage all of our pages on social media. Another thing I do for the team is take pictures and edit them for the team or I take videos for the team and edit them and post them on social media. One more thing I do for the team is spread awareness about our robotic team and reach out to committees and specialists.



Core Values

The Core Values Captain plays an important role in the team. It makes sure that everyone as happy as possible and make sure if someone is not feeling too happy to try and make them more happy and during tournaments make sure the team is acting the best possible and treating other team as best as possible and and just being as friendly as possible also having the team follow F.I.R.S.T. Core Values which are teamwork fun impact innovation inclusion and discovery 


Robot Board

The robot board is a trifold board that overviews a robot and its attachments. It should include your documentation of your robot. It should be able to stand on a table. Although it is not required, it is helpful for your judging. We use a 36” wide and 48” tall. It should be organized well and should overview your presentation.  The judging rubrics should be used to guide the board's development.

Debugging

Debugging is fixing errors in your code. The steps of doing this are


A key point of debugging is finding which code block is causing issues. This can be made easier by putting beeping sounds, and changing colors to indicate different parts of the run.


Perhaps the most important tool is making comments in the code identifying the purpose of the code blocks.  "Robot drives forward and hits mission #1". This helps to identify all the blocks making it easier to isolate the problem.