- Carbage Run 2025 Winter edition की एंट्री शर्तों के हिसाब से एक पुरानी कार के रूप में 1993 Volvo 940 Estate चुनी गई, और originality assessment के लिए openpilot आधारित L2 driver-assistance मॉडिफिकेशन शुरू किया गया
- openpilot 275 से अधिक आधुनिक वाहनों को सपोर्ट करता है, लेकिन इस Volvo में steering, acceleration और braking mechanical/hydraulic हैं, इसलिए हर फ़ंक्शन को इलेक्ट्रॉनिक तरीके से चलाने के लिए actuators चाहिए
- steering को 2020 Toyota Corolla EPS और external steering-angle sensor को Volvo steering column में transplant करके लागू किया गया, और यह सिर्फ़ basic power, ignition signal और CAN connection से काम करने लगा
- braking के लिए vacuum brake booster को Bosch iBooster से बदला गया, और acceleration को RC servo और auxiliary cable से carburetor valve खींचने के तरीके से बनाया गया
- मौजूदा hydraulic steering assist और नया electric steering assist साथ-साथ काम करने से steering wheel हल्का हो गया, लेकिन मोड़ के बाद wheel अपने-आप center में वापस नहीं आता—यह limitation अभी बनी हुई है
Carbage Run के लिए 1993 Volvo को self-driving car में बदलना
- शुरुआत Carbage Run 2025 Winter edition में हिस्सा लेने से हुई
- सर्दियों में Sweden से होकर Arctic Circle तक जाना और फिर Helsinki तक उतरना—कुल 6 दिन की यात्रा
- लगभग 400 वाहन साथ में हिस्सा लेते हैं
- एंट्री वाहन कम-से-कम 20 साल पुराने होने चाहिए और daily value €1000 से कम होनी चाहिए
- Belgium तक आने-जाने को शामिल करें तो एक हफ्ते से थोड़ा अधिक समय में लगभग 6000km चलना होगा
- वाहन की originality भी assessment का हिस्सा है, इसलिए 1993 Volvo 940 Estate को self-driving car जैसा बनाने का फैसला किया गया
openpilot को वाहन में क्या चाहिए
- openpilot, comma.ai द्वारा विकसित L2 advanced driver-assistance project है
- यह Tesla Autopilot जैसी partial self-driving के करीब सुविधाएं देता है
- हाल के Toyota, Honda, Hyundai, VW आदि के 275 से अधिक vehicle models को सपोर्ट करता है
- Tesla Model 3/Y भी supported list में शामिल हैं
- मुख्य शर्त यह है कि वाहन steering, acceleration और braking को electronically actuate कर सके
- आधुनिक वाहनों में आमतौर पर ये devices CAN-bus messages के जरिए drive commands लेते हैं
- Electric Power Steering, यानी EPS
- electric brake booster या ABS pump
- electronic engine control unit
- 1993 Volvo 940 इन शर्तों से काफी दूर है
- steering hydraulic है
- accelerator pedal, carburetor तक जाने वाली cable-operated व्यवस्था है
- brake booster vacuum-operated है
steering: Toyota Corolla EPS transplant
- lane keep करने के लिए ऐसा steering actuator चाहिए जो electronically steering wheel पर torque दे सके
- चुना गया तरीका 2020 Toyota Corolla के EPS actuator और ECU को transplant करना था
- Corolla में यह motor dashboard के पीछे steering column पर लगी होती है
- यह driver torque मापकर output shaft पर amplified force देती है
- Volvo के original straight-shaft steering column को हटाकर बीच में Corolla EPS लगाया गया
- Corolla rack से steering-wheel adjustment से जुड़े parts जितना संभव हो हटाए गए
- Volvo column का हिस्सा काटकर Corolla-side spline से weld किया गया
- original steering frame से EPS तक अतिरिक्त reinforcement जोड़ा गया
- Corolla में external steering-angle sensor भी है
- EPS motor का internal sensor internal control loop के लिए precise relative angle में इस्तेमाल होता है
- external sensor straight-ahead position पर 0 degree के absolute steering angle देता है
- openpilot के vehicle controller code को भी absolute steering angle चाहिए
- Toyota schematics और connector docs थोड़े पैसे देकर download किए जा सकते थे, इसलिए wiring समझना आसान था
- steering rack को GND, constant 12V, 80A fuse, 12V ignition signal, और steering-angle sensor के लिए CAN चाहिए
- सिर्फ़ इन connections से EPS चल गया, और Toyota vehicle speed messages आदि न होने के कारण यह limp mode में हो सकता है
hydraulic steering और electric steering दोनों साथ रहने की समस्या
- मूल Volvo का hydraulic power steering वैसा ही रहता है और electric EPS के साथ एक साथ काम करता है
- hydraulic assist बंद करके सिर्फ़ electric assist इस्तेमाल करना भी संभव है, लेकिन steering rack को सामान्य तौर पर EPS से आने वाला बड़ा torque लगातार सहने के लिए design किया गया है या नहीं, यह स्पष्ट नहीं है
- दोनों steering assists ON होने पर भी driving संभव थी और steering हल्की हो गई
- कमी यह है कि वाहन का self-centering torque दोनों systems को reverse-drive करने के लिए पर्याप्त नहीं है
- मोड़ पर wheel छोड़ने पर यह center में वापस नहीं आता
- जिस position में छोड़ा जाता है, वहीं ठहर जाता है
- संभावित solutions में से एक hydraulic pressure कम करके original assist force घटाना है, लेकिन इसे अभी आज़माया नहीं गया है
braking: Bosch iBooster लगाना
- लंबी दूरी की driving का बोझ कम करने वाली modern vehicle features में से एक Adaptive Cruise Control है
- आगे वाली कार से safe distance रखने के लिए वाहन को automatically brake कर पाना चाहिए
- मूल Volvo brakes में driver द्वारा pedal पर लगाए force को vacuum assist amplify करता है और master cylinder को दबाता है
- modern vehicles का basic principle भी समान है, और Tesla आदि में इस्तेमाल होने वाला Bosch iBooster vacuum assist को force sensor और electric motor से replace करता है
- iBooster EV conversion projects में व्यापक रूप से इस्तेमाल होता है
- मौजूदा engine के vacuum source को replace करने की तुलना में cleaner setup संभव होता है
- CAN connected न होने पर भी यह limp mode में चला जाता है और control functions के बिना इस्तेमाल किया जा सकता है
- EVcreate ने iBooster के इस्तेमाल पर articles प्रकाशित किए हैं, जिनमें उदाहरण के तौर पर Wiring the iBooster है
- used iBooster काफी लोकप्रिय हैं, इसलिए vehicle price की तुलना में महंगे थे
- EVcreate के Lars ने CAN control research मिलने की शर्त पर iBooster उपलब्ध कराया
iBooster installation process और brake plumbing
- Volvo के vacuum booster को हटाकर iBooster लगाने पर, उम्मीद के उलट bolt-hole pattern और central alignment hole बिल्कुल match हुए
- iBooster में built-in pushrod भी pedal से जोड़ने के लिए लगभग सही length का था
- pedal न दबे होने पर pushrod पूरी तरह extend रहे, इसके लिए threaded stud में 2mm washer जोड़ा गया
- iBooster master cylinder में port positions अलग थीं, इसलिए original brake lines fit नहीं हुईं
- छोटे distribution block जैसे दिखने वाले part तक नई copper brake lines जोड़ी गईं
- brake bleeding और power connection के बाद brakes सामान्य रूप से काम करने लगे
- clutch भी उसी reservoir के brake fluid से hydraulically actuated था, इसलिए एक छोटा separate tank जोड़ा गया
- iBooster master cylinder tank में clutch के लिए port नहीं है
acceleration: RC servo और auxiliary cable
- Volvo का accelerator pedal Bowden cable से carburetor air valve से जुड़ा purely mechanical setup है
- modern vehicles carburetor के बजाय direct injection और advanced engine control units इस्तेमाल करते हैं, इसलिए suitable modern automotive acceleration actuator आसानी से नहीं मिला
- acceleration actuator के steering या braking जितने बड़े safety implications नहीं माने गए, इसलिए इसे off-the-shelf hobby parts से बनाया गया
- standard cruise control logic की तरह design किया गया कि यदि driver pedal और ज्यादा दबाए, तो applied acceleration position override हो सके
- air-valve pulley से दो cables जोड़ी गईं
- जो cable ज्यादा दूर खींचती है, वही जीतती है
- AliExpress से waterproof RC servo खरीदा गया, और servo पर लगाने के लिए second pulley machine की गई
- servo mount बनाया गया और loose cable को limit करने के लिए bronze guide bushing जोड़ी गई
radar और आगे का काम
- actuator तो नहीं, लेकिन front grille के पीछे Tesla Continental radar sensor भी लगाया गया
- openpilot में vision-only ACC भी कुछ हद तक काम करता है, लेकिन actual radar इस्तेमाल करने से experience ज्यादा smooth और consistent होता है
- अगला लेख wiring और custom ECU पर होगा
- actuators को ठीक से चलते रहने में मदद करने की भूमिका
- cruise control buttons का implementation
- speed और turn signals पढ़ना
- इसके बाद ECU code और openpilot port समझाए जाएंगे और इन्हें open source के रूप में release करने की योजना है
1 टिप्पणियां
Hacker News की रायें
Volvo 940 वाकई शानदार कार है, और अब तक बनी कारों में भी बेहतरीन quality और design वाली कार के रूप में अलग दिखती है
1960 के दशक की Volvo 140 से शुरू होकर, 70 के दशक की 240 और 80 के दशक की 740 से गुजरते हुए यह धीरे-धीरे evolve हुआ एक बहुत mature design था, इसलिए 940 तक आते-आते लगभग सभी समस्याएं refine हो चुकी थीं
बस काश AWD और अच्छा mileage देने वाला diesel साथ में चुनने का option होता। Diesel था, लेकिन अमेरिका में बेचा नहीं गया
लेखक को electrical hacking की काफी जानकारी लगती है, लेकिन अगर automotive side पता होती तो कुछ हिस्से और आसानी से निपटाए जा सकते थे। उदाहरण के लिए, अगर ज्यादा नया BOSCH ABS pump लगा देते तो brake booster से गुजरे बिना electrically brakes activate किए जा सकते थे, और 90s के आखिर में traction control वाली European cars से ही ऐसे devices इस्तेमाल होने लगे थे
Steering को पूरा electric steering rack transplant करके, या Volvo 240 का पूरी तरह manual rack लगाकर, या hydraulic power steering pump में air-conditioner compressor clutch जोड़कर parking speed से ऊपर उसे बंद करने के तरीके से हल किया जा सकता था
और यह कार carburetor वाली नहीं, बल्कि electronic fuel injection वाली है। Throttle body के ऊपर injector और fuel rail दिखते हैं। इससे भी महत्वपूर्ण बात यह है कि इस कार में factory cruise control के लिए electronic throttle control system था, और missing parts भी सस्ते और आम हैं, इसलिए संभावना है कि वे engine में पहले से मौजूद bracket और cam में सीधे fit हो जाते
सच में इसमें carburetor नहीं है, और मैंने plane में आधी नींद में लिखते समय cable से चलने वाला mechanical throttle/air valve कहना चाहा था, लेकिन गलत लिख दिया
इस कार में ABS भी नहीं है। शायद इस model year से यह option रहा हो, लेकिन इसलिए pump swap कोई option नहीं था। iBooster एक बढ़िया और आसान mod है, recommend करता हूं
अभी किया नहीं है, लेकिन hydraulic steering में regulator को shim करके pressure कम करने का plan है, और लगता है वह काफी होगा। अभी भी उस mod के बिना कुछ हद तक steering हो जाती है
आजकल V90 जैसी बड़ी Volvo बेवकूफी भरी Chinese-style luxury car बन गई है, इसलिए खरीदने का कोई इरादा नहीं
“आजकल की कारों में carburetor नहीं होते और वे direct injection और advanced engine control units इस्तेमाल करती हैं” वाली व्याख्या सही नहीं है
असल में fuel injection system throttle control से काफी independent होता है। जरूरी fuel quantity intake manifold pressure sensor के आधार पर calculate होती है, इसलिए fuel injection और cable-operated throttle plate दोनों साथ इस्तेमाल करने वाली कारें भी थीं
समस्या शायद यह रही होगी कि carburetor को throttle plate के upstream होना पड़ता है, इसलिए modern throttle body plumbing को fit करने का मामला रहा होगा
उस समय के LH systems सभी MAF sensor इस्तेमाल करते थे
पिछले 5 सालों से openpilot development में हिस्सा ले रहा हूं, और इस project के user cases में हमेशा बहुत interest रहता है
इस vacation में मैंने अपनी car में openpilot चालू करके 2500 miles चलाया, और अनुभव शानदार था। पूरी trip में शायद करीब 10% ही खुद drive किया, बाकी automation पर छोड़ दिया
फिर भी improvement की गुंजाइश बहुत ज्यादा है, इसलिए इस साल मैं openpilot fork बनाकर ADAS features को modern vehicles, यानी Tesla के और करीब लाने पर focus करना चाहता हूं
पहला release Show HN पर डालने का plan है
अगर खुद image build और flash करने की हिम्मत जुटी, तो जो चीज आजमाना चाहूंगा वह है turn signal लगाए हुए lane change को पहचानकर slow down करना। अभी मेरी जानकारी में car तब slow होती है जब दूसरी car पहले ही lane में घुस चुकी होती है। पता है edge cases बहुत हैं, लेकिन यह काफी safe और courteous change लगता है
साथ ही अच्छा होगा अगर यह कई cars की brake lights पहचानकर accelerator से foot off करे। अभी लगता है यह सिर्फ सामने वाली car के radar का इस्तेमाल करता है, लेकिन अगर आसपास की 75% cars ने brake lights on कर रखी हैं और सिर्फ सामने वाली car slow react कर रही है या aggressively drive कर रही है, तो Comma को उस chain को और push करने की जरूरत नहीं
एक बेहद अच्छा feature होगा speed limit signs को पहचानकर cruise speed adjust करना। खासकर exit ramp पर 65mph से घुसते हुए फिर curvature speed के मुकाबले बहुत ज्यादा है कहकर शिकायत करने वाली situation कम करना चाहता हूं
Exit ramp के “recommended speed” signs पहचान ले तो सबको मनचाहा result मिलेगा, और अगर ramp किसी दूसरी highway में जाता है तो driver को अलग से input देने की जरूरत भी नहीं होगी। Stop signs, yellow lights या red lights भी पहचान सके तो अच्छा होगा। Traffic situation तक detect करने की जरूरत नहीं, लेकिन stop sign और red light की तरफ full speed से भागते हुए warning बजाना अच्छा नहीं लगता
यह भी देखना होगा कि Comma को पता है या नहीं कि मेरी car EV है, और brake दबाने के बजाय accelerator छोड़ सकती है या नहीं। मेरी car में regenerative braking के कई levels हैं, तो उसे consider करना भी अच्छा होगा, लेकिन personally मैं BMW i3 का आदी हूं, इसलिए हमेशा सबसे strong regen पर रखता हूं
सोच रहा हूँ कि स्वीडन की सार्वजनिक सड़कों पर इस कार को चलाया जा सकता है या नहीं
मुझे लगा था कि ऐसे DIY मॉडिफिकेशन पर स्वीडिश कानून बहुत सख्त होगा, अगर इसकी अनुमति है तो यह हैरान करने वाली बात होगी
ऐसे मॉडिफिकेशन स्वीडन और फिनलैंड की सार्वजनिक सड़कों पर साफ़ तौर पर अवैध हैं, और कई बार सिर्फ़ नियमित inspection पास कर लेना पर्याप्त नहीं होता। रोड पर चलाना कानूनी होने के लिए type approval लेना पड़ता है
यह नीदरलैंड में registered दिखती है, लेकिन नीदरलैंड में भी मुझे लगता है यह कार नियमित inspection पास नहीं कर पाएगी। नीदरलैंड सरकार का अंग्रेज़ी info page है: https://www.government.nl/topics/general-periodic-inspection...
फिर भी project अपने आप में बहुत शानदार है
“खुशकिस्मती से [accelerator pedal servo] ही अकेला actuator है जिसके साथ बड़ा safety issue नहीं जुड़ा” वाला वाक्य डरावना है
अगर वह RC servo full throttle पर अटक जाए तो क्या होगा? मान लिया गया होगा कि clutch दबा देंगे, लेकिन हालात के हिसाब से यह समझने और react करने के लिए बहुत समय नहीं मिल सकता कि हुआ क्या है
लगता है भाग 2 में gear shifting को cover किया जाएगा
सीधे तौर पर नहीं बताया गया, लेकिन यह संकेत है कि clutch भी hydraulic से operate होता है, इसलिए manual transmission होने की संभावना लगती है। यूरोप में खरीदी गई 1993 Volvo के लिए यह अनुमान सही बैठता है
लगता नहीं कि वे कोई नया transmission modify करके डालेंगे, शायद वे कोई crude automatic clutch लगाने की कोशिश कर रहे हों
6000km की driving का ज़्यादातर हिस्सा शायद उसी हालत में रहा होगा। धीमे traffic में जहाँ gear shifting चाहिए, वहाँ “self-driving” छोड़नी पड़ेगी, लेकिन फिर भी यह बहुत उपयोगी है
लेखक ने कहा कि भाग 2 में wiring और actuators को stable रखने के लिए खुद design किया गया custom ECU, cruise control buttons का implementation, speed और turn signals पढ़ना वगैरह cover करेंगे, और फिर भाग 3 में ECU code और openpilot port समझाकर उसे open source करेंगे
मैं खुद तो ऐसा नहीं करूँगा, लेकिन अच्छा है कि कोई इतना बहादुर है कि यह कर दिखाए। यह एक शानदार कहानी बनेगी
इस लेख को मैंने कारों को और बेहतर समझने, और खुद व दूसरों को DIY inspiration देने के लिए save कर लिया है
क्या comma 3X में radar जोड़ सकते हैं? मुझे लगा था यह vision-only है, दिलचस्प है