ROS2 interface to Doly Robot

Hi all,

I just wanted to share an open source project I just started. I have no idea how quickly it will progress though due to time constraints.

Last year I backed the Doly Robot project on kickstarter and recently the creator Levent Erenler also released the SDK for Doly. Hence, I of course wanted to create a ROS interface to this cute little robot.

The Goal: Create a containerized ROS2 interface for Doly. This way I hardly have to change any OS dependencies on the Robot and keep the original apps intact.

Some info:

  • Hardware: Doly Robot with several hardware interfaces

  • Compute: Raspberry Pi CM4

  • ROS: ROS 2 Rolling

At first I just want to make sure all interfaces are available in ROS. Not sure what will follow, probably exploration and some human interaction. Maybe following ROS applications will run a remote host, or if compute permits, on Doly itself.

Repository: https://github.com/MCFurry/doly_ros2

Docker image: mcfurry/doly-ros-rolling - Docker Image

4 Likes

Short update:
Most of the hardware interfaces as ROS2 nodes are finished.
A brief README is included to explain what nodes there are and how they interface: https://github.com/MCFurry/doly_ros2/tree/main/src/pkgs/doly_hw_interfaces

One of the mayor last things I’m now chasing is a simple camera node to stream camera images into the ROS framework.
However, since all existing nodes depend on cv_bridge which in its turn pulls in development libraries and even x11-common, this pulls in another 1.3GB of dependencies which I want to avoid… So I’m looking for a leaner solution there.

So I found this: GitHub - tier4/ros2_v4l2_camera: Forked from https://gitlab.com/boldhearts/ros2_v4l2_camera · GitHub
Which is very lean on dependencies, but doesn’t build directly on rolling.

Ignoring some deprecation warnings it does build, but doesn’t work unfortunately…
Apparently raspberry’s nowadays use a unicam driver for the camera module which these nodes don’t like…