Diving Deep into ROS2

Since onboarding, our CS team has been diving into ROS2 and migrating our Python packages from ROS1 to ROS2. Will set a solid foundation by setting up initial configurations for our robosub-ros2 repository and porting over the first packages, including vectornav and data_pub. He also created clear examples for ROS2 subscribers and publishers which provide a valuable reference for the rest of the team to start the migration effort.

We’re making steady progress on several key packages, like task planning, system utils, and computer vision. Our DepthAI camera is now connected to our desktop setup, and we’re working on setting up Foxglove and collecting ROS2 bag data to test our detection pipeline and visualize predictions. Since our task planning relies on other packages, we’ve decided to postpone its testing until the majority of packages have been migrated and fully tested. It’s inspiring to see our new members steadily mastering the ins and outs of ROS2 and consistently making contributions to the codebase.

To further streamline development, Vedarsh, Raul, and Max have set up a VS Code Dev Container environment. These containers automatically source setup files, connect to Docker via SSH, and are pre-configured with helpful extensions and essential Git settings, which require signed commits for added security. This setup works across both Windows and macOS, making it easy for all team members to pull and push code seamlessly. Vedarsh has also put together a detailed and standardized setup instructions document that will be useful for current and future members of the club.

We’re also thrilled to share that Foxglove featured our GUI work in their latest spotlight: “Spotlight: Duke Robotics Club’s Journey to Underwater Autonomy”. A huge shoutout to our CV/GUI leads, Mathew and Nathanael, and everyone involved for making this possible. It’s a true testament to our team’s dedication and hard work!

On the website front, Raul and Nathan have been revamping some key pages, like the home and team sections, and collaborating with our new Media Lead, Ren, to help her get comfortable with the codebase. We’re also working toward a unified photo-sharing solution to make it easier for everyone to access and share photos from club events. This system will reduce storage demands, prevent historical losses, and better document our journey as a team.