Customizing Misty’s Arms with DU’s Robotics Students
One of the defining characteristics of the Misty development platform is the ability to customize her by changing out her arms. A team of developers at the University of Denver (DU) took this challenge on. For the backstory on Misty’s arms, check out our recent post covering requirements of her arms, our approach to designing them for Misty II and examples of arms that have been built.
Just over a year ago, the Misty Robotics team had the opportunity to speak to Michael Caston, Associate Professor of the Practice in Innovation and Product at DU. Impressed by what Casten’s students had done in the past, we thought it’d be a lot of fun — and a good learning experience for everyone — if we sponsored one of their capstone courses. We were correct! Over a period of three quarters (September 2018 thru May 2019), we’ve had the opportunity to work with five graduating university students as they brought their idea for a Misty II arm extension to life.
The why
The DU team’s idea for building an arm extension was based on two very different types of business applications for a Misty arm: elder care and for use in industrial settings. In elder care, they could easily imagine how a Misty robot would be able to help an older person with limited mobility to pick up something she dropped like, for instance, a cane. In the industrial use cases they imagined, they could picture a robot being especially useful in accessing small areas that humans cannot easily or safely get to.
Keeping these two uses in mind, the DU team outlined the following requirements of their arm for the project:
• The arm must use the in-built Misty II arm movement along with the in-built arm functionality at the same time.
• The robot must be able to orient itself so it’s in the proper position to pick up an object.
• The arm must be able to pick up and hold an object.
• The robot must be able to move with said object.
• The arm must be able to put said object down.
• The budget for the entire project come in under $2800.00 and that the actual cost of the arm (not including Research & Design) come in under $200.00.
How they built it: Mechanical design
After outlining their requirements, the team began designing a simple folding arm. This arm had two degrees of freedom (pitch and translation) plus Misty’s locomotion added a third degree of motion (yaw control). This first prototyped arm had the ability to bend at the wrist joint, elbow joint, and the shoulder and was able to pick up objects with a gripper “hand”. However, this preliminary design was eliminated due to cost issues and power issues.
The DU team ultimately chose a piston design for the arm extension. While this meant sacrificing some of the range of motion they had with the folding arm, it allowed for a more simple, straight-forward, and cost-efficient arm. The specific components of the piston arm include:
• Kinetic arm: Slides onto the static arm and can extend and retract based on the position controlled by the gear at the rack.
• Static arm: Attaches to Misty’s shoulder and hollowed out so wires can be run through it.
• Stock plate: Provides additional support to the kinetic arm and prevents it from traveling off the static arm in case you try to extend it too far.
• Rack and pinion: Controls the arm’s ability to extend and retract.
• Motor with encoder: Used to control the rack and pinion.
• Gripper: Attaches to the bottom or the top of the arm. It’s modular so that whatever gripper is made by the user (or the gripper that the team recommend off Amazon) can be easily screwed onto the kinetic arm and allowed to extend.
• Force clips: Clip onto the gripper and act as a force-sensitive resistor. Once a force is registered, one part of the force clip will bend and make contact with the force plate so it can register a value and Misty can know if it’s holding something or not.
How they built it: Circuit design
Even before outlining their electrical capability requirements, the DU team knew that the Misty II came with one microcontroller unit (MCU) and that in order to get the Misty Arm System to work, they would need to design the rest of it.
With options like Featherboard, Arduino Uno, DFRobot, and ST Microcontroller, the team briefly debated which microprocessor to use. Ultimately, they selected the Arduino Uno for two reasons: its reputation as being easy-to-use and its ability to take advantage of Misty’s (Arduino-compatible) Backpack. Next up, they outlined their necessary electrical capabilities:
• Attach to the Misty (Arduino-compatible) Backpack
• Drive Servo motors (one for the translation movement, and another for the gripper)
• Take in and regulate battery voltage
• Drive arm extender motor
• Read motor encoders
• Read analogue force sensors
• All work together
To meet all of their electrical capability requirements, they used a Printed Circuit Board (PCB) because it’s “simple, safe, and professional”. Although “ease of accessibility” was not one of their initial project requirements, it soon dawned on the team that this was an extremely important consideration if they were to expect high rates of consumer adoption; they spent many of their electrical engineering hours ensuring that their design would pose no barriers to entry, no matter the users’ level of experience.
And from an aesthetic perspective, the team incorporated an electronic housing backpack into their design in order to mount all of the electronics outlined above onto Misty without having them exposed. The electronic housing backpack includes the necessary holes for connecting to an external battery source needed to power the Misty arm as well as symmetrical holes for threading through the wires you need to add the arm extension to either side of Misty. The electronic housing backpack simply attaches to Misty’s Arduino-Compatible Backpack via a metal plate and has two holes for screwing into place if the user prefers.
How they built it: Software design
In writing for the Misty arm extension they were building, the DU team knew there would be two components: The code needed for Misty’s onboard processor and the code that would go onto the Arduino Backpack which would run in tandem to the former via a serial connection.
Misty’s hardware extensibility enabled the team to trigger specific actions by sending command codes via the serial interface to trigger an event like “pick up item” or “drop item.” In the Skill they wrote, the team chose to use Misty’s capacitive touch to trigger specific actions. However, because the team did not want to have to touch Misty on one of her head or chin sensors every time they wanted her to perform an action with her articulated arm; they set up used a REST API call to signal when she should grab something or release an object.
The code running on Misty’s backpack is set to handle the relevant command codes that are received via Misty’s serial interface. The DU team included a simple command structure to activate the arm to open, close, grasp, and drop functionality.
And in their final step, the DU team took their JSON and Javascript files, put them into the Misty Skill Runner, which in return allowed them to run their Misty skill through it. When you do this, you then get to play skill re-mixer and experiment with running the different skills you’re running plus those others have set up.
A round of applause for the DU team arm
After three quarters of research and design, building and testing, and finally presenting their project to their class and us here at Misty Robotics, the DU team successfully wrapped up their Misty arm project (and under budget). Great job Mustapha Jechi, Cormac Heneghan, Jacob Anthony Locsin, Bowen Wang, and Benjamin Sawyer!
If you are part of a school team that is interested in building for Misty and have questions, reach out to us in the Community Forum.