What's the point of all of this fancy jargon? It is very hard to create a robot which can successfully and purposefully interact with the world in an uncontrolled environment. In the water fetching example, the robot would need to have some way to receive the command, discover a glass, find a source of water, fill the glass with water, and safely transport the glass back to the appropriate recipient. Although I didn't create the most impressive or sophisticated piece of machinery, I was able to develop a robust system capable of interaction.
Because this wasn't a project involving complex mechanical engineering or design procedures, little effort was placed on the mechanical aspects of the robot outside of the initial assembly and component mounting. In regards to the arm, it was assembled as directed for the most part. I did rearrange the arm lengths and change the way the tension springs were attached to get a bit more strength out of the arm. To attach the arm to the Create, I built a frame out of aluminum stripping and attached it using the mounting holes in the Create cargo bay.
With this out of the way, I took a side step into another important but commonly overlooked aspect of engineering: aesthetic quality. Long story short, I took the robot completely apart. This wasn't any broken VCR, it was my master's project, and it had to be put back together in working condition! But what began as a simple nourishment of my own engineering curiosity quickly became a golden opportunity for a more lasting psychological impact.
After her initial shock, my professor informed me that red is the
With this major aesthetic change in place, a partial sense of accomplishment can be felt by simple looking at the robot if for no other reason than the known lasting imprint it will have. Such a simple thing as color can create more of a synchronization between human and machine, and without this harmonic balance, future progress may be very bleak.
Although I didn't want to have to work on any other major mechanical modifications, it was apparent early on that the I would have to build one last thing. The gripper that came with the purchased robotic arm is not difficult to control, but it is difficult to use. The linear motion of the end effector is well suited for precision tasks; however, the objects to be used in this project would not be small nor specifically placed. The original gripper has a maximum opening of 32mm - not a lot of room for error. To compensate for the expected lack of precision and to be able to grasp larger objects, I designed and built a larger, more error tolerant end effector with a maximum grip opening of 200mm and a reasonable gripping size of 120mm.
The major circuitry in this robot was not custom built but did have to be interlinked. The controller used was the Command Module from iRobot which was created specifically for use in the Create. At the heart of this controller was an ATmega168 microcontroller, and this is the primary reason for my future use of Atmel AVR chips. The Lynxmotion arm came with a serial enabled servo sequencer - the SSC-32. The problem with this is the fact that the Command Module (CM) already uses the ATmega168's only serial port to communicate with the iRobot Create, but this issue was solved with software.
Although the CM was easy to work with, it's design was far from perfect. To connect to the I/O pins, four "ePorts" were available on the CM - three on top, and one in the cargo bay. The problem with these ports is that they are actually DSUB-9 connectors identical to the serial port on a computer. This can be a cause for confusion, but the biggest problem is that most of the peripheral electronics available for the Create would be plugged into, and therefore use up, an entire port for only one or two I/O pins. To allow easy access to every single pin available at any given time, I designed a kind of break out board which redistributed these pins. Also included in this circuit was an eight volt regulator for attached electronic devices such as the SSC-32 servo controller.
The SSC-32 servo controller is also built around the ATmega168 MCU, but this coincidence does not effect the design in any way. A very nice (and important) feature of this circuit is the ability to separate the power supplies for the on board circuitry and the connected servos. If enough servos need to move at once, or if there is a sudden high torque move which draws a lot of current, the produced spikes on the supply line are more than enough to reset or even damage the sensitive board components. For that reason, a separate 6V battery pack was used to power the servos while the MCU power came from the CM break out board 8V regulator. While a suitable high current 6V supply design could have been designed or purchased it was not a primary focus of the project, and I didn't want to spend the time working on one. In order to preserve battery life, a power jack was added such that a regulated wall pack could be used to power the servos during stationary testing. To select all of these features, a single pole, double throw switch is incorporated. This circuit also features a pin layout connecting to the serial port which can be used for control source selection. An extension to the serial port on the circuit was created, and a triple pole, double throw switch is used to specify the connections for the transmit and receive lines as well as the communication baud rate. This is further (and hopefully more clearly) illustrated in the following image.
In keeping with the minimalist theme of this project, only three sensor external to the Create are used. Two of these are the Sharp GP2D12 Range Finders with the third is a Sharp GP2D120 Range Finder. These devices (commonly referred to as ET sensors due to their shape) are used to determine distance to objects by measuring the reflection angles of an infrared beam emitted from the sensors. The GP2D12 is able to detect objects between 10 and 80cm away. The GP2D120 is for closer range objects and has a detection range between 4 and 30cm. The long range sensors were attached to two servos on the front of the robot to allow a scanning of the forward area while the close range sensor was attached to the gripper for more precise detection of objects. The available eDisplay LCD for the CM was also incorporated.
With these additions, the mechanical and electrical aspects of the robot were complete!
next page of this project for a detailed description.
iRobot Create with the Command Module
Lynxmotion AL5 Arm
Custom Mounting Frame Design
The eDisplay LCD is a perfect example of a single peripheral using an entire ePort and the reasoning behind the CM break out board. It had to pinned out to be connected to the break out board.
An LCD is an invaluable tool when it comes to testing and diagnosing.
Did you know this
project was published
in an online journal?
Check it out:
Hindawi Journal of Robotics - 984823