I haven't gone to hackathons in a while, since college apps have been so hectic for me. But I've been working on the software for my underwater robotics team:
Here's also a nice concept model of the ROV:
I've been using the Processing 3 software to build the code for the robot. Processing has a bunch of great libraries to integrate with an Arduino and the XBOX 360 controller to control the robot, and is relatively straightforward and easy to code in. I'm looking into using more standard platforms like ROS or even Unity3D for a real-time ROV simulator, but for now Processing is good enough. I used the GameControlPlus library to take inputs from the XBOX 360 controller, and used the Arduino Firmata library. With the Arduino-Processing Firmata library, my laptop computer acts as a host computer and sends commands to the "slave-like" Arduino, and I only have to use Processing to write the code (no cross-platform communication!). The key here is simplicity and reliability, so that my entire team and I can easily troubleshoot and understand the control logic.
Right now I'm working on integrating a
Proportional–
Integral–
Derivative control feed back loop for an auto-depth mode. An analogy for what this PID loop does is a person driving a car: a person's eyes sees that the car is veering slightly to the right, so the brain tells the arms to tilt the wheel to the left until the car is straight again. The "eyes" for the ROV is the MPU6050 modlue, with a triple-axis gyroscope and accelerometer. The MPU6050 can even allow for 2D and 3D rendering of a CAD model in processing! I've taken care of sending inputs from the XBOX controller to the Arduino from my computer, but now I have to learn how to get the MPU6050 data from the Arduino. Stay tuned!
No comments:
Post a Comment