- एक किनारे पर खड़ा यह cube तीन reaction wheels और controller की मदद से संतुलन बनाए रखता है, और axis के along rotation को भी नियंत्रित करता है। यह एक open source hardware project है
- मूल रूप ETH Zürich के Cubli से आया है, और University of São Paulo के Bobrow आदि ने control concept जोड़कर IMU की संख्या 6 से 1 कर दी
- पहले के ज़्यादातर काम public नहीं थे, इसलिए निर्माता ने mechanical design, circuit, configuration और code को reverse engineer करके इसे पूरी तरह open source के रूप में जारी किया
- hardware में stainless steel और aluminium structure, तीन Maxon 60W motors, 4-quadrant motor controller, 6S1P LiPo battery, ESP32-S3, और IMU वाली custom board शामिल है
- अभी यह इंसान द्वारा सीधा खड़ा करने के बाद संतुलन बनाए रखता है; अगला लक्ष्य mechanical brake के जरिए cube को खुद से संतुलन की स्थिति तक jump करवाना है
Open source के रूप में फिर से बनाया गया Cubli-श्रेणी cube
- यह cube एक किनारे पर संतुलन बना सकता है, और साथ ही अपनी axis के आसपास नियंत्रित rotation भी कर सकता है
- इसके काम करने का मूल आधार चतुर control method और तीन reaction wheels हैं
- मूल idea ETH Zürich की Cubli research से शुरू हुआ
- बाद में University of São Paulo के Bobrow आदि ने बेहतर control concept लागू किया, जिससे ज़रूरी IMU की संख्या 6 से घटकर 1 रह गई
- पहले के ज़्यादातर काम public नहीं थे, इसलिए निर्माता ने सब कुछ reverse engineer करके शुरुआत से दोबारा तैयार किया और प्रकाशित किया
- design, configuration और code files GitHub repository में उपलब्ध हैं
- निर्माता के हिसाब से BOM लगभग €2500 के करीब है
उपयोगिता से ज़्यादा सीखने और शोध के लिए बना उपकरण
- cube खुद मुख्य रूप से learning experience और research project के क़रीब है, इसकी सीधी practical value बहुत ज़्यादा नहीं है
- लेकिन इसी सिद्धांत वाले reaction wheels का इस्तेमाल James Webb telescope जैसे satellites में attitude control के लिए होता है
- पहले के M&Ms sorter की तरह, ऊपर से बेकार दिखने वाले ऐसे उपकरण भी समान applications में असली value रख सकते हैं
mechanical structure और निर्माण
- पूरी mechanical structure मूल Cubli से काफ़ी मिलती-जुलती है, हालांकि कुछ detail differences हैं
- basic structure में 8 cornerstone और 6 face plates हैं
- 6 face plates में से 3 में motor और reaction wheel assembly को support करने के लिए अतिरिक्त geometry है
- सभी parts Fusion 360 में design किए गए
- निर्माता के अनुसार, पहले इस्तेमाल किए गए Siemens NX की जगह Fusion 360 उपयोग करने से DIY community के साथ design साझा करना आसान हुआ
- structure के ज़्यादातर parts मज़बूती के लिए stainless steel से बनाए गए
- face plates वजन कम करने के लिए aluminium से बनाए गए
- assembly के बाद structure की rigidity काफ़ी थी, इसलिए face plates को steel से बनाने की ज़रूरत नहीं पड़ी
- metal parts PCBWay से CNC के जरिए बनवाए गए
- लागत का कुछ हिस्सा PCBWay ने sponsor किया
- parts upload करने और material चुनने के बाद quote अपने-आप calculate होने वाली ordering process का उपयोग किया गया
- production की छोटी समस्याएँ जल्दी सुलझ गईं, और parts बिना दिक्कत fit हुए
motor और reaction wheel assembly
- reaction wheels अधिकतम 6000 rpm तक पहुँच सकते थे, इसलिए मज़बूत लेकिन हल्का design चाहिए था
- motors को तीन countersunk screws से stainless steel bridge पर लगाया गया, और bridge को aluminium face plate पर fix किया गया
- motor shaft पर एक छोटा hub लगाया गया, जिसे तीन set screws से कसकर रखा गया
- अगर hub का center hole flat triangular surface के perpendicular न हो, तो wheel motor shaft के साथ align नहीं होगा और vibration व wear हो सकते हैं
- reaction wheel को hub पर तीन countersunk screws से लगाया गया
- hub और wheel की छोटी असमानताओं को contact surface के बीच कागज़ के छोटे टुकड़े रखकर ठीक किया गया
- face plate में एक छोटा radial ball bearing लगाया गया और cyanoacrylate adhesive से fix किया गया
- यह bearing motor shaft के एक सिरे को support करता है
- shaft का दूसरा सिरा motor के अंदर का bearing support करता है
- यह assembly process तीन बार दोहराकर cube का आधा हिस्सा बनाया गया, और बाकी face plates को बिना किसी विशेष assembly के सीधे जोड़ दिया गया
- cable routing आसान बनाने के लिए एक motor को bridge reference के हिसाब से अलग orientation में लगाया गया
electrical और mechanical configuration
- जैसे दूसरे balancing cubes Maxon की EC flat series motors का इस्तेमाल करते हैं, वैसे ही इस project में भी Maxon components चुने गए
- motors और controllers cube को torque के जरिए संतुलित रखने के लिए मुख्य parts हैं
- कई DC motors की datasheet में torque constant नहीं दिया होता
- कई BLDC controllers या ESC सिर्फ speed control देते हैं, current control नहीं
- इस project के लिए torque-current relationship और current control दोनों ज़रूरी हैं
- चुनी गई motor Maxon 60W motor है, और compatible 4-quadrant motor controller अधिकतम 6A current दे सकता है
- 24V पर 6A लगभग 150W के बराबर है
- यह motor की rated output से ज़्यादा है, लेकिन थोड़े समय का overload समस्या नहीं है
- controller में I2t algorithm built-in है, जो winding temperature बहुत बढ़ने का अनुमान होने पर current limit कर देता है
- balancing के दौरान current आमतौर पर बहुत कम रहता है, इसलिए सामान्य operation में इस limit तक पहुँचने की संभावना कम है
- Escon motor controller software motor commissioning, tuning tools, और operation के दौरान status व inputs/outputs दिखाने वाला dashboard देता है
battery और custom board
- battery के लिए 6S1P lithium-polymer battery का उपयोग किया गया
- motor rating 24V होने की वजह से nominal 22.2V वाली 6-cell LiPo अच्छी तरह match करती है
- capacity 1300mAh और 29Wh है, और सामान्यतः cube को कम से कम 1 घंटे तक चला सकती है
- mainboard custom design है
- तीन motor controllers
- IMU
- ESP32-S3 development board
- protection circuit
- voltage regulators
- mechanical brake के लिए RC servo motor output
- mechanical brake output पहले से इसलिए रखा गया कि cube खुद से balance position तक jump-up कर सके
- brake design अभी पूरा नहीं हुआ है
- circuit board को solder paste लगाने, surface-mount parts रखने, छोटे toaster oven में reflow करने, और through-hole parts की hand soldering से assemble किया गया
- integration और testing के दौरान कुछ routing errors मिले, जिन्हें bodge wires से ठीक किया गया
- motor controller के digital inputs में सिर्फ एक ही PWM support करता था, लेकिन PWM signal ऐसे input पर route हो गया था जो PWM support नहीं करता था
- battery mounting के लिए अलग board भी design किया गया
- 2 XT60 connectors
- अधिकतम 18A current को ध्यान में रखकर parallel में जोड़े गए 2 switches
controller porting और balancing control
- controller को नया design नहीं किया गया; Fabio Bobrow के cubli-firmware को Arm Mbed से Arduino पर port किया गया
- microcontroller के रूप में STM32 Nucleo की जगह ESP32 इस्तेमाल हुआ
- IMU के लिए TDK Invensense का ICM20948 इस्तेमाल किया गया, इसलिए उसका driver भी दोबारा लिखा गया
- मुख्य attitude controller को एक साथ दो परस्पर विरोधी लक्ष्यों को पूरा करना होता है
- cube को इच्छित attitude, यानी unstable equilibrium position, पर बनाए रखना
- reaction wheel speed को संभव हो सके उतना कम रखना
- अगर दूसरे लक्ष्य को ध्यान में न रखा जाए तो wheel speed बेकाबू हो सकती है, और motor saturation के कारण cube पर torque लगाना संभव नहीं रहेगा
- अगर wheel speed को 0 के पास रखने की कोशिश बहुत ज़्यादा हो, तो cube गिर जाएगा
- इसके उलट, अगर वह कोशिश बहुत कमज़ोर हो, तो wheel speed सचमुच बेकाबू होकर बढ़ सकती है
- अच्छी balancing performance, disturbance rejection और कम wheel speed एक साथ पाने के लिए सही gain ढूँढना ज़रूरी है
constant error और wheel position integration
- controller में constant error को संभालने का mechanism भी है
- constant error तब होता है जब cube के weight distribution की असमानता की वजह से set equilibrium position और वास्तविक equilibrium position में थोड़ा फ़र्क आ जाता है
- सामान्य PID controller में integral term ऐसे error को handle करती है
- यह controller wheel की position को integral value की तरह इस्तेमाल करता है
- अगर cube के ऊपर tomato रखकर weight distribution बदला जाए, तो reaction wheel पहले speed बढ़ाता है, फिर घटाता है, और नई position पर जाकर बढ़े हुए error की भरपाई करता है
tuning में अटकी हुई बातें
- commissioning और controller tuning, code से जुड़े कामों में सबसे बड़ा हिस्सा थे
- पहले कई signals के sign सही मिलाने में कई दिन लगे
- उसके बाद controller gains ढूँढने पड़े
- Bobrow के paper में दिया गया tuning method इस cube पर काम नहीं आया
- यह cube Bobrow के cube से अलग wheels इस्तेमाल करता है, इसलिए gains को वैसे का वैसा reuse नहीं किया जा सकता था
- बार-बार manual tuning के बाद वही stabilization performance मिली जो video में दिखाई देती है
मिलते-जुलते cubes और अगला चरण
- निर्माता के अनुसार, यह Cubli जैसी balancing performance हासिल करने वाला पूरी तरह open source cube है
- अपेक्षाकृत अच्छी तरह documented समान projects ये हैं
- अगला लक्ष्य reaction wheels में mechanical brake जोड़ना है
- brake wheels को बहुत तेज़ी से रोक सकता है, जिससे motor के सीधे पैदा किए जा सकने वाले torque से कहीं ज़्यादा torque बनाया जा सकता है
- इसी torque से cube खुद jump-up manoeuver करके equilibrium position तक पहुँच सकता है
- निर्माता के अनुसार, यह feature अभी सिर्फ मूल Cubli में है
- Cubli का brake mechanism कई कारणों से पसंद नहीं आया, इसलिए आगे अलग approach अपनाने की योजना है
1 टिप्पणियां
Hacker News टिप्पणियाँ
control·signal processing में मास्टर्स करने वाले और अब उससे भी ज़्यादा उबाऊ काम करने वाले व्यक्ति के रूप में, मुझे लगता था कि signal sign को कई दिनों तक उलट-पुलट कर देखना मेरी अनुभवहीनता की वजह से था
बाद में पता चला कि उस निष्कर्ष में भी मैंने sign ही गलत लिया था
x *= -1.0; //DO NOT TOUCHजैसा कोड पड़ा हैसब ऐसा करते हैं, लेकिन आम तौर पर वे इसे कई हज़ार kg के explosives के ऊपर duct tape से चिपकाकर लाल बटन दबाने से पहले test कर लेते हैं :)
मैंने design और implement किए हर controller के साथ आखिरकार यह मानना सीखा कि sign और direction जैसी चीज़ें सही तरह काम करें, इसके लिए पर्याप्त unit tests ज़रूरी होते हैं
वह वीडियो देखकर सच में हैरानी हुई
यह शायद उस एहसास के सबसे करीब था कि “क्या यह सीधा जादू नहीं है?”
इसे धक्का देने पर जिस तरह यह प्रतिक्रिया देता है, वह वैसा लगता है जैसा पहली बार magnet देखने पर लगा था, लेकिन इस बार जैसे कोई बिल्कुल नई force देख रहे हों
यह जैसे किसी जीवित चीज़ की तरह खुद equilibrium बनाए रखता है, environment के बदलावों का विरोध करता है, और ऊपर tomato रख देने पर भी हमारा शरीर जैसे load change के अनुसार ढलता है, वैसे ही तुरंत adjust कर लेता है
अगर कभी 50 डॉलर वाला mass-produced छोटा version Amazon पर बिके, तो मैं ज़रूर उससे खेलना चाहूँगा
https://youtu.be/n_6p-1J551Y?si=zvwORnuPZmgXw0S8
programming सीखते समय लगा था, “अगर समय लगाकर program लिखूँ तो computer से जो चाहूँ वह कराया जा सकता है”
control theory भी वैसा ही एहसास देती है, बस इस बार ऐसा लगता है मानो physics के नियमों को “program” करके real world के काम करने का तरीका बदल रहे हों
YouTube पर देखें तो 10 साल से भी पुराने examples मिल जाते हैं
मैं अपने software engineer career का बहुत आनंद लेता हूँ, लेकिन साथ ही कभी-कभी लगता है कि काश मैंने वही field पढ़ी होती जिसमें ऐसी चीज़ें बनाना शुरू किया जा सके
सच में बहुत शानदार है
जैसे हममें से ज़्यादातर लोगों ने programming सीखी ;-)
बस पहला project self-balancing cube से शुरू न करें; Arduino या ESP board खरीदकर LED blink कराना शुरू करना बेहतर होगा
एक समझौते के तौर पर मैं home automation और esp32, rpi pico जैसे microcontrollers के साथ hobby electronics projects पर टिक गया
जो लोग कुछ tangible बनाना चाहते हैं, उनके लिए यह आज़माने लायक है
वैसे, इस cube project की कुल parts cost लगभग 2500 euro थी
कम-से-कम तब तक, जब तक यह पता न चले कि market में मौजूद jobs ज़्यादातर इंसानों को मारने वाली machines बनाने की हैं
मेरे लिए ऐसा ही था, हालाँकि हर किसी का अनुभव अलग हो सकता है
tutorials अच्छे हैं और products व videos का परिचय भी बहुत बढ़िया है
लगभग हर product के साथ video लगा होता है, इसलिए वहाँ पैसे खर्च करना बहुत आसान है
इससे coding speed, accuracy और efficiency बढ़ती है, इसलिए software engineer career में भी मदद मिलती है
https://www.reddit.com/r/ErgoMechKeyboards/comments/hj0q8x/f...
reaction wheel में mechanical brake जोड़कर jump maneuver संभव बनाने और cube को खुद अपनी equilibrium position तक पहुँचाने वाला हिस्सा देखने का इंतज़ार है
Cubli project में मुझे यह हिस्सा हमेशा सबसे शानदार लगा
वीडियो: https://youtu.be/n_6p-1J551Y?t=92
ऊपर चढ़कर चलना हो तो वह गोल नहीं हो सकती, लेकिन नीचे लुढ़कने के लिए rounded edges अच्छे लगते हैं
इससे दो rings से बने एक sphere जैसी आकृति की कल्पना आती है: 90 degree घूमकर rolling mode और walking mode के बीच switch करने वाली
वह cube किनारे पर jump करे, फिर vertex पर चढ़कर घूमना शुरू कर दे, और किसी भी तरह की surface पर ऐसा कर सके
physics से परिचित होने का दावा करने वाले ज़्यादातर लोग भी काफ़ी उलझन में पड़ जाएँगे, और अगर वह cube अचानक vertex से face पर लौटकर फिर jump करे, जिससे साबित हो जाए कि यह कोई छिपा हुआ protrusion mechanism नहीं है, तो शायद वे गंभीरता से जादू की संभावना के बारे में सोचने लगें
अब बस इसके साथ जँचने वाली शानदार wood exterior और induction charging base चाहिए
अगर यह Kickstarter पर आए तो मेरा पैसा ले सकता है
Brennan monorail train की याद आ गई
बहुत दिलचस्प वीडियो है https://www.youtube.com/watch?v=kUYzuAJeg3M
शानदार कला है
इसी व्यक्ति की बनाई यह दूसरी कृति पूरी तरह अलग है, लेकिन देखने में उतनी ही आनंददायक है: https://www.youtube.com/watch?v=P9jyNIWsRvI
कला रचने वाले इंजीनियर वाकई बहुत पसंद हैं
यह 170 साल पुराने सोफ़े पर reaction wheel लगाकर उसे एक ही पैर पर अविश्वसनीय ढंग से खड़ा रखने वाली कृति है
आखिर में जब reaction wheel अपनी सीमा तक पहुँच जाता है, तो सोफ़ा गिर पड़ता है और फट जाता है; कलाकार से पूछें तो वह कहेगा कि यह मानवीय रिश्तों जैसा लगता है
आजकल इसे देखकर राजनीति याद आना भी मुश्किल नहीं है
इस शैली के बहुत बड़े सम्मानों में से एक Prix Ars Electronica में भी इसे मान्यता मिली थी
वीडियो: https://www.youtube.com/watch?v=uQRP-b68fnE
लेख: https://ars.electronica.art/aeblog/en/2014/07/02/auf-der-suc...
सच कहूँ तो दोनों को आसानी से जोड़ा भी जा सकता है
हर रविवार मैं आम तौर पर कोड के ज़रिए नई ऊँचाइयाँ छूने के उत्साह में रहता हूँ, और यह संतोष होता है कि मैंने अपनी लगन और रचनात्मकता को आगे बढ़ाया; लेकिन ऐसी पोस्टें देखकर पूरी तरह पस्त हो जाता हूँ
मेरा धैर्य बहुत कम है और ऐसी चीज़ आज़माने की कोशिश करना भी बहुत डरावना लगता है
पिछले कुछ हफ्तों से मैंने side में React सीखना शुरू किया है, और दोस्तों के सचमुच काम आने लायक कुछ बनाकर काफ़ी गर्व महसूस हुआ
ज़ाहिर है उसमें “वाह” वाला तत्व नहीं है, लेकिन उसे बनाने में 2500 डॉलर नहीं लगे, न ही वर्षों, शायद दशकों की सीखने की लागत लगी
किसी भी क्षेत्र में दुनिया का सर्वश्रेष्ठ बनने वाले लोग बहुत कम होते हैं, लेकिन वह अहम बात नहीं है
उस तथ्य से यह नहीं बदलता कि मैं क्या कर सकता हूँ
इनमें से काफ़ी चीज़ों में soldering की भी ज़रूरत नहीं होती
बिल्कुल शून्य से शुरू करना बहुत कठिन होता है, क्योंकि तब कौन-से parts एक-दूसरे के साथ काम करेंगे, कितनी power चाहिए, वगैरह सब खुद समझना पड़ता है
तब यह बहुत आसान हो जाता है, और off-the-shelf parts या हाथ से बने parts भी इस्तेमाल किए जा सकते हैं
सच कहूँ तो balancing से ज़्यादा मुझे इस चीज़ का शानदार रूप आकर्षित करता है
मैंने तुरंत देखा कि क्या यह बिक्री के लिए उपलब्ध है, और खुद बनाने पर शायद 2500 डॉलर के आसपास खर्च आएगा
मुझे चाहे उतावला कह लें, लेकिन अगर इसका बड़ा version हो और किनारों के साथ holds लगे हों, तो मैं उस पर चढ़ने के लिए पैसे देना चाहूँगा
मैं खुद महसूस करना चाहूँगा कि यह मेरी हरकतों पर कैसे प्रतिक्रिया देता है
मज़ेदार thought experiment है
सोचता हूँ कि अगर battery कम हो जाए या reaction control wheel saturation पर पहुँच जाए, तो क्या इसे खुद से वापस Qi charger या pogo pins पर लेट जाने के लिए डिज़ाइन किया जा सकता है
शायद यह उसके बाद की बात होगी जब इसमें खुद से उठ खड़े होने लायक brake भी जोड़ दिया जाए
हालाँकि दूरी एक समस्या हो सकती है