Jonathan’s Status Report for 10/17/26

For this week, I dedicated my time toward structuring our ROS2 repository on the Jetson Nano, developing custom kinematic and torque analysis scripts in Python, and helping finalize our hardware parts list for Iteration 1. A major milestone for this week was creating a comprehensive mathematical simulation model of our 6DOF arm to verify that our selected serial bus servos can handle expected joint loads across our workspace (see below).

On the software and simulation side, I expanded our ROS2 environment on the Jetson Nano by installing necessary development utilities, creating our team’s official GitHub repository, and laying out the core software framework for our project. To validate our mechanical design before 3D printing, I wrote a dedicated Python robot class to process our arm’s link lengths, joint limits, and component masses. Using this class, I implemented forward kinematics, Jacobian matrix calculations, and inverse kinematics solvers, sampling various coordinate points across our 3D workspace. By coupling these kinematic transformations with static load physics equations, I confirmed that our calculated joint torques fall comfortably within the operating limits of our smart serial bus servos for Iteration 1 (see below for graph of workspace points tested).

Beyond simulation, I collaborated with the team to finalize our master hardware parts list for Iteration 1 so we can get all necessary servos, bearings, and power components ordered. We also wrapped up the remaining CAD design details for Iteration 1. While finalizing the CAD model took longer than anticipated and pushed the start of 3D printing to this weekend, we now have a solid design ready to manufacture.

I am mostly on track with my individual software and analysis tasks, though as a team we are slightly behind schedule on physical assembly for Iteration 1, so we will need to pick up the pace once parts finish printing and hardware arrives.

For next week, I plan to:

  • Clean up and document the Python torque and workspace calculation scripts.
  • Expand our ROS2 software framework and construct a preliminary URDF model to visualize the robot arm in RViz2.
  • Begin setting up the initial tf2 frame tree structure for coordinate transformations between the robot base and end-effector.
  • Collaborate with Bryan on 3D printing execution and begin physical assembly of Iteration 1 as motor hardware arrives.

Jonathan’s Status Report for 10/3/26

For this third week, I dedicated my time toward structuring our ROS2 repository on the Jetson Nano, developing custom kinematic and torque analysis scripts in Python, and helping finalize our hardware parts list for Iteration 1. A major milestone for this week was creating a comprehensive mathematical model of our 6DOF arm to verify that our selected serial bus servos can handle expected joint loads across our workspace (see below).

On the software and simulation side, I expanded our ROS2 environment on the Jetson Nano by installing necessary development utilities, creating our team’s official GitHub repository, and laying out the core software framework for our project. To validate our mechanical design before 3D printing, I wrote a dedicated Python robot class to process our arm’s link lengths, joint limits, and component masses. Using this class, I implemented forward kinematics, Jacobian matrix calculations, and inverse kinematics solvers, sampling various coordinate points across our 3D workspace. By coupling these kinematic transformations with static load physics equations, I confirmed that our calculated joint torques fall comfortably within the operating limits of our smart serial bus servos for Iteration 1 (see below for workspace points tested).

Outside of that, I collaborated with the team to finalize our master hardware parts list for Iteration 1 so we can get all necessary servos and power components ordered. Aaron is still working on the the remaining CAD design details for Iteration 1, but I have been giving feedback along the way. Finalizing the CAD model took longer than anticipated, and this pushed the start of 3D printing to this weekend which is a bit later than expected based on our schedule.

I am mostly on track with my individual software and analysis tasks, though as a team we are slightly behind schedule on physical assembly for Iteration 1, so we will need to pick up the pace for printing and using the hardware.

For next week, I plan to:

  • Clean up and document the Python torque and workspace calculation scripts.
  • Expand our ROS2 software framework and construct a preliminary URDF model to visualize the robot arm in RViz2.
  • Begin setting up the initial tf2 frame tree structure for coordinate transformations between the robot base and end-effector.
  • Collaborate with Bryan on 3D printing execution and begin physical assembly of Iteration 1 as motor hardware arrives.

Jonathan’s Status Report for 9/26/26

For this second week, I dedicated my time toward bringing up our robot’s software and hardware stacks, establishing our 3D printing workflow, assisting with mechanical calculations, and preparing for our upcoming design presentation. A major milestone for this week was receiving our embedded computing platform and setting up a functional, local ROS2 development environment directly on the physical hardware (see below).

I spent significant time getting the NVIDIA Jetson Orin Nano up and running from scratch. Because the board arrived without an operating system or peripherals, I sourced a DisplayPort cable and a high-speed microSD card for storage, then flashed the Jetson with JetPack 7 Ubuntu. Once the OS was configured, I installed essential command-line tools like tmux and vim alongside ROS2, verifying system stability and environment setups by running the first ROS2 test with 2 publisher and subscriber nodes running simultaneously on the device. Additionally, I helped establish our team’s 3D printing workflow by slicing and executing test prints to evaluate how much time each print will take (photos of these test prints will be on this week’s team report).

Beyond individual setup tasks, I collaborated with the team on refining our master hardware parts list so we can finalize and submit our order for Iteration 1. I also worked alongside the team on CAD Iteration 1, initiating torque and workspace calculations to inform joint placements, limb lengths, and motor specs. Finally, I drafted content for our upcoming design presentation and spent time practicing, as I will be serving as the team’s primary presenter.

I am mostly on track relative to our project roadmap, though we need to make sure the parts list is finalized soon and finish our calculations on torque and workspace in the next few days.

For next week, I plan to:

  • Finalize and submit our master hardware parts list for Iteration 1 components.
  • Deliver our team’s design presentation and analyze the feedback from faculty and TAs.
  • Begin setting up the general software project layout (ROS2) and outline the initial tf2 frame tree structure.
  • Finish torque and workspace calculations with the team to finalize motor placements and limb dimensions in CAD.

Jonathan’s Status Report for 9/19/26

For this first week, I dedicated most of my time toward establishing the software foundation and architecture for our 6DOF surface-drawing robot arm. I focused on investigating robotic software stacks to ensure our arm can reliably handle inverse kinematics, dynamic surface mapping, and low-level servo communication.

I spent significant time evaluating the ROS2 ecosystem and selecting key packages for our software pipeline. I investigated MoveIt 2 for 6DOF trajectory planning and inverse kinematics (IK) solving, alongside ros2_control to serve as the hardware abstraction layer between ROS2 nodes and our physical joint controllers. To handle coordinate frame transformations between the robot base, camera optical frame, and variable target surfaces (planes, curves, cylinders, half-pipes), I started planning the use of a frame tree structure using tf2. For perception, I looked into integrating apriltag_ros and OpenCV vision models, as well as evaluating NVIDIA Isaac ROS packages (specifically isaac_ros_apriltag) to leverage GPU-accelerated pose estimation on the Jetson Nano paired with an Intel RealSense depth camera we will be renting from the ECE department. Additionally, I researched using micro-ROS on a microcontroller to handle low-latency serial bus communication if we decide to use things like bare stepper motors. I alsoexplored vis2 and RViz2 setups for kinematic visualization.

For later reference, here are the ROS2 libraries and tools I researched:

  • MoveIt 2
  • ros2_control nodes
  • tf2
  • apriltag_ros and OpenCV (OpenCV would be easier to test and bring up by itself but more difficult to integrate into the final product)
  • NVIDIA Isaac ROS (for CV and more out of the Jetson Nano)
  • micro-ROS
  • vis2 and RViz2

Beyond software, I participated in team trade-off discussions regarding joint selection and workspace reach, helping determine how our software nodes will enforce physical joint limits during surface tracking. I also created our team’s local ROS2 repository, initialized the workspace directory structure, and wrote initial package configuration files to prepare for integration.

I am scheduled on track relative to our project roadmap.

For next week, I plan to:

  1. Finalize the local ROS2 software workspace structure and pull in required drivers and third-party dependencies.
  2. Build out the initial infra for tf2 robot link tree and create a basic URDF/XACRO model representing our Iteration 1 arm parameters.
  3. Assist the team in finalizing the master hardware parts list (servos, bearings, microcontrollers, power supply).
  4. Collaborate with Aaron on verifying CAD Iteration 1 dimensions to ensure motor mounts and sensor placements align with our software node assumptions.