Community Blog Buy Now

Misty Community Forum

ROS wrapper? proposal, ideas

Is anyone creating or interested in creating a Misty .NET Skill that acts as a wrapper for ROS?

I think this is motivated because it would:

  1. present Misty as a ROS-enabled robot,
  2. facilitate use of mature tools in the ROS package ecosystem, e.g., RViz, and
  3. provide (much?) faster alternative to the Misty REST API when your processing pipeline is offboard.

The basic idea is to create a .NET Skill that, when started on a Misty robot, finds and connects to a local ROS Master and presents ROS topics for actuators and sensors. For example, the Misty robot can be commanded to move forward by sending Twist messages, just as you would do for other ROS-enabled robots. (If you are not familiar with ROS, here is a small tutorial about sending motion commands.) These Twist messages would be received by the .NET Skill and translated into calls to _misty.DriveTime.

The most promising prior work that I am aware of for this is ROS#, which in particular has a C# ros_bridge client.


I am interested in seeing this happen!

A ROS tie in is very much on our list of wants. Unfortunately due to lack of resources I’m not sure when we’ll get to it. We reassess priorities on an ongoing basis, so perhaps it may get pushed to the top sooner.

Now, the real question is, what if we only did a ROS2 node :slight_smile:

1 Like

I think that supporting ROS1 is well motivated because

  1. ros-sharp (linked to above) at least supports ROS1, but I do not know how reliably it or ros_bridge supports ROS2 yet;
  2. if ROS# or ros_bridge does not work for a Misty skill, then TCP or UDP can be used directly;
  3. there are many labs that are still using ROS1;
  4. there is still much documentation that is focused on ROS1 (hence, new users of ROS might unwittingly begin with ROS1).

In addition to ROS1, I think that supporting ROS2 is well motivated, but it might be more difficult if ros_bridge is not feasible.

For future reference, OpenSplice provides a C# API. It might be useful for creating a Misty .NET skill that is a ROS2 node.