Colorado State University competes in a NASA hosted competition called Lunabotics. This year the team consists of 9 main members, and supplemental help from CSU's Ram Robotics club. CSU has competed in this competition since 2018.
Year | Info |
---|---|
2018-19 | |
2019-20 | |
2020-21 | GitHub |
Names and roles from left to right and top to bottom
Jarryd Meyers | Controls Team |
Connor Worrell | Team Lead |
Colby Richardson | Mechanics Team |
Yeshel Bin Akmal | Mechanics Team |
James Henander | Mechanics Team Lead |
Jonathan Jacobson | Controls Team Lead |
Lex Policita | Controls Team |
Kyle Ciccarelli | Mechanics Team |
Alden Truesdale | Mechanics Team Chief Machinist |
The cad for the robot is located under \Robot CAD.
- Check motor connections
- Check camera connections
- Make sure the robot is connected to the same Wi-Fi as the computer (internet not needed)
- Run /Robot/RobotMain.py
- Make note of the IP Address and Port it started up on
- Make sure the computer is connected to the same Wi-Fi as the robot (internet not needed)
- Run /Base/BaseMain.py The GUI should start up.
- Optional: Connect an x-box controller via usb to the computer and type command "joystick on" to start joystick control
- Type into the GUI "connect " + IP + Port Note: If IP is not specified it defaults to 192.168.0.100, and Port defaults to 23456
- You are connected if the Info Text switches from "Not Connected" to "Connected"
- Refer to the GUI section for more info
The GUI Consists of 5 elements:
- Field view - Displays the position of the robot on the field
- Camera views - Displays the images from each camera connected to the robot
- Info Bar - Displays text information about the current robot status
- Text Input Help - Displays command help
- Text Input Box - Type commands into this
Commands | Description |
---|---|
Connect IP Port | Connect to robot on given IP and Port |
Other string | Send string to robot with key="other" |
Ping # | Change communication frequency to # seconds |
Joystick on/off | Turn on or off the sending of joystick data with key="joystick" |
The code is split up into 2 different folders, Base and Robot. The base folder contains all the code that is required to interact with the robot. The robot folder is the same.
The base folder holds the files:
- BaseMain.py - Initialization
- commands.py - Parsing the commands from the GUI
- CommunicationBase.py - Communication between the robot and the GUI
- globals.py - Variables that are used in multiple files
- GUI.py - Runs the entire GUI
- Joystick.py - Joystick inputs
The robot folder holds files:
- Cameras.py - Handles the cameras
- commands.py - Parsing the commands from Base, the StopEverything function is called continuously if the robot and base are disconnected
- CommunicationRobot.py - Communication between the robot and base
- globals.py - Variables that are used in multiple files
- motor.py - Controlling motors through the latte panda's onboard arduino
- RobotMain.py - Starts up everything, this is the only thread that is time sensitive, so all long tasks should be executed in the main wile loop in this thread.