public javax.script.ScriptEngineManager() public javax.script.ScriptEngineManager(java.lang.ClassLoader) public javax.script.ScriptEngineManager() javax.script.ScriptEngineManager@4288467f jdk.nashorn.api.scripting.NashornScriptEngine@6f4ea1b0 [Ljava.lang.reflect.Method;@63dfab74 public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.getInterface(java.lang.Class) public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.getInterface(java.lang.Object,java.lang.Class) public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.invokeMethod(java.lang.Object,java.lang.String,java.lang.Object[]) throws javax.script.ScriptException,java.lang.NoSuchMethodException public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.eval(java.lang.String,javax.script.ScriptContext) throws javax.script.ScriptException public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException public javax.script.Bindings jdk.nashorn.api.scripting.NashornScriptEngine.createBindings() public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(java.lang.String,java.lang.Object[]) throws javax.script.ScriptException,java.lang.NoSuchMethodException public javax.script.CompiledScript jdk.nashorn.api.scripting.NashornScriptEngine.compile(java.io.Reader) throws javax.script.ScriptException public javax.script.CompiledScript jdk.nashorn.api.scripting.NashornScriptEngine.compile(java.lang.String) throws javax.script.ScriptException public javax.script.ScriptEngineFactory jdk.nashorn.api.scripting.NashornScriptEngine.getFactory() public void javax.script.AbstractScriptEngine.setContext(javax.script.ScriptContext) public void javax.script.AbstractScriptEngine.setBindings(javax.script.Bindings,int) public javax.script.Bindings javax.script.AbstractScriptEngine.getBindings(int) public java.lang.Object javax.script.AbstractScriptEngine.eval(java.lang.String,javax.script.Bindings) throws javax.script.ScriptException public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException public java.lang.Object javax.script.AbstractScriptEngine.eval(java.lang.String) throws javax.script.ScriptException public java.lang.Object javax.script.AbstractScriptEngine.get(java.lang.String) public void javax.script.AbstractScriptEngine.put(java.lang.String,java.lang.Object) public javax.script.ScriptContext javax.script.AbstractScriptEngine.getContext() public final void java.lang.Object.wait() throws java.lang.InterruptedException public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public boolean java.lang.Object.equals(java.lang.Object) public java.lang.String java.lang.Object.toString() public native int java.lang.Object.hashCode() public final native java.lang.Class java.lang.Object.getClass() public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() com.google.gso.b.EncodingUtil@2b3c7338

AEROSPACE CHINA ›› 2022, Vol. 23 ›› Issue (3): 32-37.doi: 10.3969/j.issn.1671-0940.2022.03.005

• Research Articles • Previous Articles     Next Articles

Machine Vision for Non-Contact Automated Countersink Measurement

  

  1. 1 Shanghai Spaceflight Precision Machinery Institute, Shanghai 201600
    2 Aerospace System Engineering Shanghai, Shanghai 201109
    3 The Third Military Representative Office in Shanghai Area, Shanghai 200032
    4 Shanghai Jiao Tong University, Shanghai 200240
  • Online:2022-12-13 Published:2022-12-13

Abstract: The slug rivet is widely used in wing assembly due to its longer fatigue life and better sealing performance compared with other connection technologies. As a countersink with dual-angle is widely adopted for this type of connection, the countersink diameter and depth are key factors that affect assembly quality. Therefore, it is of great importance to efficiently inspect the countersink quality to ensure high accuracy. However, contact measurements are susceptible to the loss of accuracy due to cutting debris and lube build-up, while the hole-scanning method using laser profilometry is time consuming and complex. In this paper, a non-contact method for countersink diameter and depth measurement based on a machine vision system is proposed. The countersink diameter can be directly measured by the machine vision system, while the countersink depth is determined through the countersink diameter indirectly. First, by means of image processing technology together with an improved edge detection algorithm, the countersink diameter can be obtained. Then, a 3D microscope is employed to measure the countersink depth, which helps to model the countersink. As a result, once the countersink diameter is measured, so is the depth. The experimentation demonstrated that this method has strong easibility and enables time saving, which is conducive to improve the riveting 
efficiency.

Key words: