End effectors are what eventually connect the ‘real world’ to the world of machines. A camera which can take images, a Kinect which could do that in 3D, a gripper which could pick up things or an extruder which could print things.
All of these end effectors (and more) should be able to play equally well with an open arm project.
A cape is analogous to an Arduino shield. It is a piece of hardware that adds some functionality to the BBB. For example we have LCD capes which add a display. Similarly we have an Audio cape or a Memory cape. Capes can also be made for a wider application : Weather cape, Pix Hawk Fire cape for the ArduPilot vehicles.
Also, capes are stackable.
Each pin on the BBB has multiple modes that it can operate in (except the ADC pins). Device tree overlays allow one to load pins in modes different than their default ones. That way the end user doesn’t have to worry about the pins being in the right mode.
A cape has a i2c EEPROM (on the i2c2 bus) which helps in identifying the cape using the capemgr software.
Capemgr was created out of a need for boards like the BeagleBone to be able to detect installed expansion boards at boot time and allocate appropriate resources (load drivers, allocate GPIO, reserve bus addresses, etc) on kernels which use Device Tree.
So to sum it up, a cape is something which helps to easily add hardware to a BBB in a standard way, and there is s/w like capemgr to help manage that.
End effectors as capes
Let’s assume that the base, shoulder, elbow and wrist have a set number of pins required on the BBB. Also, the power management circuit. This won’t take more than 5-6 odd pins (PWMs and a i2c IC for example). That leaves the remaining pins for the end effector, which are more than enough for a reasonably complex one.
The ability for users to create new end effectors is quite critical to the idea of an open source robotic arm. Device tree overlays required for various capes are made available in the default distro which ships with the BBB. A new user creating a custom end effector will have to :
- Make a cheap EEPROM available on the cape which helps identify the end effector
- Make a device tree overlay based on the different pins his/her contraption requires
- Make any other software modules available that another user might require to use the end effector.
Steps 1 and 2 are already well documented by the beagleboard community.
End effectors and capes are a logical fit.