Intuitive controller design for robotic arm used for satellite servicing
Part of NASA Robotics Academy at Marshall Space Flight Center (MSFC), 6/2013 - 8/2013
Satellite Servicing on the Flat Floor Lab. My team's mobility base with mounted arm (on right), FASTSAT replica (on left). Each vehicle is equipped with air tanks and is floating on air-bearings.
Close-up of robotic arm. Arm was purchased from HDT and has 11 degrees of freedom - Shoulder (pitch, roll, yaw), Elbow (pitch), Wrist (pitch, roll, yaw), Thumb (pitch, roll), Index Finger (pitch), and Ring Finger (yaw).
The HDT arm controller
Top layer of the Arm Simulation in Simulink.
Initial glove controller prototype with duct tape and breadboard.
Top and bottom view of final glove controller prototype. All sensors are sewed on. Connections are soldered to protoboard on an Xbee shield.
Over the summer, I worked as a research associate on a four-person team in MSFC's Flight Robotics Lab, home of the one of the flattest floors in the world. Vehicles on the flat floor are equipped with air bearings which lift the vehicles off the floor by a couple of millimeters, providing a cushion of air between the floor and the vehicle. This simulates the friction-less environment of space, allowing us to test attitude control algorithms and conceptual space missions.
My team was given the task of developing a platform that could be utilized for satellite servicing tests and demonstrations. In-orbit satellite servicing is under active research and development by DARPA, NASA, and private space companies because it can extend a satellite's lifetime, saving millions of dollars.
We had a replica of the FASTSAT, a small satellite designed at MSFC. This replica was mounted on an air-bearing platform and could float on the flat floor as if it was orbiting in space. We wanted to demonstrate that a spacecraft could grab onto the FASTSAT and utilize robotic arms to service FASTSAT and extend it's lifetime.
We were provided an HDT Adroit MK2 Robotic arm. This is a human-like robotic arm that has been utilized as a prosthetic as well as a bomb-diffusing robot in military applications. It is strong, rugged, and can perform many of the tasks a typical human arm could perform.
As useful as this arm is, the FRL members found that the provided arm controller was difficult to use.
Here are the key issues we noted:
HDT had already corrected some of these issues in their next generation controller, however, we did not have the funding to purchase this controller and wanted to develop our own controller and control algorithms that could be optimized for satellite servicing operations.
We set out to design a better controller that would be comfortable to use during long-term servicing operations, also we wanted the controller to be intuitive and easy to use without significant training. To do this, first we created a Virtual Reality (VR) simulation of the robotic arm, and then we designed and prototyped a glove-based controller for the arm.
We created a VR Simulation of the arm to allow us to test out new controllers and algorithms without damaging the pricey HDT arm. Also, this simulation could be displayed while controlling the arm, providing a visual of the arm during operation, augmenting camera feedback.
We chose to design the simulation in Simulink due to its user-friendly graphical interface and close integration with Matlab, which is widely used across industry and academia.
I led the development of a VR simulation for the arm in Simulink. We imported a CAD model of the arm into Simulink using SimMechanics link and designed a sophisticated simulation of the robotic arm within SimScape. I mapped out the arm in SimMechanics, designed and optimized a PID controller of the arm, and incorporated the ability to receive external inputs into the simulation.
The top most level of the simulation is displayed on the left. The right-hand side houses subsystems with all the physical characteristics of the robotic arm in SimMechanics, including all physical characteristics of the arm (size, weight, shape, joint spring stiffness, damping coefficient). The middle block houses a PID controller which calculates torques for each joint of the arm. The left-hand side has 3 different options for controlling the arm simulation - manual angle input, Xbox controller, and Glove controller.
For testing purposes, we incorporated an Xbox controller input in the simulation and used an Xbox controller to manipulate each joint of the arm in real-time.
Once the glove-controller was designed and prototyped, we added a glove controller into the simulation and used the glove to control the arm in real-time (see Videos below).
We designed, built, and tested a glove-based controller for the robotic arm. The glove controller uses flex sensors to determine the the finger, thumb, and wrist positions. An IMU is used to determine the overall hand position.
For our final prototype, I sewed slots for each of the flex sensors, attached an IMU to the wrist, and migrated the initial breadboard electronics to a protoboard on the XBee shield. The glove controller is able to communicate wirelessly with the computer and simulation and runs off of a single 9V battery.
I presented this work at the 2013 SpaceVision Conference in Tempe, AZ. A pdf of my paper can be found here.
Special thanks to my PI, Ricky Howard for providing this research opportunity, my mentor, Carolina Orphee, and my teammates Jaewon Choi, Christina Kennedy, and Allen Ernst.
Check out Jaewon Choi's website to learn more about the design of the mobility base platform that enables testing on the flat floor.