{"id":163,"date":"2026-02-19T20:05:34","date_gmt":"2026-02-19T20:05:34","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/?page_id=163"},"modified":"2026-05-02T20:19:28","modified_gmt":"2026-05-02T20:19:28","slug":"manipulation-subsystem-progress","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/system\/system-implementation\/manipulation-subsystem-progress\/","title":{"rendered":"Manipulation Subsystem Progress"},"content":{"rendered":"\n<p><strong>Week of April 20, 2026<\/strong><\/p>\n\n\n\n<div style=\"max-width:700px;margin:0 auto\">\n  <div style=\"position:relative;padding-bottom:56.25%;height:0;overflow:hidden;width:100%\">\n    <iframe src=\"https:\/\/www.youtube.com\/embed\/Q3jjnikDnBs\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;border:0\" allowfullscreen>\n    <\/iframe>\n  <\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Key Outcomes<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>System-Level Arm Integration and Validation:<\/strong> Integrated the robotic arm with the planting mechanism through ROS 2 communication, enabling coordination between the manipulation stack and mechanical assembly.<\/li>\n\n\n\n<li><strong>Mobile Manipulation Setup:<\/strong> Mounted the robotic arm on the mobile base, establishing the physical platform needed for end-to-end planting operation.<\/li>\n\n\n\n<li><strong>MoveIt2-Based Motion Planning:<\/strong> Updated the codebase to utilize MoveIt2 MoveGroup, enabling joint-space motion planning and constrained motion planning for the arm.<\/li>\n<\/ul>\n\n\n\n<p><strong>Next Steps<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Perception-Manipulation Integration:<\/strong> Connect the manipulation stack with the perception pipeline to enable perception-guided grasping and planting actions.<\/li>\n\n\n\n<li><strong>Cartesian Grasp Execution:<\/strong> Implement Cartesian path planning for the transition from pre-grasp to grasp to improve motion precision near the target.<\/li>\n\n\n\n<li><strong>End-to-End System Validation:<\/strong> Test the full workflow with the mobile base, robotic arm, planting mechanism, perception pipeline, and motion planner operating together.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Week of March 23, 2026<\/strong><\/p>\n\n\n\n<p>The integration of the arm and the gripper was done.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n\n<div style=\"max-width:700px;margin:0 auto\">\n  <div style=\"position:relative;padding-bottom:56.25%;height:0;overflow:hidden;width:100%\">\n    <iframe src=\"https:\/\/www.youtube.com\/embed\/SxTI55aZ7t0\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;border:0\" allowfullscreen>\n    <\/iframe>\n  <\/div>\n<\/div>\n\n\n\n<p><strong>Key Outcomes<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pick-and-Place Integration:<\/strong> Integrated the xArm and gripper to successfully execute a pick-and-place maneuver.<\/li>\n\n\n\n<li><strong>Manipulation Software Architecture:<\/strong> Built the core ROS2 packages and nodes for the gripper, arm, planner, and perception subsystems.<\/li>\n\n\n\n<li><strong>Planner-Centric Coordination:<\/strong> Implemented a planner node that orchestrates arm and gripper actions through ROS2 service-based client-server communication, enabling <strong>waypoint-based execution across pregrasp, grasp, lift, and release stages.<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>Next Steps<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>MoveIt2 Migration:<\/strong> Convert the current planner from the xArm ROS2 API to MoveGroup \/ MoveIt2 for more flexible and scalable motion planning.<\/li>\n\n\n\n<li><strong>Constraint-Aware Motion Planning:<\/strong> Add orientation constraints and integrate the MoveIt Pilz motion planner to maintain upright seedling handling and enable more reliable point-to-point linear motions.<\/li>\n\n\n\n<li><strong>Perception-Driven Grasping:<\/strong> Incorporate visual servoing to improve the robustness of perception-guided grasp execution.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Week of March 20, 2026<\/strong><\/p>\n\n\n\n<p>The next step was to develop the gripper for picking up the seedling from the tray. An open sourced <a href=\"https:\/\/github.com\/hygradme\/OpenParallelGripper\/blob\/main\/README.md\">OpenParrallel Gripper<\/a> design was used for the gripper.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"966\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5.png\" alt=\"\" class=\"wp-image-349\" style=\"aspect-ratio:0.9047763304049278;width:342px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5.png 874w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5-271x300.png 271w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5-768x849.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5-700x774.png 700w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5-520x575.png 520w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5-360x398.png 360w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5-250x276.png 250w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-5-100x111.png 100w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>Figure: CAD of OpenParrellel Gripper<\/em><\/p>\n\n\n\n<p><strong>Key outcomes:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gripper Controller Development:<\/strong> Developed the gripper controller in the Arduino IDE, interfacing with the OpenRB-150 embedded controller and servo kit.<\/li>\n\n\n\n<li><strong>ROS2 Manipulation Node Development:<\/strong> Implemented core ROS2 nodes for the gripper, xArm7, and planner to support manipulation workflows.<\/li>\n\n\n\n<li><strong>Manipulation Stack Integration:<\/strong> Built and integrated the core software components of the manipulation stack, enabling coordination between the arm, gripper, and planning modules.<\/li>\n<\/ul>\n\n\n\n<p><strong>Next Steps:&nbsp;<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Manipulation Architecture Development: <\/strong>Create proper nodes and packages (e.g. gripper, arm, perception, planner, etc.) for the Manipulation subsystem&nbsp;<\/li>\n\n\n\n<li><strong>Subsystem Integration:<\/strong> Integrate the arm and gripper via ROS2&nbsp;<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><strong>Week of February 27, 2026<\/strong><\/p>\n\n\n\n<p>The xArm7 from UFactory will be used for the manipulation subsystem which will perform pick-and-place of the seedling from the tray to the chute, which will be guided into the drilled hole from the planting mechanism.&nbsp;<\/p>\n\n\n\n<p>The development of the manipulation stack was started off by verifying the arm\u2019s waypoint movements.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"1000\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9.png\" alt=\"\" class=\"wp-image-358\" style=\"width:305px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9.png 1000w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-300x300.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-150x150.png 150w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-768x768.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-700x700.png 700w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-520x520.png 520w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-360x360.png 360w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-250x250.png 250w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-content\/uploads\/sites\/101\/2026\/04\/image-9-100x100.png 100w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>Figure. xArm 7&nbsp;<\/em><\/p>\n\n\n\n<p><strong>Key outcomes:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Arm Waypoint Movement Verification:<\/strong> Tested and validated the movement between waypoints with a given Python script using the ROS2 xArm API to command the robotic arm to move between recorded joint waypoints<\/li>\n<\/ul>\n\n\n\n<p><strong>Next Steps:&nbsp;<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gripper Development: <\/strong>create controller for the gripper\u2019s opening and closing movement<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Week of April 20, 2026 Key Outcomes Next Steps Week of March 23, 2026 The integration of the arm and the gripper was done.&nbsp; Key Outcomes Next Steps Week of March 20, 2026 The next step was to develop the [&hellip;]<\/p>\n","protected":false},"author":476,"featured_media":0,"parent":18,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-163","page","type-page","status-publish","hentry","clearfix"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/users\/476"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/comments?post=163"}],"version-history":[{"count":10,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/163\/revisions"}],"predecessor-version":[{"id":434,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/163\/revisions\/434"}],"up":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/18"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/media?parent=163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}