<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://wifa-robotics.williamfar.chatgpt.site/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/choose-a-first-cobot-task-with-a-cycle-time-worksheet/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/calculate-cobot-payload-including-the-gripper-and-adapters/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/find-the-center-of-gravity-of-a-cobot-tool/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/check-cobot-reach-before-placing-the-robot-base/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/estimate-wrist-bending-moment-from-an-offset-payload/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/size-a-two-finger-gripper-for-a-vertical-lift/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/estimate-vacuum-cup-holding-force-for-pick-and-place/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/understand-tool-center-point-offset-errors/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/teach-a-fixture-frame-instead-of-reteaching-every-point/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/measure-repeatability-without-confusing-it-with-accuracy/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/build-an-error-budget-for-a-cobot-insertion-task/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/find-the-bottleneck-in-a-cobot-pick-and-place-cycle/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/predict-why-short-robot-moves-never-reach-top-speed/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/use-corner-blending-without-cutting-into-a-fixture/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/generate-a-rectangular-tray-pattern-from-one-taught-origin/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/set-up-a-force-limited-insertion-experiment-in-simulation/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/estimate-compliance-from-a-bench-force-displacement-test/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/understand-response-delay-in-a-robot-stopping-model/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/why-robot-kinetic-energy-grows-with-speed-squared/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/design-a-robot-plc-handshake-with-a-bounded-timeout/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/debounce-a-part-present-sensor-without-hiding-faults/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/confirm-a-gripped-part-with-independent-process-evidence/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/add-bounded-retries-to-a-cobot-process/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/measure-useful-output-instead-of-nominal-cobot-speed/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/collaborative-robots/plan-a-cobot-pilot-acceptance-test-with-honest-evidence/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/choose-camera-resolution-from-the-smallest-robot-feature/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/estimate-lens-focal-length-for-a-robot-camera/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/limit-motion-blur-before-training-a-detector/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/measure-lighting-contrast-for-a-robot-inspection/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/segment-a-colored-part-with-an-hsv-mask/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/choose-a-binary-threshold-using-a-saved-image-test-set/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/clean-a-robot-vision-mask-without-erasing-small-features/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/find-a-part-centroid-from-image-moments/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/estimate-an-elongated-parts-orientation-with-pca/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/convert-pixels-to-millimeters-on-a-flat-workplane/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/collect-useful-images-for-camera-calibration/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/check-radial-distortion-before-using-image-edge-targets/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/map-image-points-to-a-robot-table-with-a-homography/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/compose-camera-and-robot-coordinate-transforms-correctly/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/plan-an-eye-in-hand-calibration-dataset/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/estimate-object-pose-with-a-printed-fiducial-marker/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/estimate-depth-from-stereo-disparity/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/prepare-a-robot-vision-dataset-without-leakage/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/evaluate-a-robot-detector-with-precision-and-recall/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/measure-bounding-box-overlap-with-intersection-over-union/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/budget-end-to-end-latency-for-vision-guided-picking/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/compensate-conveyor-motion-using-capture-timestamps/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/filter-a-noisy-vision-target-without-ignoring-lag/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/propagate-pixel-uncertainty-into-robot-position-error/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-vision/build-a-vision-guided-picking-acceptance-checklist/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/understand-the-four-axes-of-a-scara-robot/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/choose-scara-link-lengths-from-the-required-workspace/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/calculate-scara-forward-kinematics-by-hand/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/solve-two-link-scara-inverse-kinematics/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/keep-a-continuous-scara-elbow-branch-along-a-path/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/build-the-planar-scara-jacobian/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/recognize-scara-singularities-before-commanding-motion/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/convert-a-desired-scara-tool-velocity-into-joint-speeds/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/estimate-scara-joint-torque-from-a-planar-tool-force/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/apply-joint-limits-to-a-scara-workspace-map/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/convert-stepper-pulses-into-scara-joint-angle/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/why-microstepping-is-not-the-same-as-positioning-accuracy/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/select-a-belt-reduction-for-a-scara-joint/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/estimate-how-belt-compliance-affects-scara-endpoint-error/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/measure-scara-homing-repeatability/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/measure-backlash-by-approaching-a-scara-target-from-both-sides/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/convert-lead-screw-rotation-into-scara-vertical-travel/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/estimate-scara-vertical-axis-lifting-torque/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/keep-scara-tool-yaw-constant-while-the-arm-moves/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/design-a-trapezoidal-velocity-profile-for-a-scara-axis/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/use-cubic-time-scaling-for-a-smooth-scara-demonstration/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/make-a-scara-tool-follow-a-straight-cartesian-line/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/generate-a-scara-circular-path-with-chord-error-control/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/calibrate-scara-link-lengths-using-independent-reference-points/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/scara-robots/commission-a-scara-pen-plotter-prototype-in-stages/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/write-measurable-requirements-before-designing-a-robot/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/choose-robot-degrees-of-freedom-from-the-task/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/estimate-gravity-torque-for-a-robot-shoulder-joint/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/calculate-link-inertia-before-choosing-acceleration/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/check-motor-heating-with-rms-torque-over-a-duty-cycle/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/use-gear-reduction-to-understand-reflected-load-inertia/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/estimate-robot-link-bending-before-adding-a-larger-motor/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/screen-a-solid-robot-shaft-for-torsional-stress/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/estimate-wheel-torque-for-a-small-mobile-robot/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/choose-encoder-resolution-from-joint-position-sensitivity/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/create-a-low-voltage-robot-power-budget/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/calculate-voltage-drop-in-a-robot-power-cable/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/estimate-electronics-temperature-rise-before-enclosing-a-robot-controller/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/scale-a-low-voltage-analog-sensor-with-a-resistor-divider/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/convert-adc-codes-into-physical-sensor-units/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/estimate-joint-speed-from-encoder-counts/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/choose-a-control-sampling-rate-with-delay-in-mind/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/understand-proportional-control-with-a-bounded-actuator/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/prevent-integral-windup-in-a-simulated-robot-controller/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/design-a-robot-process-as-explicit-states/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/frame-robot-serial-messages-so-corrupted-data-is-rejected/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/use-a-watchdog-to-detect-a-stalled-robot-application/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/give-a-robot-simulation-physically-meaningful-mass-and-inertia/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/budget-assembly-tolerances-before-printing-robot-parts/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/robot-design/build-a-robot-verification-matrix-and-release-checklist/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/methodology/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/academy/image-credits/</loc><lastmod>2026-09-21</lastmod></url><url><loc>https://wifa-robotics.williamfar.chatgpt.site/privacy/</loc><lastmod>2026-09-24</lastmod></url></urlset>
