{"id":102,"date":"2026-02-18T20:48:18","date_gmt":"2026-02-18T20:48:18","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/?page_id=102"},"modified":"2026-11-14T17:32:22","modified_gmt":"2026-11-14T17:32:22","slug":"issues-log","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/issues-log\/","title":{"rendered":"Issues log"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Fall Issues Log<\/h2>\n\n\n\n<table id=\"tablepress-3\" class=\"tablepress tablepress-id-3\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Issue Number<\/th><th class=\"column-2\">Date Found<\/th><th class=\"column-3\">Date Fixed<\/th><th class=\"column-4\">Owner<\/th><th class=\"column-5\">Origin<\/th><th class=\"column-6\">Description<\/th><th class=\"column-7\">Resolution<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Amily, Atirav<\/td><td class=\"column-5\">Sponsor Feedback<\/td><td class=\"column-6\">A second ankle exoskeleton for a bilateral system had been planned (CAD review, BOM, inventory check, and purchasing list completed), but Prof. Kang questioned whether building more hardware was the right priority, since it would take significant time and add little research contribution compared to improving the controller.<\/td><td class=\"column-7\">Team unanimously decided, with sponsor backing, to stay with a single exoskeleton. Effort split set at 75\/25 controller\/hardware from September into October, moving to 100% controller from October into November; Jira timeline updated to reflect this.<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">2<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Amily<\/td><td class=\"column-5\">Data Infrastructure<\/td><td class=\"column-6\">While setting up the Hugging Face dataset for automatic data backup, the repository was accidentally created with the MIT License instead of the intended CC BY 4.0, and the license cannot be changed after creation.<\/td><td class=\"column-7\">Amily is investigating whether the existing dataset can be migrated with the correct license while preserving collected data. Fallback is to create a new dataset repository with CC BY 4.0 and update the upload pipeline.<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">3<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Atirav, Amily<\/td><td class=\"column-5\">Mechanical Design<\/td><td class=\"column-6\">The original 1\/16&#8243; 7&#215;7 braided steel Bowden cable (96 lb working load limit) was undersized for the ~117 lb (523 N) peak cable force, especially given the high-jerk torque profile from the controller, and the cable repeatedly went slack during last semester&#8217;s testing.<\/td><td class=\"column-7\">Upgraded to 3\/32&#8243; 7&#215;7 aircraft cable (920 lb breaking limit), combined with a planned soft-start motion profile to reduce jerk. Amily also investigating the root cause of slack (cable deformation, crimping, tensioning mechanism, or dynamic loading).<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">4<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Narayanan, Atirav<\/td><td class=\"column-5\">Software \/ Calibration<\/td><td class=\"column-6\">IMU frame calibration fits were unreliable: iterative Euler-angle optimization sometimes converged to a reflection instead of a rotation with a small residual masking the error, and phase alignment using gyro magnitude locked onto a rotation 180\u00b0 off while appearing confident.<\/td><td class=\"column-7\">Switched to a closed-form Kabsch solution with a determinant check (det R = +1), added an explicit lever-arm term for accelerometers, scored candidate lags by the rotation-fit residual, and averaged fits across all trial pairs with outlier rejection.<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">5<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Narayanan<\/td><td class=\"column-5\">Sensor Integration<\/td><td class=\"column-6\">The ankle encoder has no physical zero: its raw power-on reading clustered near one value in most sessions but was ~90\u00b0 off in another, indistinguishable from a fault without direct checking.<\/td><td class=\"column-7\">Implemented per-session homing using a quiet-stand median with an IQR-based stillness check, 0\/360 wraparound handling, and a startup sanity check. Encoder sign and mechanical ratio fitted with Atirav using waveform correlation and a slow sweep.<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">6<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Atirav<\/td><td class=\"column-5\">Electronics Design<\/td><td class=\"column-6\">The proto-board header connections used to wire sensors in parallel for power and I2C caused high-frequency noise and NaN values, the connectors could be plugged in reversed, and an AS5600 encoder was damaged by ESD.<\/td><td class=\"column-7\">Atirav designed a sensor connector PCB with ESDS302DBVR ESD protection on SDA\/SCL, 47 \u00b5F bulk capacitors, and 100 nF bypass capacitors at each sensor, plus a move to shielded twisted-pair cabling. The PCB was delayed (see Issue 17), so an interim hand-built board was used instead.<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">7<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Amily, Atirav<\/td><td class=\"column-5\">Mechanical Design \/ Procurement<\/td><td class=\"column-6\">Existing barrel adjusters could not fit the thicker 3\/32&#8243; cable. Drilling them out (suggested by the OpenExo team) would thin the walls and often deformed the part, and the lab lacked a suitable clamp. An M10 adjuster would not fit the CAD envelope without re-machining aluminum parts.<\/td><td class=\"column-7\">Ordered M7 and M8 barrel adjusters with matching nuts to check fit within the existing design envelope; the M8 nut was confirmed to fit.<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">8<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Pawan, Amily<\/td><td class=\"column-5\">Electronics \/ Embedded<\/td><td class=\"column-6\">The shared I2C bus (two BNO085 IMUs, AS5600 encoder, ADS1115 ADC) was limited by the Jetson&#8217;s default 100 kHz clock, falling short of the 100\u2013200 Hz sampling target. The Jetson&#8217;s 400 kHz-capable port was broken.<\/td><td class=\"column-7\">Amily found the bus speed could be changed via the Linux device tree; Pawan reconfigured the working port to 400 kHz, reaching a stable 198 Hz full-sensor sweep. Moving the IMUs to SPI was documented as a fallback if more headroom is needed.<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">9<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Sep 2026<\/td><td class=\"column-4\">Pawan, Atirav<\/td><td class=\"column-5\">Electronics Design<\/td><td class=\"column-6\">Sensors repeatedly dropped off the I2C bus when the Jetson was powered from a separate wall adapter\/DC supply for bench work, requiring 20+ unit checks across connectors, cables, and sensors to isolate.<\/td><td class=\"column-7\">Root cause was no common ground between the Jetson and sensor power domains. Grounds are now explicitly bonded between the Jetson and the sensor buck-boost converter regardless of the Jetson&#8217;s power source, and the requirement was added to the bench setup notes.<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">10<\/td><td class=\"column-2\">Sep 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Gautam<\/td><td class=\"column-5\">Dataset Mismatch<\/td><td class=\"column-6\">Optimization-based fitting of the GaTech-to-exo IMU transformation frequently converged to local minima, reaching only ~60\u201370% accuracy, with the lowest accuracy on the most important axes (accelerometer z, gyroscope x). Adding constraints added complexity with little benefit.<\/td><td class=\"column-7\">Team shifted to estimating GaTech IMU placement through simulation (Gautam in Simulink, Amily in MuJoCo using motion capture data) and deriving the transformation from the estimated sensor positions.<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-1\">11<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Amily, Atirav<\/td><td class=\"column-5\">Software \/ Testing<\/td><td class=\"column-6\">During the sensor rate and read-failure test (Test 1), the data collection process occasionally stalled for ~19\u201354 ms, causing failures even though the sensors themselves were meeting their rates. The stall was traced to Python&#8217;s garbage collector slowing down as the logger buffered ~500,000 rows.<\/td><td class=\"column-7\">Suspended garbage collection during runs and pinned the logger to a single CPU core (real-time scheduling was not available without root access). Test 1 passed on repeated bench runs; walking conditions still pending.<\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-1\">12<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Amily, Atirav<\/td><td class=\"column-5\">Test Design<\/td><td class=\"column-6\">Frozen-data test (Test 2) criteria incorrectly flagged healthy sensors: unloaded FSRs naturally stay near-constant, and the encoder holds the same value for ~12\u201315 samples near swing reversal, exceeding the original 5-sample threshold.<\/td><td class=\"column-7\">Revised the test so each channel is only evaluated while its own input is active, and changed the encoder unchanged-value limit from 5 samples to 50 ms. Bench test then passed and flagged only the intentionally frozen shank gyro (positive control).<\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td class=\"column-1\">13<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Amily, Atirav<\/td><td class=\"column-5\">Software \/ Timing<\/td><td class=\"column-6\">Read-time skew test (Test 3) met the 10 ms 99th-percentile limit, but 0.13\u20130.20% of control loops reused a stale IMU reading during ankle motion, exceeding the 0.1% tolerance. Traced to the logger&#8217;s catch-up scheduling starting a loop early before a new IMU sample was available.<\/td><td class=\"column-7\">Team plans to switch to a fixed 10 ms loop deadline instead of catch-up scheduling and rerun the test. Amily later found IMU packet intervals vary from ~7\u201313 ms, so some loops get no new packet and the next gets two; timestamp-based freshness checks are being considered.<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-1\">14<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Gautam<\/td><td class=\"column-5\">Dataset Mismatch<\/td><td class=\"column-6\">Transformation matrices between GaTech and exoskeleton IMU locations, derived from a Simulink walking model with mounted virtual IMUs, were not accurate enough to test on the exoskeleton.<\/td><td class=\"column-7\">Team moved to a MuJoCo model driven by GaTech motion capture data (Amily) to fit IMU position and orientation. Gautam&#8217;s Simulink results were used to cross-validate, with both placing the shank IMU at ~3\/4 shank length.<\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-1\">15<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Pawan<\/td><td class=\"column-5\">Sensor Integration<\/td><td class=\"column-6\">IMU frame transformation errors are silent: a flipped axis sign or swapped axis produces a believable but wrong signal that would surface later as an apparent controller tuning problem rather than a data problem.<\/td><td class=\"column-7\">Pawan validated every axis against physical references instead of mounting drawings: gravity at standing pose to confirm accelerometer axis and sign, and deliberate dorsiflexion\/plantarflexion to confirm gyro signs. Transformed signals were then compared against GaTech channels during standing and walking.<\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td class=\"column-1\">16<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Narayanan<\/td><td class=\"column-5\">Software \/ Evaluation<\/td><td class=\"column-6\">Running the new waveform metrics package on real data exposed two bugs: CMC saturated at 1.0 with many strides, and peak metrics took the maximum value, missing the negative push-off peak.<\/td><td class=\"column-7\">Rewrote CMC using the Kadaba formula and changed peak detection to follow the signal&#8217;s dominant direction, improving per-stride peak ICC from 0.13 to 0.72.<\/td>\n<\/tr>\n<tr class=\"row-18\">\n\t<td class=\"column-1\">17<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Atirav<\/td><td class=\"column-5\">Procurement<\/td><td class=\"column-6\">The custom sensor connector PCB was delayed due to miscommunication with JLCPCB over email for their PCBA service; a reply sent to JLCPCB was never acknowledged.<\/td><td class=\"column-7\">Atirav built an interim board on an MRSD lab protoboard with 2.54 mm JST connectors, bypass and bulk capacitors, silvered copper wiring, and a custom standoff to insulate it from the aluminum frame. ESD protection now comes from the TVS diodes built into the Adafruit sensor breakouts.<\/td>\n<\/tr>\n<tr class=\"row-19\">\n\t<td class=\"column-1\">18<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Atirav, Pawan<\/td><td class=\"column-5\">Electronics Design<\/td><td class=\"column-6\">The off-brand AS5600 encoder breakout failed again (the second one lost) and took the ADS1115 ADC with it. The most likely cause is ESD from the velcro backmount, which generates static on every don\/doff.<\/td><td class=\"column-7\">Switched to the Adafruit AS5600 breakout with built-in TVS diodes and I2C pull-ups; Atirav designed a new encoder mount for its hole pattern with larger openings for the JST SH connectors. Distal sensors rewired with fresh JST crimps and grounded to a single point on the frame, and wiring checked to confirm ground is not tied to the wearer.<\/td>\n<\/tr>\n<tr class=\"row-20\">\n\t<td class=\"column-1\">19<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Atirav, Amily<\/td><td class=\"column-5\">Software \/ Safety<\/td><td class=\"column-6\">The new 3\/32&#8243; cable snapped during testing. An error in the CAN exit message structure sent a non-zero &#8220;stop&#8221; command that was actually a full-torque command, and the torque limit function was scaling applied torque up by 4x due to a pre-scaler.<\/td><td class=\"column-7\">Fixed the CAN exit message in both deployment and testing code and synced the change across all branches. Added global torque thresholds to the actuator driver so no rogue commands can reach the motor. Amily repaired the cable assembly so testing could continue.<\/td>\n<\/tr>\n<tr class=\"row-21\">\n\t<td class=\"column-1\">20<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Narayanan, Pawan<\/td><td class=\"column-5\">Software \/ Controls<\/td><td class=\"column-6\">In the first powered run of the ML controller (85 strides), the torque sent to the motor was the mirror image of the model&#8217;s output, so the exoskeleton resisted the wearer. The assistance scale was also set to 0.2 instead of 0.02, so requests reached ~21 N\u00b7m and were clipped at the 2 N\u00b7m limit, flattening the torque waveform.<\/td><td class=\"column-7\">Corrected the sign convention between controller output and motor driver and restored the intended 0.02 scale. Added a bench check that commands a known low torque and confirms direction at the output before the exoskeleton goes on a person.<\/td>\n<\/tr>\n<tr class=\"row-22\">\n\t<td class=\"column-1\">21<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Amily<\/td><td class=\"column-5\">Manufacturing \/ Tooling<\/td><td class=\"column-6\">Cutting and crimping the thicker 3\/32&#8243; cable was much harder than expected; the lab&#8217;s cutters and crimpers were not adequate for a reliable crimp, even with body weight applied. Since the crimp is in the main force path, a weak crimp could fail even if the cable is strong enough.<\/td><td class=\"column-7\">Cable replacement was completed manually. Team plans to source proper cutting and crimping tools and run a controlled pull test on crimped connections before installing them on the exoskeleton.<\/td>\n<\/tr>\n<tr class=\"row-23\">\n\t<td class=\"column-1\">22<\/td><td class=\"column-2\">Oct 2026<\/td><td class=\"column-3\">Oct 2026<\/td><td class=\"column-4\">Gautam<\/td><td class=\"column-5\">Software \/ Performance<\/td><td class=\"column-6\">The CAN-to-control loop test initially showed very high latency because the TCN model used a large amount of memory. Under full load, the loop averaged 86.87 Hz, short of the 100 Hz target.<\/td><td class=\"column-7\">Parallelized the model code on the Jetson&#8217;s GPU and moved the deployment code to NumPy-only data structures, roughly halving latency. The later end-to-end latency test confirmed the full pipeline runs above 100 Hz with each cycle under 10 ms.<\/td>\n<\/tr>\n<tr class=\"row-24\">\n\t<td class=\"column-1\">23<\/td><td class=\"column-2\">Nov 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Gautam, Amily<\/td><td class=\"column-5\">Electronics \/ Embedded<\/td><td class=\"column-6\">IMUs restarted with I2C errors (Errno 121) whenever the motor driver was powered: with the actuator on at 0 N\u00b7m, 22 of 33 sensor checks failed, the foot IMU restarted 19 times, and the foot accelerometer missed 86.8% of samples. Failures also occurred on the bench with the motor powered.<\/td><td class=\"column-7\">Gautam isolated the cause with a dropout monitor and a zero-torque CAN sender, pointing to the powered motor driver rather than walking motion. Later 60 s and 180 s runs showed no dropouts or only short gaps (max 67 ms). Amily separated true dropouts from normal 7\u201313 ms packet timing jitter. Monitoring continues under full walking load.<\/td>\n<\/tr>\n<tr class=\"row-25\">\n\t<td class=\"column-1\">24<\/td><td class=\"column-2\">Nov 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Gautam<\/td><td class=\"column-5\">Software \/ Controls<\/td><td class=\"column-6\">Two problems in the TBE controller: a single heel strike could be recorded twice, corrupting stride counts and times, and FSR reads could fail with an I2C error (Errno 121), likely from motor noise, which stopped the control loop.<\/td><td class=\"column-7\">Heel strikes are now only accepted 0.5 s after the previous one. Each FSR read retries twice with a 3 ms timeout and holds the previous value if missed, with a safe stop after 75 consecutive failures (~0.5 s). Shutdown path restructured so motor torque is always zeroed and buses released on any exit.<\/td>\n<\/tr>\n<tr class=\"row-26\">\n\t<td class=\"column-1\">25<\/td><td class=\"column-2\">Nov 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Atirav, Amily<\/td><td class=\"column-5\">Testing \/ Logistics<\/td><td class=\"column-6\">The scheduled EMG data collection session at the MetaMobility Lab was lost because the exoskeleton could not read valid sensor signals, even though the sensors appeared connected. The session ended before the issue was found.<\/td><td class=\"column-7\">Root cause was a loose ground cable in the sensor wiring; Atirav rewired the connection and data collection was completed a few days later. Team plans to run a sensor and wiring check before every lab session.<\/td>\n<\/tr>\n<tr class=\"row-27\">\n\t<td class=\"column-1\">26<\/td><td class=\"column-2\">Nov 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Narayanan, Atirav<\/td><td class=\"column-5\">Controls \/ Tuning<\/td><td class=\"column-6\">The wearer reported poorly timed assistance. Narayanan first trained TCN variants predicting 50\u2013150 ms ahead to compensate for suspected lag, but later feedback showed assistance was actually arriving too early, so predicting further ahead moved timing the wrong way.<\/td><td class=\"column-7\">Added a configurable output delay buffer that holds predictions before sending them to the actuator, clears on swing or when assistance is disabled, and can be set from the dashboard. Delayed trials felt better to the wearer and reduced lateral gastrocnemius EMG versus TBE.<\/td>\n<\/tr>\n<tr class=\"row-28\">\n\t<td class=\"column-1\">27<\/td><td class=\"column-2\">Nov 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Atirav<\/td><td class=\"column-5\">Mechanical Design<\/td><td class=\"column-6\">At higher assistance levels enabled by the thicker cable, the shoe was not rigid enough to transmit torque from the exoskeleton to the foot and visibly deformed under load.<\/td><td class=\"column-7\">Filled the sole of the shoe with hot glue, making the joint much more rigid and giving a firm connection to the exoskeleton.<\/td>\n<\/tr>\n<tr class=\"row-29\">\n\t<td class=\"column-1\">28<\/td><td class=\"column-2\">Nov 2026<\/td><td class=\"column-3\">Nov 2026<\/td><td class=\"column-4\">Pawan<\/td><td class=\"column-5\">Mechanical Design<\/td><td class=\"column-6\">During extended lab trials, nuts on the assembly loosened with prolonged use, and the subject found the extruding bolts uncomfortable; both issues could end a session early.<\/td><td class=\"column-7\">Refitted the loosened nuts with locknuts and covered extruding bolts with plastic caps. Team will confirm both fixes hold through a full-length session.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-3 from cache -->\n\n\n<h2 class=\"wp-block-heading\">Spring Issues Log<\/h2>\n\n\n\n<table id=\"tablepress-1\" class=\"tablepress tablepress-id-1\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Issue Number<\/th><th class=\"column-2\">Date Found<\/th><th class=\"column-3\">Date Fixed <\/th><th class=\"column-4\">Owner<\/th><th class=\"column-5\">Origin<\/th><th class=\"column-6\">Description<\/th><th class=\"column-7\">Resolution<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">Jan 2026<\/td><td class=\"column-3\">Jan 2026<\/td><td class=\"column-4\">Atirav<\/td><td class=\"column-5\">Sponsor Feedback<\/td><td class=\"column-6\">Dr. Kang requested a design change from insole foot plate to permanently securing a shoe\/boot to the exoskeleton, requiring ~30% of the ankle assembly to be redesigned.<\/td><td class=\"column-7\">Atirav redesigned the ankle assembly with the new shoe-mounted approach. Resulted in a 1.5-week schedule backlog and parts re-sourcing.<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">2<\/td><td class=\"column-2\">Jan 2026<\/td><td class=\"column-3\">Jan 2026<\/td><td class=\"column-4\">Narayanan, Pawan<\/td><td class=\"column-5\">Dataset Mismatch<\/td><td class=\"column-6\">IMU placement on the exoskeleton (lateral ankle) differs from the Georgia Tech EPIC dataset (dorsal midfoot), creating a mismatch for TCN model training.<\/td><td class=\"column-7\">Narayanan is investigating coordinate transformation matrices. Pawan is validating sensor orientation alignment with the model&#8217;s expected input format.<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">3<\/td><td class=\"column-2\">Jan 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Gautam<\/td><td class=\"column-5\">Mechanical Design<\/td><td class=\"column-6\">Electronics enclosure exceeded 500g in initial ABS prototype and was poorly positioned on the lower back, interfering with walking comfort.<\/td><td class=\"column-7\">Gautam relocated the enclosure to the upper back, removed the lid, reduced wall thickness, added triangular cutouts, and integrated truss-like reinforcements, reducing weight to ~220g.<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">4<\/td><td class=\"column-2\">Jan 2026<\/td><td class=\"column-3\">Jan 2026<\/td><td class=\"column-4\">Amily<\/td><td class=\"column-5\">Design Trade-off<\/td><td class=\"column-6\">Balancing weight optimization against structural integrity across the system \u2014 excess mass on distal segments directly undermines the exoskeleton&#8217;s metabolic cost reduction goal.<\/td><td class=\"column-7\">Amily selectively reinforced high-stress regions while removing material from low-load areas, and prioritized lightweight materials for COTS components.<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">5<\/td><td class=\"column-2\">Jan 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Pawan, Atirav<\/td><td class=\"column-5\">Procurement<\/td><td class=\"column-6\">Incorrect dimension magnets were ordered for motor encoders, causing inconsistent quadrature signals during testing.<\/td><td class=\"column-7\">Correct magnets specified after consulting datasheets: diametric magnetization, 6mm diameter, 2.5mm thickness.<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">6<\/td><td class=\"column-2\">Jan 2026<\/td><td class=\"column-3\">Jan 2026<\/td><td class=\"column-4\">Atirav<\/td><td class=\"column-5\">Procurement<\/td><td class=\"column-6\">Battery initially sourced from Hobbyking could not be purchased due to an unresponsive vendor page.<\/td><td class=\"column-7\">Atirav sourced an alternative battery with similar specifications from Horizon Hobby.<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">7<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Atirav, Pawan<\/td><td class=\"column-5\">Procurement \/ Logistics<\/td><td class=\"column-6\">Li-Po batteries held up in shipping, possibly lost in transit or in the mail room, preventing full mobile power system testing.<\/td><td class=\"column-7\">Team using benchtop power supplies for subsystem validation while coordinating with Chris to locate the shipment.<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">8<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Gautam<\/td><td class=\"column-5\">Electronics Design<\/td><td class=\"column-6\">Sensors (FSRs, IMUs, encoder) require 3-5A of current, which the Jetson Orin Nano cannot supply through its GPIO pins.<\/td><td class=\"column-7\">Added a second buck-boost converter to the back casing to amplify current signals to the sensors.<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">9<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Gautam<\/td><td class=\"column-5\">Mechanical Design<\/td><td class=\"column-6\">Casing weight increased again after adding second buck-boost converter; previous 220g design with truss structures was no longer light enough.<\/td><td class=\"column-7\">Reduced wall thickness from 3mm to 2.5mm and switched to hexagonal honeycomb cutouts on all surfaces, reducing weight from 220g to 150g.<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">10<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Narayanan<\/td><td class=\"column-5\">Dataset Quality<\/td><td class=\"column-6\">Level-ground walking dataset contained faulty ground truth torques due to a defective FSR during data collection, causing poor TCN model performance.<\/td><td class=\"column-7\">Sponsor at Meta Mobility Lab confirmed the issue and recommended switching to treadmill dataset. Model retrained on treadmill data with good torque tracking results.<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-1\">11<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Atirav<\/td><td class=\"column-5\">Manufacturing<\/td><td class=\"column-6\">Water-jet machined aluminum parts (chassis and shoe mount plate) arrived with missing features\/holes.<\/td><td class=\"column-7\">Missing features manually filed and drilled by Atirav. Time-consuming due to manual process and eyeballed dimensions.<\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-1\">12<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Atirav<\/td><td class=\"column-5\">Manufacturing<\/td><td class=\"column-6\">Small design flaw discovered in 3D-printed chassis parts during assembly.<\/td><td class=\"column-7\">Revised version of 3D-printed parts being reprinted to correct the issue.<\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td class=\"column-1\">13<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Amily<\/td><td class=\"column-5\">Design Trade-off<\/td><td class=\"column-6\">Conventional FEA is unreliable for 3D-printed components due to anisotropic material properties and layer-dependent strength.<\/td><td class=\"column-7\">Using conservative design approach based on expected load paths and mechanical intuition. Physical validation tests planned for next semester.<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-1\">14<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Team<\/td><td class=\"column-5\">Lab Operations<\/td><td class=\"column-6\">Common lab inventory items frequently misplaced, wasting time locating fasteners and components during assembly.<\/td><td class=\"column-7\">Team began maintaining a personal inventory tracker to record locations of regularly used items.<\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-1\">15<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">TBE Controller<\/td><td class=\"column-5\">Gautam<\/td><td class=\"column-6\">Actuator producing torque during swing phase (after toe-off) when user ended stance phase earlier than the average stride time.<\/td><td class=\"column-7\">Added a final toe-off detection override that sets torque to zero upon detecting toe-off.<\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td class=\"column-1\">16<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">TCN Training Pipeline<\/td><td class=\"column-5\">Narayanan<\/td><td class=\"column-6\">Severe I\/O bottleneck in PyTorch data generator \u2014 __getitem__ read full CSV from disk on every call (~441,600 redundant disk reads over 6 epochs), leaving GPU idle and undertrained model.<\/td><td class=\"column-7\">Pre-loaded all trial CSVs into RAM as NumPy float32 arrays at dataset init; __getitem__ now does O(1) array slicing. Epoch time reduced from ~360s to ~68s (6\u00d7 speedup).<\/td>\n<\/tr>\n<tr class=\"row-18\">\n\t<td class=\"column-1\">17<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">TCN Model Architecture<\/td><td class=\"column-5\">Narayanan<\/td><td class=\"column-6\">WeightNorm on convolutional layers interacted poorly with Adam optimizer on small datasets, destabilizing weight magnitude scale.<\/td><td class=\"column-7\">Replaced WeightNorm with GroupNorm (single group, equivalent to LayerNorm over channels) for stable normalization across subjects.<\/td>\n<\/tr>\n<tr class=\"row-19\">\n\t<td class=\"column-1\">18<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">TCN Generalization<\/td><td class=\"column-5\">Narayanan<\/td><td class=\"column-6\">Deeper model (kernel=7, [64,128,128,256]) did not consistently outperform simpler configs \u2014 limited training set size (only 5 of 22 subjects) is the bottleneck.<\/td><td class=\"column-7\">Planned: scale to all 22 participants; explore subject-conditioned embeddings, learnable subject embeddings for test-time adaptation, and extended hyperparameter tuning.<\/td>\n<\/tr>\n<tr class=\"row-20\">\n\t<td class=\"column-1\">19<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Mechanical (Actuator Pod)<\/td><td class=\"column-5\">Amily<\/td><td class=\"column-6\">3D-printed pulley too small for bearing press-fit; printer resolution limits prevented achieving required tight tolerances even after 0.1\u20130.2 mm CAD iterations.<\/td><td class=\"column-7\">Partial \u2014 CAD adjustments helped slightly; considering higher-resolution printing, tolerance redesign, or COTS components for critical interfaces.<\/td>\n<\/tr>\n<tr class=\"row-21\">\n\t<td class=\"column-1\">20<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Lab Inventory<\/td><td class=\"column-5\">Amily<\/td><td class=\"column-6\">Shelf numbering inconsistent and component names in inventory did not match BOM naming; crimps removed from BOM assuming availability but available crimps did not match size requirements.<\/td><td class=\"column-7\">Plan to create cross-referenced inventory sheet with images, standardized naming, and tagged frequently-used components.<\/td>\n<\/tr>\n<tr class=\"row-22\">\n\t<td class=\"column-1\">21<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Team Process<\/td><td class=\"column-5\">Pawan, Team<\/td><td class=\"column-6\">Team schedule and priorities diverging due to busy individual workloads; meetings running overtime without clear structure.<\/td><td class=\"column-7\">Held retrospective discussion; restructured meetings to Monday\/Thursday with timeboxing (40% Scrum ceremony, 60% technical discussion).<\/td>\n<\/tr>\n<tr class=\"row-23\">\n\t<td class=\"column-1\">22<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Battery Procurement<\/td><td class=\"column-5\">Atirav<\/td><td class=\"column-6\">Li-Po battery order from Horizon Hobby cancelled without explanation by supplier.<\/td><td class=\"column-7\">Contingency: use 6S batteries from battery cabinet (heavier) or two 3S batteries in series until correct battery is re-sourced.<\/td>\n<\/tr>\n<tr class=\"row-24\">\n\t<td class=\"column-1\">23<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Supply Chain<\/td><td class=\"column-5\">Atirav<\/td><td class=\"column-6\">CNC-machined sprocket (PCBway, 9+ days) and main axle bearing (Amazon, 3+ weeks) delayed, blocking mechanical assembly and testing timeline.<\/td><td class=\"column-7\">Monitoring delivery timelines; delays may push assembly\/testing schedule.<\/td>\n<\/tr>\n<tr class=\"row-25\">\n\t<td class=\"column-1\">24<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Actuator Hardware<\/td><td class=\"column-5\">Atirav<\/td><td class=\"column-6\">Borrowed actuator from MetaMobility lab vibrated violently; CAN dump and encoder worked but motor driver\/gearbox fault could not be diagnosed without disassembly.<\/td><td class=\"column-7\">Opened a new actuator from ordered stock which worked on first attempt, confirming undiagnosable hardware fault in borrowed unit.<\/td>\n<\/tr>\n<tr class=\"row-26\">\n\t<td class=\"column-1\">25<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Actuator Pod Assembly<\/td><td class=\"column-5\">Atirav<\/td><td class=\"column-6\">Barrel adjuster spline and female socket in casing mated prematurely, preventing proper nut engagement.<\/td><td class=\"column-7\">Reversed the spline cap orientation (placed upside-down) to allow nut mating before spline engagement.<\/td>\n<\/tr>\n<tr class=\"row-27\">\n\t<td class=\"column-1\">26<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">I2C Sensor Bus<\/td><td class=\"column-5\">Pawan, Atirav<\/td><td class=\"column-6\">Configuring two BNO085 IMUs on same I2C bus required careful address assignment; simultaneous reads caused interference.<\/td><td class=\"column-7\">Shorted ADDR pin on one IMU to change address from 0x4A to 0x4B; verified clean initialization and data streaming at 100\u2013200 Hz.<\/td>\n<\/tr>\n<tr class=\"row-28\">\n\t<td class=\"column-1\">27<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">CAN Bus on Jetson<\/td><td class=\"column-5\">Pawan, Atirav<\/td><td class=\"column-6\">CAN interface not recognized on Jetson Orin Nano; frame formatting and bitrate config issues; intermittent dropped frames during early testing.<\/td><td class=\"column-7\">Identified correct candump\/ip-link command sequence; traced dropped frames to incorrect termination resistance on CAN bus and corrected.<\/td>\n<\/tr>\n<tr class=\"row-29\">\n\t<td class=\"column-1\">28<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">Website Coordination<\/td><td class=\"column-5\">Pawan, Amily<\/td><td class=\"column-6\">Coordinating website content across all members required multiple rounds of follow-up to collect figures, schematics, and descriptions.<\/td><td class=\"column-7\">Established shared folder structure and brief content checklist to streamline contributions.<\/td>\n<\/tr>\n<tr class=\"row-30\">\n\t<td class=\"column-1\">29<\/td><td class=\"column-2\">Feb 2026<\/td><td class=\"column-3\">Feb 2026<\/td><td class=\"column-4\">PCB Design<\/td><td class=\"column-5\">Atirav<\/td><td class=\"column-6\">Power distribution board schematic completed but potential thermal issues identified requiring further analysis and revision; PCB fabrication lead time adds schedule uncertainty.<\/td><td class=\"column-7\">Reviewing thermal design, considering layout adjustments, and monitoring fabrication timelines.<\/td>\n<\/tr>\n<tr class=\"row-31\">\n\t<td class=\"column-1\">30<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">I2C Signal Integrity<\/td><td class=\"column-5\">Atirav, Pawan<\/td><td class=\"column-6\">I2C SDA\/SCL cables braided together for strain relief caused crosstalk over ~1m cable runs; all sensor addresses disappeared from bus. Four-way braiding technique (valid for CAN) added excessive capacitance to I2C open-drain lines.<\/td><td class=\"column-7\">Fixed by shielding each I2C signal line (SDA, SCL) with its own dedicated ground wire; plan to switch to CAT-6 shielded cable with RJ45 connectors for modular plug-and-play.<\/td>\n<\/tr>\n<tr class=\"row-32\">\n\t<td class=\"column-1\">31<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">Sensor Failure<\/td><td class=\"column-5\">Atirav, Pawan<\/td><td class=\"column-6\">Two BNO085 IMU sensors became faulty during I2C debugging, likely damaged by voltage transients or shorts during the crosstalk troubleshooting process.<\/td><td class=\"column-7\">Replaced with spare IMUs; redesigned sensor mounting to be more modular for easier future swaps without disturbing the rest of the wiring harness.<\/td>\n<\/tr>\n<tr class=\"row-33\">\n\t<td class=\"column-1\">32<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">In Progress<\/td><td class=\"column-4\">Bowden Cable \/ Actuation<\/td><td class=\"column-5\">Amily, Gautam<\/td><td class=\"column-6\">Bowden cables snapping off ankle pulley during walking due to improper crimping; cable loses tension and rides out of the pulley groove caused by actuator&#8217;s high detent torque (4.7 Nm backdrivability).<\/td><td class=\"column-7\">Re-crimped with proper tools and tightened junction screws; still some slack remains. Investigating deepening pulley groove and adding spring-loaded idler pulleys near the output pulley.<\/td>\n<\/tr>\n<tr class=\"row-34\">\n\t<td class=\"column-1\">33<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">Supply Chain<\/td><td class=\"column-5\">Atirav<\/td><td class=\"column-6\">CNC-machined sprocket from PCBWay now 35+ days overdue (quoted 14 days). Critical component for cable-driven actuation; prevents load testing of the mechanical system.<\/td><td class=\"column-7\">3D-printed placeholder sprocket used to validate fit and alignment; load testing blocked until metal sprocket arrives.<\/td>\n<\/tr>\n<tr class=\"row-35\">\n\t<td class=\"column-1\">34<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">TCN Metric Bug<\/td><td class=\"column-5\">Narayanan<\/td><td class=\"column-6\">RMSE and MAE reported identical values \u2014 physically impossible. Root cause: metric computation was passing a single scalar per window instead of the full (C, T) tensor to the RMSE function.<\/td><td class=\"column-7\">Fixed by ensuring full window tensor is passed and RMSE correctly computes sqrt(mean(squared_errors)) over all timesteps and channels.<\/td>\n<\/tr>\n<tr class=\"row-36\">\n\t<td class=\"column-1\">35<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">TCN Action Horizon Bug<\/td><td class=\"column-5\">Narayanan<\/td><td class=\"column-6\">Action horizon experiment (predicting H=10 steps ahead) produced incorrect RMSE due to target-output alignment bug \u2014 scoring evaluated future torque prediction instead of current torque.<\/td><td class=\"column-7\">Reverted action horizon; conceptual framing was incorrect for AXilles use case where exoskeleton must apply torque at current timestep.<\/td>\n<\/tr>\n<tr class=\"row-37\">\n\t<td class=\"column-1\">36<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">TCN Subject Conditioning<\/td><td class=\"column-5\">Narayanan<\/td><td class=\"column-6\">Raw demographic conditioning (height, weight, gender) hurt generalization by +15% test RMSE. With only 7 training subjects, demographics became a subject lookup key rather than generalizable predictors.<\/td><td class=\"column-7\">Replaced with learnable subject embedding approach which improved test RMSE by 20% over baseline; embedding encodes latent biomechanical style rather than raw anthropometrics.<\/td>\n<\/tr>\n<tr class=\"row-38\">\n\t<td class=\"column-1\">37<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">TCN Architecture<\/td><td class=\"column-5\">Narayanan<\/td><td class=\"column-6\">TCN receptive field (249 timesteps) was larger than training window (200 timesteps), causing zero-padding contamination on first 49 predictions of every window \u2014 wasted gradient signal.<\/td><td class=\"column-7\">Increased window size from 200 to 300 timesteps (&gt; RF), yielding 8.5% test RMSE improvement.<\/td>\n<\/tr>\n<tr class=\"row-39\">\n\t<td class=\"column-1\">38<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">Mar 2026<\/td><td class=\"column-4\">Wiring \/ Assembly<\/td><td class=\"column-5\">Gautam, Atirav<\/td><td class=\"column-6\">Different wire gauge dimensions between sensor I2C cables, CAN cables, and jumper cables made soldering tricky during final exoskeleton wiring.<\/td><td class=\"column-7\">Completed soldering with assistance; added 4-pin Molex connector at sensor cable end for modular connection to back-brace electronics casing.<\/td>\n<\/tr>\n<tr class=\"row-40\">\n\t<td class=\"column-1\">39<\/td><td class=\"column-2\">Mar 2026<\/td><td class=\"column-3\">In Progress<\/td><td class=\"column-4\">PCB Design<\/td><td class=\"column-5\">Atirav<\/td><td class=\"column-6\">Initial PCB prototype did not account for EMI\/EMC issues; buck converter ICs had insufficient thermal headroom during continuous operation.<\/td><td class=\"column-7\">Revised PCB layout over 4 iterations: separated high-EMI components from signal processing, changed buck converter packages, added bigger heatsinks for MOSFETs, routed signal traces over ground planes.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-1 from cache -->\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fall Issues Log Spring Issues Log<\/p>\n","protected":false},"author":474,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-102","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/pages\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/users\/474"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":6,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/pages\/102\/revisions"}],"predecessor-version":[{"id":473,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/pages\/102\/revisions\/473"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teami\/wp-json\/wp\/v2\/media?parent=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}