This is The Typewriter Repairmen's page for the 2012 National Underwater Robotics Challenge, a competition put on by Arizona Promoters of Applied Science in Education in Chandler, AZ.
The Typewriter Repairmen is a family robotics club. Jim, the Principal Instigator, is a "retired" mechanical engineer. He has worked with the local FIRST high school robotics team NERDS for the past four seasons as an engineering mentor, and discovered that it's about the most fun thing there is. Janet, his wife, has a Masters degree in Systems Engineering, and works at Ft. Huachuca. Jim's brother David is an Electrical Engineer at the University of Arizona's Steward Observatory, and also runs a side business Cathode Corner, which sells neat electronic gadgets. Jim and Janet's son Steve, who is nuts about robots, is also a mechanical engineer.
Link to the 2009 NURC robot notBob
Link to the 2010 NURC robot Babs
All through the project we have been posting videos on youtube.
Contact us at jforbnospam@selectric.org
January 24, 2012
We've been pretty involved with FRC, Gary and Kevin are helping the Bit Buckets, Steve is helping the Falcons, and Jim is helping the NERDS. We got the fitPC and played with it some, installed modern versions of Mint and Ubuntu on it.
Kevin spent some time thinking about the control system, and came up with this plan.
Browser: View camera feeds View sensor and actuator data View logs View mission order View tasks View processing tasks Control actuators Control logs Control mission order Control tasks Control processing tasks Control AUV power Notes: Should use javascript for most functions and have a method of authentication, since the server will be broadcast wirelessly. Has implementation for starting and stopping various threads and tasks. Can reboot system from here, probably upload new code, since python is interpreted. Interface Thread: Uses Pico to allow javascript to call functions Getter functions return information from main thread Setter functions relay information to main thread Notes: Simply passes information from the client side to the main thread. Client side retrieves information by requesting it, so interface thread needs to be able to grab information from the main thread and keep it updated. Should start on completion of loading the OS. Main Thread: Logs information Parent to other threads Can create and kill other threads Relay between threads Notes: Main thread should be relatively small and simply control the flow of information between the interface, camera, external functions, and decision making threads. The main thread should open on completion of loading the OS. OpenCV Thread: Collects camera images Applies various filters to images Calculates various attributes of filtered images Returns filtered images Returns attributes of images Notes: Just a wrapper thread for openCV. This is where most of the heavy computing comes from, so this thread should have a relatively high priority. Decision Thread: Starts mission Collects information from sensors and cameras Constructs world view from information Contains list of mission tasks Can start, stop, and pause missions Contains control loops or encapsulates them Notes: When the user enables the decision thread, it should take over control of the AUV until the user disables it via browser. An onboard switch should start/stop the mission. Communicates intentions to external function thread via main thread. External Functions Thread: Initializes and communicates to hardware Retrieves sensor information Applies filters to incoming sensor information (Kalman?) Controls actuators Stores actuator states Notes: Hardware interface thread, does anything it is told to do by main thread. Possibly contains control loops instead of Decision thread.
January 1, 2012
Happy New Year!
More work on the AUV design. We think we've figured out the design for the enclosures, they will mounted with springs holding them closed, and a simple strap securing the removeable end. We have a preliminary design for the mounting system for the electronics and batteries. The computer shoudl be here in a few days, and we have the materials to make the new enclosures. We still need to order the motors, and get to work in the shop building this stuff!
December 23, 2011
Since it's holiday season, we can get together to work on the AUV design. After thinking about trying to use notBob, we decided that we would be better off with a whole new robot.
This is the first draft. We plan to use four thrusters, a steel strap frame, two enclosures, a fit PC2i, several lipo batteries, and the Cathode Corner ESC4a four channel motor speed controller. The computer, cameras, pressure sensor, and one battery will be in the front compartment, while the speed controller and remaining batteries will be in the rear compartment. The two will be connected with a single serial line to send the computer commanded drive signals to the speed controller. This reduces wiring complexity, and allows us to add a kill switch to completely disable the drive system, while leaving the computer powered. The compartments will be made with a revised design compared to our previous ROVs, so that the tube and one end cap can be quickly removed for battery changes and other maintenance.
November 27, 2011
We're starting to figure out what we're going to do for NURC this year. There is something new, the autonomous competition. Steve, Gary, and Jim went to the RoboSub Autonomous Underwater Vehicle competition to watch last July. The Carl Hayden team was competing for the first time, and we wanted to see what it was all about, and cheer them on. It looks like a really good challenge, and it's great to see that the NURC this year includes an AUV element. We spent some time on Thanksgiving day discussing it, and we've decided that we want to give it a try.
We have done some preliminary requirements analysis, and we think that we should start by trying to make an AUV that will be able to maintain a controlled depth, maintain a controlled direction of travel, and have vision ability to both see markers on the floor of the pool, and buoys ahead.
Our initial plan is to play with notBob, because he has most of the stuff we need to get started. He is kind of heavy and slow and stable, and has room for two cameras in a housing that can see ahead and down. We can replace his rear floatation units with a single second SKULL, which will hold a computer and batteries. David has several 11.1v 5 Ah LIPO battery packs from another project. We are investigating some different small computers, with a size limit of fitting in a 6" polycarbonate tube.
Kevin has been learning about the basics of arificial intelligence. "....the same AI lab from University of Michigan also made a Procedural Reasoning System in C++. A PRS is a type of Belief-Desire-Intent agent that stores facts or beliefs about the external world in a database. The user adds knowledge areas that lay out procedures on how to react to certain inputs, and the system decides at runtime what knowledge areas to apply to a situation depending on information it gets from the external world. The best part is UMPRS is surprisingly small and well documented.