Very interesting, I’d be delighted to see your code, especially how you generate/get ROS concepts from the zenoh-pico API.
But I have another question for you, related to this other thread. As you describe it, your controller listens to cmd_vel topics and publishes odom, and this means that you implement the direct and reverse kinematics, e.g. differential drive, in your STM code. This is exactly the approach I had for a tracked robot, only with ESP and a simple motor driver instead of STM and your driver.
Though it works very well, another way looks more “canonical”: do the kinetics on the host (RPi in your case) using, for example, ros2_control, and have it drive each motor through a separate topic or communication channel. It would be akin to using Dynamixel smart servos, but instead of a proprietary control protocol, use some standard topic. In the reverse direction, it would be the same: the STM instead of publishing the /odom would only publish the /joint_state from the encoders, and the odometry would be computed on the ROS2 host.
What do you think?