Cablebee

https://www.nasa.gov/wp-content/uploads/2016/11/anne_mcclain_astrobee.png?resize=400,400 Credits: NASA / Anne McClain

My favorite robot is the cubular cutie Astrobee! I wanted one for myself; however, it would have difficulty getting off the ground with all this gravity on Earth. Astrobee uses impellers to draw air into its body, which creates a pressurized volume, or “plenum.” Then, when it wants to move, it lets air out in the opposite direction it wants to move, like a deflating balloon. This works great in the microgravity of the International Space Station but not at all in my office.

https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/SkycamHDClipEnhanced0346.jpg/324px-SkycamHDClipEnhanced0346.jpg

Using a parallel cable configuration, I designed and built Cablebee, a terrestrial analog that “flies” around my office. Most people know SkyCam, which zings through sports stadiums to catch fast-moving plays. The technologies are similar, but the control systems can be very different! See the demo below.

Design

Cablebee is operated by stepper motors that drive lines on spools from a control area. Since the lines from Cablebee travel straight to pulleys in the room’s corners, the inverse kinematics computation is straightforward: find the distance from the pulley to Cablebee for each line and set the stepper position appropriately. Take derivatives of these for acceleration and velocity limits, and you will have smooth movement!

The control station uses a 3D printer control board and a beefy 12v power supply for motor control. Cablebee hangs around most of the time, so to limit power use, the spooling system is constructed from a set of helical gears and non-backdrivable worm gears. I iterated through many 3D-printed structures to find the proper configuration, which allowed modularity, spool access, and strength. The most important finding from this exploration was the importance of printing shafts at a skewed orientation to provide maximum strength against layer fractures. Silicone is an excellent lubricant for reducing noise on sliding PLA parts!

cablebee_control.jpg

Cablebee is on hiatus while ROS2 matures. Be on the lookout for progress when I finish my current project!

Astrobee at NASA Ames

I interned with the Astrobee team with the Intelligent Robotics Group at NASA Ames. This project investigates the interaction between a robot and its remote operator under time delay. We hypothesize that human-robot task performance degrades with a more significant time delay but improves with an idealized predictive system.

A “Digital Twin” is a parallel simulation of a real system used for testing how inputs would change the output of the real system. In the context of this experiment, we assume that we have a digital twin of Astrobee that we can use for direct, supervisory control. If Astrobee was far from Earth, there would be substantial latency, making control burdensome and prone to remote environmental inconsistencies.

This schematic from a proposed time-delayed system (Hirzinger 1989) uses a graphic representation of a robot arm to help reduce latency using a physics model of the arm. When the user moves their joystick, the controller integrates information about the desired and current states of the arm to send corrected commands to the arm. A display shows both delayed and simulated configurations of the arm.

hirzinger.png

This experiment proposes to stretch that idea to the extreme. When latency is on the scale of many minutes (~50 min round trip to Mars at worst), a higher fidelity simulation than the Hirzinger model is required. We wish to test the task performance of a human subject and a distant robot. In this case, we use an “anomaly sensor,” representing loose radio signals from malfunctioning equipment. The figure below shows how a remote operator would control a predicted, simulated Astrobee while the real Astrobee would resolve any state errors. The interface records anomaly readings from the predictive system and delayed readings from the real system.

reality.png

To explore the idea of task performance under latency, we use the existing Astrobee simulation and inject noise to serve as an idealized predictive system. This filtering is only for the experiment, and a model that rectifies differences between the predictive and real systems is for future work.

experiment.png

The interface below is the delayed telemetry feed from the distant Astrobee. I extended the ISAAC User Interface to delay ROS messages and display relevant telemetry for subjects. Below is a command interface for moving the simulated Astrobee to a specific position. The subject’s goal is to find the anomaly’s source using the predicted Astrobee.

interface.png

I loved contributing to the Astrobee project, and it’s easily my favorite robot. By bolstering my skills in Docker and ROS, I improved the usability and accessibility of Astrobee software as an Open-Source project.