The RoboJackets software training program is designed to prepare you to work on software for the RoboJackets competitive teams. This program offers practical experience writing code using C++ and ROS. It also covers some of the fundamental concepts of robotics used by all of our teams.
- Mukilan Karthikeyan (Software Core Chair)
All new software members will attend two meetings each week. One meeting will be with their competition team. The other is a general training meeting for members of all teams. While each competition team has its own schedule for new member meetings, there are multiple sessions of the general training meetings available. These general sessions are identical and exist just to give more flexible scheduling options.
For more information about team meeting schedules and locations, check with each team's leadership.
RoboWrestling | RoboRacing | RoboNav | RoboCup |
---|---|---|---|
Thursdays, 7:00 - 9:00pm | Sunday, 4:00 - 7:00pm Mondays, 7:00 - 9:30pm |
Sundays, 4:00 - 7:00pm | Sundays, 7:00 - 9:30pm |
Modays | Fridays |
---|---|
5:00 - 6:00pm | 5:00 - 6:00pm |
MoSE G011 | MoSE G011 |
-
RoboJackets Training YouTube Channel
Where all training videos will be posted.
-
The GitHub repository that hosts most of the resources for the software training program, including project instructions and starter code.
-
The Software Training Support Library repository. This holds support code for the training projects. Open issues against this repository if you find bugs with the robots or simulator.
We will assume that students are familiar with the concepts covered in AP Computer Science A. Topics we assume knowledge of will be briefly covered in Week 0 content. Topics covered in AP Computer Science A that have special syntax, properties, or behavior in C++ will be covered in the main course content.
Students should also be comfortable with math at the level of AP Calculus AB. Derivatives and integrals will show up throughout the course.
The content of this program is divided into three tracks: Robotics Theory, ROS, and C++. The Robotics Theory track will survey the concepts and math that make intelligent mobile robots work. The ROS track will cover how to use the Robot Operating System to program robots. The C++ track will introduce the C++ programming language, popular in robotics applications. Robotics theory videos should be watched before your team-specific meetings. C++ and ROS videos should be watched before the general training meetings. You should watch the C++ videos before the ROS videos for a given week.
The following resources are great supplemental material to learn more about software for robotics applications.
Each week will culminate in a programming project that uses the tools and techniques covered. The projects build on each other to produce the complete software stack needed to get a custom robot to execute a challenge game.
Week | Title | Description | |
---|---|---|---|
1 | Coordinate Frame Transforms | Instructions | Transform fiducial detections from the camera's frame to the robot's body frame. |
2 | Color-based Obstacle Detection | Instructions | Use HSV color detection and a projective homography to find obstacles near the robot. |
3 | Particle Filter Localization | Instructions | Use a particle filter to localize the robot based on fiducial detections. |
4 | Gradient Descent Optimization | Instructions | Use gradient ascent to guide the robot to the highest simulated elevation on the map. |
5 | Mapping | Instructions | Build a map of the environment with a probablistic occupancy grid. |
6 | Kalman Filter Tracking | Instructions | Track mineral deposits with a kalman filter. |
7 | LQR Controller | Instructions | Control the robot's motion with an LQR controller. |
8 | A-Star Path Planning | Instructions | Teach the robot how to avoid obstacles with the A-Star path planning algorithm. |