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