ਲਾਭ:
- ਫਿਊਜ਼ਨ ਲੌਜਿਕ (ਇੰਟੀਗਰੇਟਰ/ਕਲਮਨ ਫਿਲਟਰ) ਬਣਾਉਣ ਦੀ ਸਮਰੱਥਾ ਜੋ AI ਨਾਲ IMU, ਏਨਕੋਡਰ ਅਤੇ ਦੂਰੀ ਸੈਂਸਰ ਡੇਟਾ ਨੂੰ ਜੋੜਦੀ ਹੈ
- AI ਦੀ ਮਦਦ ਨਾਲ MQTT- ਅਧਾਰਿਤ IoT ਡਾਟਾ ਸਟ੍ਰੀਮ ਅਤੇ ਟੈਲੀਮੈਟਰੀ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਅਤੇ ਵਿਆਖਿਆ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
- ਏਆਈ ਆਉਟਪੁੱਟ ਵਿੱਚ ਸੈਂਸਰ ਸ਼ੋਰ, ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਅਤੇ ਸਮੇਂ ਦੇ ਸਮਕਾਲੀ ਮੁੱਦਿਆਂ ਨੂੰ ਖੋਜਣ ਅਤੇ ਠੀਕ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
ਕੋਈ ਵੀ ਸੈਂਸਰ ਸੰਪੂਰਨ ਨਹੀਂ ਹੈ। ਜਾਇਰੋਸਕੋਪ ਥੋੜ੍ਹੇ ਸਮੇਂ ਵਿੱਚ ਬਹੁਤ ਸਹੀ ਹੈ, ਪਰ ਸਮੇਂ ਦੇ ਨਾਲ ਵਹਿ ਜਾਂਦਾ ਹੈ। ਐਕਸਲੇਰੋਮੀਟਰ ਲੰਬੇ ਸਮੇਂ ਵਿੱਚ ਸਥਿਰ ਹੁੰਦਾ ਹੈ ਪਰ ਵਾਈਬ੍ਰੇਸ਼ਨ ਤੋਂ ਸ਼ੋਰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਏਨਕੋਡਰ ਸਥਿਤੀ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਮਾਪਦਾ ਹੈ, ਪਰ ਜਦੋਂ ਕੋਈ ਸਲਿੱਪ ਹੁੰਦਾ ਹੈ ਤਾਂ ਇਹ ਗਲਤ ਹੁੰਦਾ ਹੈ। GPS ਇੱਕ ਵਿਸ਼ਾਲ ਖੇਤਰ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਘੱਟ ਬਾਰੰਬਾਰਤਾ ਅਤੇ ਰੌਲਾ-ਰੱਪਾ ਹੈ। ਮੇਕੈਟ੍ਰੋਨਿਕਸ ਇੰਜੀਨੀਅਰ ਨੂੰ ਇਹਨਾਂ ਅਪੂਰਣ ਸੈਂਸਰਾਂ ਤੋਂ ਇੱਕ ਸਿੰਗਲ, ਭਰੋਸੇਮੰਦ ਸੱਚ ਪੈਦਾ ਕਰਨਾ ਹੁੰਦਾ ਹੈ; ਇਹ ਸੈਂਸਰ ਫਿਊਜ਼ਨ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਆਧੁਨਿਕ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ, ਇਹ ਡੇਟਾ ਨਾ ਸਿਰਫ਼ ਸਥਾਨਕ ਰਹਿੰਦਾ ਹੈ, ਸਗੋਂ IoT ਨੈੱਟਵਰਕਾਂ ਰਾਹੀਂ ਕਲਾਉਡ ਅਤੇ ਕੰਟਰੋਲ ਕੇਂਦਰਾਂ ਵਿੱਚ ਵਹਿੰਦਾ ਹੈ। ਆਰਟੀਫੀਸ਼ੀਅਲ ਇੰਟੈਲੀਜੈਂਸ ਫਿਊਜ਼ਨ ਐਲਗੋਰਿਦਮ ਸਥਾਪਤ ਕਰਨ ਅਤੇ IoT ਟੈਲੀਮੈਟਰੀ ਦੀ ਸੰਰਚਨਾ ਅਤੇ ਵਿਆਖਿਆ ਦੋਵਾਂ ਵਿੱਚ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸਹਾਇਤਾ ਹੈ। ਇਸ ਯੂਨਿਟ ਵਿੱਚ, ਅਸੀਂ ਪੂਰਕ ਫਿਲਟਰ, ਕਲਮਨ ਫਿਲਟਰ ਤਰਕ ਅਤੇ ਏਆਈ ਦੇ ਨਾਲ MQTT- ਅਧਾਰਤ IoT ਪ੍ਰਵਾਹ ਨੂੰ ਕਿਵੇਂ ਸੈਟ ਅਪ ਕਰਨਾ ਹੈ ਅਤੇ ਸ਼ੋਰ ਅਤੇ ਸਮਕਾਲੀ ਜਾਲ ਨੂੰ ਫੜਦੇ ਹਾਂ।
ਸੈਂਸਰ ਫਿਊਜ਼ਨ ਕਿਉਂ?
ਹਰੇਕ ਸੈਂਸਰ ਦਾ "ਚੰਗੀ ਬਾਰੰਬਾਰਤਾ ਜ਼ੋਨ" ਹੁੰਦਾ ਹੈ। ਫਿਊਜ਼ਨ ਦਾ ਉਦੇਸ਼ ਹਰ ਇੱਕ ਸੈਂਸਰ ਨੂੰ ਉਸ ਖੇਤਰ ਵਿੱਚ ਵਰਤਣਾ ਹੈ ਜਿੱਥੇ ਇਹ ਮਜ਼ਬੂਤ ਹੈ ਅਤੇ ਉਸ ਖੇਤਰ ਵਿੱਚ ਦੂਜੇ ਦੇ ਨਾਲ ਇਸਦਾ ਸਮਰਥਨ ਕਰਨਾ ਹੈ ਜਿੱਥੇ ਇਹ ਕਮਜ਼ੋਰ ਹੈ।
ਸੈਂਸਰ
ਮਜ਼ਬੂਤ ਬਿੰਦੂ
ਕਮਜ਼ੋਰੀ
ਜਾਇਰੋਸਕੋਪ
ਥੋੜ੍ਹੇ ਸਮੇਂ ਲਈ ਕੋਣੀ ਵੇਗ, ਤੇਜ਼ ਜਵਾਬ
ਸਮੇਂ ਦੇ ਨਾਲ ਵਹਿਣਾ
ਐਕਸਲੇਰੋਮੀਟਰ
ਲੰਬੇ ਸਮੇਂ ਦੀ ਢਲਾਣ ਦਾ ਹਵਾਲਾ (ਗੁਰੂਤਾ)
ਅੰਦੋਲਨ 'ਤੇ ਵਾਈਬ੍ਰੇਸ਼ਨ/ਸ਼ੋਰ
ਏਨਕੋਡਰ
ਉੱਚ ਰੈਜ਼ੋਲੂਸ਼ਨ ਟਿਕਾਣਾ
ਸਲਿੱਪ/ਬੈਕਲੈਸ਼ ਗਲਤੀ
GPS
ਪੂਰਨ ਸਥਿਤੀ
ਘੱਟ ਬਾਰੰਬਾਰਤਾ, ਰੌਲਾ, ਕੋਈ ਅੰਦਰ ਨਹੀਂ
ਇੱਕ ਸਿੰਗਲ ਸੈਂਸਰ 'ਤੇ ਭਰੋਸਾ ਕਰਨਾ ਸਿਸਟਮ ਵਿੱਚ ਉਸ ਸੈਂਸਰ ਦੀ ਕਮਜ਼ੋਰੀ ਨੂੰ ਪੇਸ਼ ਕਰਦਾ ਹੈ। ਫਿਊਜ਼ਨ, ਉਦਾਹਰਨ ਲਈ, ਗਾਇਰੋਸਕੋਪ ਦੇ ਤੇਜ਼ ਪਰ ਵਹਿਣ ਵਾਲੇ ਕੋਣ ਨੂੰ ਐਕਸੀਲੇਰੋਮੀਟਰ ਦੇ ਹੌਲੀ ਪਰ ਸਥਿਰ ਸੰਦਰਭ ਦੇ ਨਾਲ ਜੋੜਦਾ ਹੈ, ਇੱਕ ਕੋਣ ਪੈਦਾ ਕਰਦਾ ਹੈ ਜੋ ਤੇਜ਼ ਅਤੇ ਵਹਿਣ-ਮੁਕਤ ਹੈ।
ਪੂਰਕ ਫਿਲਟਰ
ਸਭ ਤੋਂ ਸਰਲ ਅਤੇ ਸਭ ਤੋਂ ਆਮ ਫਿਊਜ਼ਨ ਪੂਰਕ ਫਿਲਟਰ ਹੈ। ਇਹ ਵਿਚਾਰ ਅਨੁਭਵੀ ਹੈ: ਉੱਚ ਬਾਰੰਬਾਰਤਾ (ਤੇਜ਼ ਤਬਦੀਲੀ) 'ਤੇ ਜਾਇਰੋਸਕੋਪ 'ਤੇ ਭਰੋਸਾ ਕਰੋ, ਘੱਟ ਬਾਰੰਬਾਰਤਾ 'ਤੇ ਐਕਸੀਲੇਰੋਮੀਟਰ (ਹੌਲੀ, ਸਥਿਰ)। ਇੱਕ ਲਾਈਨ ਸੰਖੇਪ:
# ਪੂਰਕ ਫਿਲਟਰ: ਦਰਦ ਦਾ ਅੰਦਾਜ਼ਾ (ਪਿਚ) # ਅਲਫ਼ਾ ~ 0.98 : ਜਾਇਰੋਸਕੋਪ ਲਈ ਜ਼ਿਆਦਾ, ਐਕਸੀਲੇਰੋਮੀਟਰ (ਡਿਗਰੀ/ਸੈਕੰਡ) ਐਕਸਲੇਰੇਸ਼ਨ_ਅੰਜ: ਐਕਸੀਲੇਰੋਮੀਟਰ (ਡਿਗਰੀ) ਤੋਂ ਗਿਣਿਆ ਗਿਆ ਕੋਣ dt : ਨਮੂਨਾ ਲੈਣ ਦੀ ਮਿਆਦ (ਸੈਕੰਡ) "" "ਪਿਛਲਾ # gyrotegypes = * #ed_padroc ਦਰ ਵਿੱਚ gyroscope ਰਿਟਰਨ ਅਲਫ਼ਾ * gyro_pace + (1 - alpha) * acceleration_angle# ਪੁਸ਼ਟੀਕਰਨ ਤਰਕ: ਸ਼ੁੱਧ gyroscope (drifts) if alpha=1, # if alpha=0 pure accelerometer (noisy)।
ਇੱਥੇ ਗੁਣਾਂਕ ਅਲਫ਼ਾ ਸੰਤੁਲਨ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ: ਜੇਕਰ ਇਹ 1 ਦੇ ਨੇੜੇ ਹੈ, ਤਾਂ ਇਹ ਜਾਇਰੋਸਕੋਪ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ (ਡਰਾਇਫਟ ਵਧਣ ਦਾ ਜੋਖਮ), ਜੇਕਰ ਇਹ 0 ਦੇ ਨੇੜੇ ਹੈ, ਤਾਂ ਇਹ ਐਕਸੀਲੇਰੋਮੀਟਰ (ਸ਼ੋਰ ਵਧਣ) 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਆਮ ਮੁੱਲ 0.95–0.98 ਹੈ। AI ਇਸ ਮੁੱਲ ਦਾ ਸੁਝਾਅ ਦੇ ਸਕਦਾ ਹੈ, ਪਰ ਸਹੀ ਅਲਫ਼ਾ ਤੁਹਾਡੇ ਸਿਸਟਮ ਦੀ ਨਮੂਨਾ ਦਰ ਅਤੇ ਸ਼ੋਰ ਅੱਖਰ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ; ਪ੍ਰਯੋਗਾਤਮਕ ਤੌਰ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ।
ਨੁਕਤਾ: AI ਲਈ ਇੱਕ ਅਟੁੱਟ ਫਿਲਟਰ ਛਾਪਣ ਵੇਲੇ, ਇਹ ਪੁੱਛਣਾ ਯਕੀਨੀ ਬਣਾਓ ਕਿ dt ਨੂੰ ਕਿਵੇਂ ਮਾਪਿਆ ਜਾਂਦਾ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਗਲਤੀਆਂ ਇਹ ਮੰਨ ਕੇ ਆਉਂਦੀਆਂ ਹਨ ਕਿ dt ਸਥਿਰ ਹੈ ਪਰ ਅਸਲ ਵਿੱਚ ਚੱਕਰ ਦਾ ਸਮਾਂ ਬਦਲਦਾ ਹੈ। dt ਰੀਅਲ ਨੂੰ millis()/timestamp ਨਾਲ ਮਾਪੋ, ਸਥਿਰ ਨਾ ਲਿਖੋ।
ਕਲਮਨ ਫਿਲਟਰ ਤਰਕ
ਪੂਰਕ ਫਿਲਟਰ ਸਧਾਰਨ ਹੈ ਪਰ ਰੌਲੇ ਦੇ ਅੰਕੜਿਆਂ ਨੂੰ ਮਾਡਲ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਕਲਮਨ ਫਿਲਟਰ ਸੰਵੇਦਕ ਸ਼ੋਰ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਦੀ ਅਨਿਸ਼ਚਿਤਤਾ ਨੂੰ ਸੰਭਾਵਿਤ ਰੂਪ ਵਿੱਚ ਮਾਡਲਿੰਗ ਕਰਕੇ ਇੱਕ ਅਨੁਕੂਲ (ਕੁਝ ਖਾਸ ਧਾਰਨਾਵਾਂ ਦੇ ਅਧੀਨ) ਅਨੁਮਾਨ ਪੈਦਾ ਕਰਦਾ ਹੈ। ਇਹ ਦੋ ਪੜਾਵਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ:
- ਭਵਿੱਖਬਾਣੀ ਕਰੋ: ਸਿਸਟਮ ਮਾਡਲ ਦੇ ਨਾਲ ਅਗਲੀ ਸਥਿਤੀ ਅਤੇ ਇਸਦੀ ਅਨਿਸ਼ਚਿਤਤਾ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰੋ।
- ਅੱਪਡੇਟ: ਮਾਪ ਭਰੋਸੇਯੋਗਤਾ (ਕਲਮਨ ਲਾਭ) ਦੇ ਵਿਰੁੱਧ ਨਵੇਂ ਮਾਪ ਦਾ ਤੋਲ ਕਰੋ ਅਤੇ ਅਨੁਮਾਨ ਨੂੰ ਠੀਕ ਕਰੋ।
ਕਲਮਨ ਗੇਨ ਕੇ ਹਰ ਕਦਮ 'ਤੇ ਆਪਣੇ ਆਪ ਹੀ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ "ਕੀ ਮੈਨੂੰ ਮਾਪ ਜਾਂ ਮਾਡਲ 'ਤੇ ਜ਼ਿਆਦਾ ਭਰੋਸਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ"। ਜੇਕਰ ਮਾਪ ਸ਼ੋਰ ਵੱਡਾ ਹੈ, ਤਾਂ K ਛੋਟਾ ਹੋ ਜਾਂਦਾ ਹੈ (ਮਾਡਲ ਵਿੱਚ ਵਿਸ਼ਵਾਸ), ਜੇਕਰ ਪ੍ਰਕਿਰਿਆ ਅਨਿਸ਼ਚਿਤਤਾ ਵੱਡੀ ਹੈ, ਤਾਂ K ਵੱਡਾ ਹੋ ਜਾਂਦਾ ਹੈ (ਮਾਪ ਵਿੱਚ ਵਿਸ਼ਵਾਸ)। AI ਆਸਾਨੀ ਨਾਲ ਇੱਕ-ਅਯਾਮੀ ਕਲਮਨ ਫਿਲਟਰ ਲਿਖਦਾ ਹੈ; ਪਰ ਇਹ ਤੁਹਾਡਾ ਕੰਮ ਹੈ ਕਿ ਸ਼ੋਰ ਸਹਿਭਾਗੀਆਂ (`Q`, `R`) ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਚੁਣੋ ਅਤੇ ਉਹ ਸਿਸਟਮ ਦੇ ਅਸਲ ਸ਼ੋਰ ਤੋਂ ਆਉਂਦੇ ਹਨ।
ਧਿਆਨ ਦਿਓ: AI ਦੁਆਰਾ ਦਿੱਤੇ Q (ਪ੍ਰਕਿਰਿਆ ਸ਼ੋਰ) ਅਤੇ R (ਮਾਪ ਦਾ ਰੌਲਾ) ਮੁੱਲ ਨਮੂਨਾ/ਪਲੇਸਹੋਲਡਰ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਸਿਸਟਮ ਦੇ ਅਸਲ ਮਾਪ ਸ਼ੋਰ (ਜਿਵੇਂ ਕਿ ਸੈਂਸਰ ਦੇ ਸਥਿਰ ਹੋਣ 'ਤੇ ਮਾਪਿਆ ਗਿਆ ਪਰਿਵਰਤਨ) ਤੋਂ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਫਿਲਟਰ ਜਾਂ ਤਾਂ ਬਹੁਤ ਹੌਲੀ ਜਾਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਰੌਲਾ ਹੋਵੇਗਾ। AI ਦੁਆਰਾ "ਸੱਚੇ ਮੁੱਲ" ਦੇ ਰੂਪ ਵਿੱਚ ਦਿੱਤੇ ਗਏ ਸਹਿਭਾਗੀਆਂ 'ਤੇ ਭਰੋਸਾ ਨਾ ਕਰੋ।
IoT ਡਾਟਾ ਸਟ੍ਰੀਮ: MQTT ਅਤੇ ਟੈਲੀਮੈਟਰੀ
ਤੁਹਾਡੇ ਵੱਲੋਂ ਫਿਊਜ਼ਨ ਨਾਲ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਸਾਫ਼ ਡਾਟਾ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ IoT ਨੈੱਟਵਰਕ ਰਾਹੀਂ ਕੇਂਦਰ ਵਿੱਚ ਲਿਜਾਇਆ ਜਾਂਦਾ ਹੈ। ਉਦਯੋਗ ਵਿੱਚ ਸਭ ਤੋਂ ਆਮ ਪ੍ਰੋਟੋਕੋਲ MQTT ਹੈ: ਹਲਕਾ, ਪ੍ਰਕਾਸ਼ਿਤ-ਸਬਸਕ੍ਰਾਈਬ ਮਾਡਲ, ਘੱਟ ਬੈਂਡਵਿਡਥ ਲਈ ਢੁਕਵਾਂ। AI ਤੇਜ਼ੀ ਨਾਲ MQTT ਪ੍ਰਕਾਸ਼ਕ/ਗਾਹਕ ਕੋਡ ਅਤੇ JSON ਟੈਲੀਮੈਟਰੀ ਸਕੀਮਾ ਸਥਾਪਤ ਕਰਦਾ ਹੈ।
ਆਯਾਤ json, timeimport paho.mqtt.client as mqttclient = mqtt.Client()client.connect("broker.local", 1883, keepalive=60)def ਟੈਲੀਮੈਟਰੀ_ਬ੍ਰਾਡਕਾਸਟ(ਤਾਪਮਾਨ, ਤਾਪਮਾਨ, ਵਾਈਬ੍ਰੇਸ਼ਨ_rms): ਸੁਨੇਹਾ = {"ts": time.time-() ਸਮਕਾਲੀਕਰਨ ਲਈ ਟਾਈਮ.-ਟਾਈਮ (), "ਸਮੇਂ_ਸਟਾਈਮ" #inpa. round(pain, 2), "temperature_c": round(temperature, 1), "vibration_rms": round(temperature_rms, 3), "unit": {"pain": "deg", "temperature": "C", "ਵਾਈਬ੍ਰੇਸ਼ਨ": "mm/s"} } client.publish("machine/jmesdu,1),. qos=1)# qos=1: ਘੱਟੋ-ਘੱਟ ਇੱਕ ਵਾਰ ਡਿਲੀਵਰ ਕੀਤਾ ਗਿਆ। ਨਾਜ਼ੁਕ ਡੇਟਾ 'ਤੇ qos=0 (ਗੁੰਮ ਹੋ ਸਕਦਾ ਹੈ) ਦੀ ਵਰਤੋਂ ਕਰਨਾ।
ਇੱਥੇ ਦੋ ਇੰਜੀਨੀਅਰਿੰਗ ਫੈਸਲੇ ਮਹੱਤਵਪੂਰਨ ਹਨ: (1) ਟਾਈਮਸਟੈਂਪਿੰਗ (ts) ਹਰੇਕ ਸੰਦੇਸ਼—ਵੱਖ-ਵੱਖ ਸੈਂਸਰਾਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਸਮਿਆਂ 'ਤੇ ਨਮੂਨਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਸਮਕਾਲੀਕਰਨ ਸਿਰਫ ਟਾਈਮਸਟੈਂਪਿੰਗ ਨਾਲ ਸੰਭਵ ਹੈ; (2) QoS ਪੱਧਰ—ਨਾਜ਼ੁਕ ਡੇਟਾ ਘੱਟੋ-ਘੱਟ qos=1 (ਘੱਟੋ-ਘੱਟ ਇੱਕ ਵਾਰ ਡਿਲੀਵਰ ਕੀਤਾ ਗਿਆ) ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, qos=0 ਸੁਨੇਹਾ ਗੁਆਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
ਸ਼ੋਰ, ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਅਤੇ ਸਮਕਾਲੀਕਰਨ
ਕੋਈ ਫਰਕ ਨਹੀਂ ਪੈਂਦਾ ਕਿ ਫਿਊਜ਼ਨ ਕਿੰਨਾ ਵੀ ਵਧੀਆ ਹੈ, ਇਨਪੁਟ ਨਾਲ ਤਿੰਨ ਸਮੱਸਿਆਵਾਂ ਨਤੀਜੇ ਨੂੰ ਵਿਗਾੜਦੀਆਂ ਹਨ:
- ਸ਼ੋਰ: ਜੇਕਰ ਕੱਚਾ ਸੈਂਸਰ ਡੇਟਾ ਫਿਲਟਰ ਕੀਤੇ ਬਿਨਾਂ ਫਿਊਜ਼ਨ ਵਿੱਚ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਫਿਊਜ਼ਨ ਆਉਟਪੁੱਟ ਵੀ ਰੌਲੇ-ਰੱਪੇ ਵਾਲੀ ਹੋਵੇਗੀ। ਪ੍ਰੀ-ਫਿਲਟਰਿੰਗ (ਮੀਡੀਅਨ, ਘੱਟ ਪਾਸ) ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।
- ਕੈਲੀਬ੍ਰੇਸ਼ਨ: ਔਫਸੈੱਟ ਅਤੇ ਸਕੇਲ ਦੀਆਂ ਗਲਤੀਆਂ (ਜਿਵੇਂ ਕਿ ਐਕਸੀਲੇਰੋਮੀਟਰ ਦਾ ਜ਼ੀਰੋ ਪੁਆਇੰਟ ਸ਼ਿਫਟ ਕੀਤਾ ਗਿਆ ਹੈ) ਯੋਜਨਾਬੱਧ ਢੰਗ ਨਾਲ ਫਿਊਜ਼ਨ ਨੂੰ ਗੁੰਮਰਾਹ ਕਰਦੇ ਹਨ। ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਸੈਂਸਰਾਂ ਨੂੰ ਕੈਲੀਬਰੇਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।
- ਟਾਈਮ ਸਿੰਕ੍ਰੋਨਾਈਜ਼ੇਸ਼ਨ: ਵੱਖ-ਵੱਖ ਦਰਾਂ (ਜਿਵੇਂ ਕਿ 1 kHz IMU ਨਾਲ 10 Hz GPS) 'ਤੇ ਸੈਂਸਰਾਂ ਨੂੰ ਇਕਸਾਰ ਕਰਨ ਲਈ ਟਾਈਮਸਟੈਂਪਿੰਗ ਅਤੇ ਇੰਟਰਪੋਲੇਸ਼ਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
AI ਇਹਨਾਂ ਪੜਾਵਾਂ ਨੂੰ ਕੋਡ ਵਿੱਚ ਜੋੜ ਸਕਦਾ ਹੈ, ਪਰ ਕੀ ਹਰੇਕ ਦੀ ਲੋੜ ਹੈ ਅਤੇ ਇਸਦੇ ਮਾਪਦੰਡ ਤੁਹਾਡੇ ਸਿਸਟਮ ਲਈ ਖਾਸ ਹਨ। AI ਆਉਟਪੁੱਟ ਵਿੱਚ "ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਕਿੱਥੇ ਹੈ?" ਅਤੇ "ਕੀ ਟਾਈਮਸਟੈਂਪ ਇਕਸਾਰ ਹਨ?" ਸਵਾਲ ਜ਼ਰੂਰ ਪੁੱਛੋ।
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ / ਮਜ਼ਬੂਤ ਪ੍ਰੋਂਪਟ
ਕਮਜ਼ੋਰ:"IMU ਡੇਟਾ ਤੋਂ ਕੋਣ ਦੀ ਗਣਨਾ ਕਰੋ।"(ਕਿਹੜਾ ਫਿਲਟਰ? ਕੀ ਡ੍ਰਾਈਫਟ ਹੈਂਡਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ? ਕਿਵੇਂ dt? ਅਸਪਸ਼ਟ।)STRONG:"ਐਮਪੀਯੂ6050 ਤੋਂ ਐਕਸੀਲੇਰੋਮੀਟਰ ਅਤੇ ਜਾਇਰੋਸਕੋਪ ਡੇਟਾ ਨੂੰ ਇੰਟੈਗਰਲ ਫਿਲਟਰ ਅਤੇ ਅੰਦਾਜ਼ਾ ਪਿੱਚ ਐਂਗਲ ਨਾਲ ਜੋੜੋ। ਰੀਅਲ ਟਾਈਮਸਟੈਂਪ ਤੋਂ dt ਦੀ ਗਣਨਾ ਕਰੋ, ਪੈਰਾਫਾਮੀਟਰ 9 ਨੂੰ ਨਾ ਮੰਨੋ। ਟੈਨ 2 ਦੇ ਨਾਲ ਐਕਸੀਲਰੋਮੀਟਰ ਐਂਗਲ ਦੀ ਗਣਨਾ ਕਰੋ, ਕਲਾਸ ਦੇ ਤੌਰ 'ਤੇ ਲਿਖੋ, ਪਿਛਲਾ ਕੋਣ ਰੱਖੋ, ਸ਼ੋਰ ਲਈ ਵਿਕਲਪਿਕ ਮੱਧਮਾਨ ਪ੍ਰੀਫਿਲਟਰ ਸ਼ਾਮਲ ਕਰੋ।"
ਮਿੰਨੀ ਕੇਸ
ਰੋਬੋਟਿਕਸ ਇੰਜੀਨੀਅਰ ਸੇਲਿਨ ਦੋ-ਪਹੀਆ ਸੰਤੁਲਨ ਵਾਲੇ ਰੋਬੋਟ 'ਤੇ ਕੋਣ ਅਨੁਮਾਨ ਲਈ AI ਤੋਂ ਇੱਕ ਪੂਰਕ ਫਿਲਟਰ ਚਾਹੁੰਦਾ ਹੈ। AI ਇੱਕ ਸਾਫ਼ ਕੋਡ ਦਿੰਦਾ ਹੈ, ਪਰ ਰੋਬੋਟ ਹੌਲੀ-ਹੌਲੀ ਇੱਕ ਪਾਸੇ ਝੁਕ ਜਾਂਦਾ ਹੈ। ਸੇਲਿਨ dt ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ: ਕੋਡ ਮੰਨਦਾ ਹੈ ਕਿ dt ਸਥਿਰ 0.01 s ਹੈ, ਜਦੋਂ ਕਿ ਚੱਕਰ ਦਾ ਸਮਾਂ ਬਲੂਟੁੱਥ ਟੈਲੀਮੈਟਰੀ ਦੇ ਕਾਰਨ ਬਦਲਦਾ ਹੈ। ਜਦੋਂ dt ਦੀ ਰੀਅਲ ਟਾਈਮਸਟੈਂਪ ਤੋਂ ਗਣਨਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਵਹਾਅ ਘੱਟ ਜਾਂਦਾ ਹੈ ਪਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਲੋਪ ਨਹੀਂ ਹੁੰਦਾ। ਫਿਰ ਉਹ ਐਕਸਲੇਰੋਮੀਟਰ ਦੀ ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਨੂੰ ਵੇਖਦਾ ਹੈ; ਸੈਂਸਰ ਸਥਿਰ ਹੋਣ 'ਤੇ ਵੀ 2° ਆਫਸੈੱਟ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਮੈਂ ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਆਫਸੈੱਟ ਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹਾਂ, ਤਾਂ ਰੋਬੋਟ ਸਿੱਧਾ ਖੜ੍ਹਾ ਹੁੰਦਾ ਹੈ। ਅੰਤ ਵਿੱਚ, ਇਹ ਨੋਟ ਕਰਦਾ ਹੈ ਕਿ ਇਹ MQTT ਦੁਆਰਾ ਟੈਲੀਮੈਟਰੀ ਦਾ ਪ੍ਰਸਾਰਣ ਕਰਨ ਵੇਲੇ qos=0 ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਅਤੇ ਨਾਜ਼ੁਕ ਕੋਣ ਡੇਟਾ ਲਈ ਇਸਨੂੰ qos=1 ਤੱਕ ਵਧਾਉਂਦਾ ਹੈ। ਏਆਈ ਨੇ ਮਿੰਟਾਂ ਵਿੱਚ ਫਿਊਜ਼ਨ ਪਿੰਜਰ ਪ੍ਰਦਾਨ ਕੀਤਾ; ਪਰ ਇੰਜੀਨੀਅਰ ਦੀ ਤਸਦੀਕ ਨੇ ਤਿੰਨ ਸਿਸਟਮ-ਵਿਸ਼ੇਸ਼ ਮੁੱਦੇ ਫੜੇ: ਵੇਰੀਏਬਲ dt, ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਆਫਸੈੱਟ, ਅਤੇ QoS।
ਆਮ ਗਲਤੀਆਂ
- ਇਹ ਮੰਨ ਕੇ ਕਿ dt ਸਥਿਰ ਹੈ, ਜਦੋਂ ਕਿ ਚੱਕਰ ਦਾ ਸਮਾਂ ਬਦਲਦਾ ਹੈ (ਫਿਊਜ਼ਨ ਡ੍ਰਾਈਫਟ)।
- ਉਹਨਾਂ ਨੂੰ ਕੈਲੀਬਰੇਟ ਕੀਤੇ ਬਿਨਾਂ ਸੈਂਸਰਾਂ ਨੂੰ ਫਿਊਜ਼ ਕਰਨਾ (ਪ੍ਰਣਾਲੀਗਤ ਔਫਸੈੱਟ)।
- ਟਾਈਮਸਟੈਂਪਿੰਗ ਤੋਂ ਬਿਨਾਂ ਵੱਖ-ਵੱਖ ਗਤੀ ਦੇ ਸੈਂਸਰਾਂ ਨੂੰ ਇਕਸਾਰ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ।
- ਅਸਲ ਸ਼ੋਰ ਤੋਂ ਕਲਮਨ Q/R ਸਹਿ-ਵਿਗਿਆਨ ਨੂੰ ਮਾਪੇ ਬਿਨਾਂ AI ਦੇ ਨਮੂਨੇ ਦੇ ਮੁੱਲ ਨੂੰ ਛੱਡਣਾ।
- ਨਾਜ਼ੁਕ IoT ਡੇਟਾ 'ਤੇ qos=0 ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਦੇਸ਼ ਨੂੰ ਗੁਆਉਣ ਦੀ ਆਗਿਆ ਦੇ ਰਿਹਾ ਹੈ।
- ਪੂਰਵ-ਫਿਲਟਰਿੰਗ ਤੋਂ ਬਿਨਾਂ ਫਿਊਜ਼ਨ ਨੂੰ ਕੱਚਾ ਰੌਲਾ ਡਾਟਾ ਦੇਣਾ।
ਸੰਖੇਪ ਵਿੱਚ
- ਫਿਊਜ਼ਨ ਬਾਰੰਬਾਰਤਾ ਖੇਤਰ ਵਿੱਚ ਹਰੇਕ ਸੈਂਸਰ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਇਹ ਮਜ਼ਬੂਤ ਹੁੰਦਾ ਹੈ ਅਤੇ ਇਸਦੀ ਕਮਜ਼ੋਰੀ ਲਈ ਮੁਆਵਜ਼ਾ ਦਿੰਦਾ ਹੈ।
- ਪੂਰਕ ਫਿਲਟਰ ਸਧਾਰਨ ਹੈ; ਅਲਫ਼ਾ ਨਾਲ ਗਾਇਰੋਸਕੋਪ-ਐਕਸੀਲੇਰੋਮੀਟਰ ਸੰਤੁਲਨ ਸਥਾਪਤ ਕਰਦਾ ਹੈ।
- ਕਲਮਨ ਫਿਲਟਰ ਮਾਡਲ ਸ਼ੋਰ ਸੰਭਾਵਿਤ ਤੌਰ 'ਤੇ; Q/R ਅਸਲ ਸਿਸਟਮ ਤੋਂ ਆਉਂਦਾ ਹੈ।
- MQTT ਟੈਲੀਮੈਟਰੀ ਵਿੱਚ, ਟਾਈਮਸਟੈਂਪਿੰਗ ਅਤੇ ਉਚਿਤ QoS ਮਹੱਤਵਪੂਰਨ ਇੰਜੀਨੀਅਰਿੰਗ ਫੈਸਲੇ ਹਨ।
- ਸ਼ੋਰ, ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਅਤੇ ਸਮਾਂ ਸਮਕਾਲੀਕਰਨ ਫਿਊਜ਼ਨ ਦੀ ਗੁਣਵੱਤਾ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਨ।
- dt ਨੂੰ ਅਸਲ ਸਮੇਂ ਤੋਂ ਮਾਪਿਆ ਜਾਂਦਾ ਹੈ; ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਅਤੇ QoS ਨੂੰ AI ਨੂੰ ਛੱਡੇ ਬਿਨਾਂ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਕੰਮ
ਇੱਕ IMU (ਅਸਲ ਜਾਂ ਸਿਮੂਲੇਟਡ ਗਾਇਰੋ + ਐਕਸੀਲੇਰੋਮੀਟਰ ਡੇਟਾ) ਲਈ AI ਕੋਲ ਇੰਟੈਗਰਲ ਫਿਲਟਰ ਤਿਆਰ ਕਰਨਾ ਹੈ ਅਤੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ dt ਦੀ ਅਸਲ ਟਾਈਮਸਟੈਂਪ ਤੋਂ ਗਣਨਾ ਕੀਤੀ ਗਈ ਹੈ। ਫਿਰ: (1) 0.90, 0.98 ਅਤੇ 1.0 ਲਈ ਅਲਫ਼ਾ ਅਜ਼ਮਾਓ ਅਤੇ ਡ੍ਰੈਫਟ ਅਤੇ ਸ਼ੋਰ ਸੰਤੁਲਨ ਦਾ ਨਿਰੀਖਣ ਕਰੋ, (2) ਸੈਂਸਰ ਵਿੱਚ ਇੱਕ ਜਾਣਬੁੱਝ ਕੇ ਫਿਕਸਡ ਆਫਸੈੱਟ (ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਗਲਤੀ) ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਫਿਊਜ਼ਨ ਆਉਟਪੁੱਟ ਕਿਵੇਂ ਵਧਦਾ ਹੈ, (3) ਡੇਟਾ ਨੂੰ MQTT JSON ਸਕੀਮਾ ਵਿੱਚ ਬਦਲੋ ਅਤੇ ਟਾਈਮਸਟੈਂਪ ਅਤੇ ਯੂਨਿਟ ਫੀਲਡ ਜੋੜੋ। ਨੋਟ ਕਰੋ ਕਿ ਕਿਹੜਾ ਅਲਫ਼ਾ ਮੁੱਲ ਤੁਹਾਡੇ ਡੇਟਾ ਲਈ ਸਭ ਤੋਂ ਸੰਤੁਲਿਤ ਨਤੀਜਾ ਦਿੰਦਾ ਹੈ ਅਤੇ ਕਿੰਨੀ ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਆਫਸੈੱਟ ਆਉਟਪੁੱਟ ਨੂੰ ਵਿਗਾੜਦਾ ਹੈ।