April 15, 2025
ROS:
As our first introduction to the robot, we familiarized ourselves with ROS by walking through the ROS beginner’s guide, exposing us to concepts like nodes, services, and topics through the turtlesim teleoperation. We ran into an initial challenge during setup involving the DOMAIN_ID, where a shared DOMAIN_ID between our group and other groups led to erratic behavior as our turtle was simultaneously being controlled by multiple computers, though this issue was easily fixed. One of the main challenges when it came to learning ROS was becoming fluent with the various objects and abstractions that ROS uses to represent a robot’s structure in a programmable way. ROS’ modular approach meant that understanding how a system was broken into nodes and the ways in which these nodes could be linked was key to accomplishing tasks (in this case, controlling our turtle and its environment).
Stretch:
To get familiar with the Stretch robot, we started by learning about battery management, various safety hazards, as well as the Python commands necessary for Stretch. Once we had learned about the robot itself, we progressed to the example scripts and code for the Stretch Mujoco simulation stack. Below is an example of our created Robocasa environment, which allowed us to generate a kitchen model (in a custom layout and style) for a given task and see the POV of various sensors on the Stretch robot in that environment. When utilizing the Stretch Mujoco simulation stack, one of the challenges we ran into was understanding how to move the robot’s joints to complete the intended action. The simulation had many commands for each joint, and it was initially confusing figuring out how to fit all the degrees of freedom together in order to complete a simple action such as picking up a block. After experimenting in the simulation, we then tested out the actual Stretch robot, reading through the quick start guide and completing the tutorials on writing code and getting Stretch to move.