This project focus on designing a mechanical solution for performing confined space operation in a wing tank during manufacturing. In addition, it has to meet C1D1 explosion proof standard, where all non-C1D1 electronic devices has to be outside of the tank. For this project, we decided to focus on inspection task. The prototype were build from scratch from CAD design to manufacturing. A suite of softwares were developed to work with the system; and Various mechanical upgrades were made to the prototype through out the years.
Our solution is to use a Bowden cable driven pulley system to actuate the robot arm. The arm sits on a carriage-slider system driven by pneumatic motor. The end effector of the arm is an explosion-proof camera.
Once the prototype is finished. It was used as testbed for exploring various research direction. The followings are the subsystems I am involved in.
Benjamin Wong, Kyle Schultz, Wade Marquette
The first prototype is controlled by an input arm where the motion is mirrored to the in-tank arm 1-to-1. The control cart is designed to house all the components required to operate the system, including the input arm and the pneumatic paddle. It was later replaced with motor control system.
Benjamin Wong
To make the rail easier to be assembled in the tank, we tested a design using on-off magnets to attach and detach the rails by simple turning the knob. In addition, we added a pair of strings for the user to simply pull the rail segment toward the attachment point. No careful alignment required.
Benjamin Wong, Wade Marquette
To satisfy the C1D1 requirement, we cannot install electronic encoders directly on the arm. The control motors outside of the tank do have encoders but the motions are not one-to-one because of the bowden cable dynamics. We devised a extended Kalman filter solution to estimate the pose of the arm in the tank. We placed two external camera the the back of the access hole, and multiple redundant apriltags along the arm, the orientation of the tags are used to infer the joint angles of the arm, these angles are treated as observations for the Kalman filter. The motor encoders on the outside are treated as input to the system in the Kalman filter. The state estimation is used for user situation awareness, and also collision avoidance. Using the joint states, we calculate the closest point from the arm to the tank through ROS, if it is below the threshold, we trigger an alarm to alert the user.
Benjamin Wong, Wade Marquette, Derek Loy
In addition to the software collision avoidance, we also designed a mechanical collision avoidance as a back up for software failure. Inspired by cat whiskers, we installed pneumatic whiskers that opens a valve when they are bent. The pressure drop can be measured and triggers the collision alarm.
Benjamin Wong, Wade Marquette, Kyle Schultz
After the system is motorized, we experimented with several input method, one of which is the haptic controller. We designed an impedance controller to work in tandem with the collision avoidance system. The haptic device controls the velocity of the reference point. The robot is connected to the reference point via virtual spring-damper. The haptic device returns the force exerted by the virtual spring-damper on the reference point. The result is the user feels a force opposing the motion if they moved too fast or if the robot is unable to follow the reference input. We created a ROS interface for the haptic device and tested the impedance control with the ROS turtleSim, where one turtle is the reference, and the other follows the reference.
Benjamin Wong
We also tested several ways to feed information to the user, one of which is augmented reality. The goal is to create a virtual x-ray visual through the tank by overlaying the digital twin on the actual tank. The Hololens app was created using Unity, and the unity app is connected to the ROS system via rosbridge, allowing realtime robot state display and video stream from the robot camera. In addition, using the Hololens allows the user to control the arm without external controllers. We tested two methods, one by using a sliders control panel, another by directly grabbing and moving the virtual arm.
Benjamin Wong
For gen 2, the explosion-proof requirement was lifted for the research to focus more on locomotion method, especially for traveling between tank bays. For this design, the user install an extendable pole inside the tank, the robot uses a telescoping arm to grip on the pole, lift itself, and move to different bay.