{"id":163,"date":"2026-04-03T20:35:28","date_gmt":"2026-04-04T01:35:28","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/?page_id=163"},"modified":"2026-11-14T01:28:28","modified_gmt":"2026-11-14T06:28:28","slug":"control-system","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/system-implementation\/control-system\/","title":{"rendered":"Control Sub-system"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Fall 2026 Updates<\/h3>\n\n\n\n<p><strong>Repeatable Button Pressing:<\/strong><\/p>\n\n\n\n<p>Button pressing was reworked for repeatability: the arm motion was tuned (path smoothing and speed tuning), onboard tracking with position holding keeps the target fixed while the arm moves, and the final approach was slowed with a one-second pause at the pre-grasp pose. The robot has been tested pressing real elevator buttons.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-SDR-s14.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"844\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-SDR-s14.jpg\" alt=\"Repeatable button pressing: motion tuning, tracking and holding, and a slower final approach.\" class=\"wp-image-317\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-SDR-s14.jpg 1500w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-SDR-s14-300x169.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-SDR-s14-768x432.jpg 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Fig:<\/strong> Repeatable button pressing: motion tuning, tracking and holding, and a slower final approach.<\/figcaption><\/figure>\n\n\n\n<p>Arm planning was also optimized (offline measurements from five desktop runs):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Metric<\/th><th>Before<\/th><th>After<\/th><\/tr><\/thead><tbody><tr><td>Total planning time<\/td><td>2194\u20132583 ms<\/td><td>682\u2013838 ms<\/td><\/tr><tr><td>IK calls per plan<\/td><td>22<\/td><td>11<\/td><\/tr><tr><td>Goal residual<\/td><td>186 \u00b5m<\/td><td>39 \u00b5m<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><em>Open issue:<\/em> the robot still occasionally misses the button. Root-cause analysis is ongoing; the next step is to collect success rates while separating perception error from control error. An apparent wall motion of 11.95 mm peak-to-peak with a 3.01\u00b0 tilt was measured during pressing; timing, robot-model parameters and motor encoders remain hypotheses for its cause.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s9.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"844\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s9.jpg\" alt=\"The G1 pressing a real elevator call button.\" class=\"wp-image-307\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s9.jpg 1500w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s9-300x169.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s9-768x432.jpg 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Fig:<\/strong> The G1 pressing a real elevator call button.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s10.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"844\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s10.jpg\" alt=\"The G1 pressing an elevator button panel.\" class=\"wp-image-308\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s10.jpg 1500w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s10-300x169.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/11\/vr-PR10-s10-768x432.jpg 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Fig:<\/strong> The G1 pressing an elevator button panel.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Spring 2026<\/h3>\n\n\n\n<p><strong>Arm Visual Servoing for Button Pressing:<\/strong><\/p>\n\n\n\n<p>We utilize Inverse-Dynamics to control the upper body (the arms). The system ensures a good precision and accuracy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1369\" height=\"913\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-11.png\" alt=\"\" class=\"wp-image-216\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-11.png 1369w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-11-300x200.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-11-768x512.png 768w\" sizes=\"auto, (max-width: 1369px) 100vw, 1369px\" \/><\/figure>\n\n\n\n<p><strong>Fig: Robot Pressing a Button with Language Prompt.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1708\" height=\"2048\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-10.png\" alt=\"\" class=\"wp-image-214\" style=\"aspect-ratio:0.8339914705417786;width:286px;height:auto\" title=\"Untitled Diagram.drawio (2).png\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-10.png 1708w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-10-250x300.png 250w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-10-768x921.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-10-1281x1536.png 1281w\" sizes=\"auto, (max-width: 1708px) 100vw, 1708px\" \/><\/figure>\n\n\n\n<p><strong>Fig. Visual servo arm pipeline.<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Door Opening Task: <\/strong><\/p>\n\n\n\n<p>We regard door opening as a whole-body loco-manipulation task and handle it using a trained joint-level control policy with Reinforcement Learning (RL). The simulation environment is built in IsaacSim. <\/p>\n\n\n\n<p>The policy is optimized to open slightly damped doors with a crash bar. It takes in proprioceptions (to capture humanoid&#8217;s state) and processed perceptions data (to capture door&#8217;s state) and outputs the desired joint positions of 29 joints. A PD controller is then implemente to eventually transfer the joint position to torques.<\/p>\n\n\n\n<p>To alleviate the sim2real gap, we further create the door model in simulator to match the real door.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"720\" data-id=\"122\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232605.078.jpg\" alt=\"\" class=\"wp-image-122\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232605.078.jpg 1280w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232605.078-300x169.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232605.078-768x432.jpg 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"720\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232610.096.jpg\" alt=\"\" class=\"wp-image-123\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232610.096.jpg 1280w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232610.096-300x169.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/02\/rl-video-step-0.mp4_20260220_232610.096-768x432.jpg 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p><strong>Fig :<\/strong> <strong>Simulation Environment:<\/strong> The humanoid initializing in front of the modeled door.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fall 2026 Updates Repeatable Button Pressing: Button pressing was reworked for repeatability: the arm motion was tuned (path smoothing and speed tuning), onboard tracking with position holding keeps the target fixed while the arm moves, and the final approach was slowed with a one-second pause at the pre-grasp pose. The robot has been tested pressing [&hellip;]<\/p>\n","protected":false},"author":434,"featured_media":0,"parent":93,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-163","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages\/163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/users\/434"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/comments?post=163"}],"version-history":[{"count":8,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages\/163\/revisions"}],"predecessor-version":[{"id":352,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages\/163\/revisions\/352"}],"up":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages\/93"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/media?parent=163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}