The Typewriter Repairmen
2012 NURC Robot

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

Link to the 2011 NURC mission

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.