During my internship at NASA Jet Propulsion Laboratory, I was primarily focused on CyberCAT with the goal of developing a usable version of the software by the end of the internship. While I was not housed on the caltech campus, I did spend a lot of time at Caltech. This project is something that came about when I was walking through the campus, and saw two members of the Caltech Air and Outer Space Club working on the Crater robot testing their robot outside.
I decided to ask about what they were doing and found out they were working on the testing the controls for the robot preparation for a competition. Kevin, the person I was working with that night, was kind enough to offer if I would like to help them with the project. As I was looking for an after hours project, and was somewhat familiar with the Robot Operating System they were using, I decided to help. My goal was to get remote driving controls working with the robot. That is how the following 3 weeks of contributions came about.
I spent most of my time doing the following:
- Setting up their base station computer to communicate with the robot.
- Building a simulation of the robot in Gazebo + URDF
- Writing python files to connect the robot to an xbox controller.
- Rewriting the Controller Area Network bus to allow the robot to communicate among the six motors.
- Reconfiguring the motors to allow for controller to appropriately command the robot.
- Configuring teleop-twist to allow for the robot to be controller with the xbox controller. (This was the last part, and the one area of I wish I could’ve gotten to work better! Thank to Kevin, after bringing the robot to the Canadian International Rover Challenge, he was able to rotation working better on the robot!)