June 02, 2025
#19a: Stretch Movement (Deven)
Adding onto the Aruco marker pose detection, we added functionality for the entire lower body exercise as well as symmetrical exercises for the left and right sides of the body for upper and lower body routines. We updated all pose information to have the correct translations and adjusted chair positioning to isolate which limb was being treated.
#19b: User Interface (Luna)
Graph + buttons
We used a React library called Rechart to render a graph that has live updates from the scale. We have now connected UI buttons to robot movement commands, allowing users to trigger actions directly from the interface. These buttons send commands via ROS to control the robot's behavior based on user input. We utilized the HTML in lab 6 and translated it to React.
#19c: Scale Integration (Vladyslav)
Allows us to parse data from the ROS2 Topic.
It searches for the first USB Scale connected to the device, creates a ROS2 Publisher, and transmits scale readings every 0.5 seconds.
Stiff foam block is glued to the back side of the scales that allows Stretch to firmly hold scales in different angels.
#19d: ROS Action Server (Jonathan)
In order to communicate between the Stretch robot and our UI, we created an action server to control the movements of the robot. Action servers were especially useful not only due to their request/response format, but also for their ability to send feedback updates throughout the progress. We converted the movement code from earlier to be triggered when a request to the action server containing the desired routine name (arm or leg) is sent. For an arm routine, the server updates and publishes a list of angles the robot has moved through. For a leg routine, the server updates and publishes the number of seconds the robot has held its position for. This will then allow us to start routines from the UI by linking requests to the action server to buttons, as well as potentially show progress updates.