ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I don't know your actual use-case, but for some applications installing and running a full ROS system on your embedded board might not be necessary. I don't have extensive experience with any of these, but I thought I'd mention them as alternatives to the two other answers:

  1. rosc (and github.com/synapticon/rosc): should target bare-metal as well as boards with an OS (eg: Linux). More info: ROSCon13 slides.
  2. rosserial (in particular: rosserial_embeddedlinux)
  3. uROSNode: as the name implies, targeted towards microcontrollers. ROSCon13 slides.

First two are targetting situations in which you don't want to run a full-blown ROS on your embedded device. rosserial does this by implementing a custom bridging protocol, which requires a bridge node running on some host device that does run a 'normal' ROS. rosc on the other hand does not and should allow the embedded device to become a first-class-citizen of a ROS node graph.

The third option mainly targets microcontrollers, but I included it as another example of a pure ANSI C implementation.

Keep in mind though that all of these have in common that they don't allow you to run a ROS master on your embedded device, they are client libraries.

I don't know your actual use-case, but for some applications installing and running a full ROS system on your embedded board might not be necessary. I don't have extensive experience with any of these, but I thought I'd mention them as alternatives to the two other answers:

  1. rosc (and github.com/synapticon/rosc): should target bare-metal as well as boards with an OS (eg: Linux). More info: ROSCon13 slides.
  2. rosserial (in particular: rosserial_embeddedlinux)
  3. uROSNode: as the name implies, targeted towards microcontrollers. ROSCon13 slides.
  4. cROS (and this ros.org news post): according to the developers: "an ANSI C library, called cROS, that acts as ROS interface". iirc, there is going to be an open-source version of this, somewhere in Q2-2015.

First two are targetting situations in which you don't want to run a full-blown ROS on your embedded device. rosserial does this by implementing a custom bridging protocol, which requires a bridge node running on some host device that does run a 'normal' ROS. rosc on the other hand does not and should allow the embedded device to become a first-class-citizen of a ROS node graph.

The third option mainly targets microcontrollers, but I included it as another example of a pure ANSI C implementation.

Keep in mind though that all of these have in common that they don't allow you to run a ROS master on your embedded device, they are client libraries.

Edit: added cROS info.

I don't know your actual use-case, but for some applications installing and running a full ROS system on your embedded board might not be necessary. I don't have extensive experience with any of these, but I thought I'd mention them as alternatives to the two other answers:

  1. rosc (and github.com/synapticon/rosc): should target bare-metal as well as boards with an OS (eg: Linux). More info: ROSCon13 slides.
  2. rosserial (in particular: rosserial_embeddedlinux)
  3. uROSNode: as the name implies, targeted towards microcontrollers. ROSCon13 slides.
  4. cROS (and this ros.org news post): according to the developers: "an ANSI C library, called cROS, that acts as ROS interface". iirc, there is going to be an open-source version of this, somewhere in Q2-2015.Q2-2015. Similar in goals to rosc, but (if the marketing slides are to be believed), much closer to being a true and complete client library for embedded systems.

First two are targetting situations in which you don't want to run a full-blown ROS on your embedded device. rosserial does this by implementing a custom bridging protocol, which requires a bridge node running on some host device that does run a 'normal' ROS. rosc on the other hand does not and should allow the embedded device to become a first-class-citizen of a ROS node graph.

The third option mainly targets microcontrollers, but I included it as another example of a pure ANSI C implementation.

Keep in mind though that all of these have in common that they don't allow you to run a ROS master on your embedded device, they are client libraries.

Edit: added cROS info.

I don't know your actual use-case, but for some applications installing and running a full ROS system on your embedded board might not be necessary. I don't have extensive experience with any of these, but I thought I'd mention them as alternatives to the two other answers:

  1. rosc (and github.com/synapticon/rosc): should target bare-metal as well as boards with an OS (eg: Linux). More info: ROSCon13 slides.
  2. rosserial (in particular: rosserial_embeddedlinux)
  3. uROSNode: as the name implies, targeted towards microcontrollers. ROSCon13 slides.
  4. cROS (and this ros.org ROS blog news post): according to the developers: "an ANSI C library, called cROS, that acts as ROS interface". iirc, there is going to be an open-source version of this, somewhere in Q2-2015. Similar in goals to rosc, but (if the marketing slides are to be believed), much closer to being a true and complete client library for embedded systems.

First two are targetting situations in which you don't want to run a full-blown ROS on your embedded device. rosserial does this by implementing a custom bridging protocol, which requires a bridge node running on some host device that does run a 'normal' ROS. rosc on the other hand does not and should allow the embedded device to become a first-class-citizen of a ROS node graph.

The third option mainly targets microcontrollers, but I included it as another example of a pure ANSI C implementation.

Keep in mind though that all of these have in common that they don't allow you to run a ROS master on your embedded device, they are client libraries.

Edit: added cROS info.

I don't know your actual use-case, but for some applications installing and running a full ROS system on your embedded board might not be necessary. I don't have extensive experience with any of these, but I thought I'd mention them as alternatives to the two other answers:

  1. rosc (and github.com/synapticon/rosc): should target bare-metal as well as boards with an OS (eg: Linux). More info: ROSCon13 slides.
  2. rosserial (in particular: rosserial_embeddedlinux)
  3. uROSNode: as the name implies, targeted towards microcontrollers. ROSCon13 slides.
  4. cROS (and this ROS blog news post): post. Some slides from IAS13 here): according to the developers: "an ANSI C library, called cROS, that acts as ROS interface". iirc, there is going to be an open-source version of this, somewhere in Q2-2015. Similar in goals to rosc, but (if the marketing slides are to be believed), much closer to being a true and complete client library for embedded systems.

First two are targetting situations in which you don't want to run a full-blown ROS on your embedded device. rosserial does this by implementing a custom bridging protocol, which requires a bridge node running on some host device that does run a 'normal' ROS. rosc on the other hand does not and should allow the embedded device to become a first-class-citizen of a ROS node graph.

The third option mainly targets microcontrollers, but I included it as another example of a pure ANSI C implementation.

Keep in mind though that all of these have in common that they don't allow you to run a ROS master on your embedded device, they are client libraries.

Edit: added cROS info.

I don't know your actual use-case, but for some applications installing and running a full ROS system on your embedded board might not be necessary. I don't have extensive experience with any of these, but I thought I'd mention them as alternatives to the two other answers:

  1. rosc (and github.com/synapticon/rosc): should target bare-metal as well as boards with an OS (eg: Linux). More info: ROSCon13 slides.
  2. rosserial (in particular: rosserial_embeddedlinux)
  3. uROSNode: as the name implies, targeted towards microcontrollers. ROSCon13 slides.
  4. cROS (and this ROS blog news post. Some slides from IAS13 here): according to the developers: "an ANSI C library, called cROS, that acts as ROS interface". iirc, there is going to be an open-source version of this, somewhere in Q2-2015. Q2-2015 (update: this has been released. See github.com/it-robotics/cros). Similar in goals to rosc, but (if the marketing slides are to be believed), much closer to being a true and complete client library for embedded systems.

First two are targetting situations in which you don't want to run a full-blown ROS on your embedded device. rosserial does this by implementing a custom bridging protocol, which requires a bridge node running on some host device that does run a 'normal' ROS. rosc on the other hand does not and should allow the embedded device to become a first-class-citizen of a ROS node graph.

The third option mainly targets microcontrollers, but I included it as another example of a pure ANSI C implementation.

Keep in mind though that all of these have in common that they don't allow you to run a ROS master on your embedded device, they are client libraries.

Edit: added cROS info.

I don't know your actual use-case, but for some applications installing and running a full ROS system on your embedded board might not be necessary. I don't have extensive experience with any of these, but I thought I'd mention them as alternatives to the two other answers:

  1. rosc (and github.com/synapticon/rosc): should target bare-metal as well as boards with an OS (eg: Linux). More info: ROSCon13 slides.
  2. rosserial (in particular: rosserial_embeddedlinux)
  3. uROSNode: as the name implies, targeted towards microcontrollers. ROSCon13 slides.
  4. cROS (and this ROS blog news post. Some slides from IAS13 here): according to the developers: "an ANSI C library, called cROS, that acts as ROS interface". iirc, there is going to be an open-source version of this, somewhere in Q2-2015 (update: (UPDATE: this has been released. See github.com/it-robotics/cros). Similar in goals to rosc, but (if the marketing slides are to be believed), much closer to being a true and complete client library for embedded systems.

First two are targetting situations in which you don't want to run a full-blown ROS on your embedded device. rosserial does this by implementing a custom bridging protocol, which requires a bridge node running on some host device that does run a 'normal' ROS. rosc on the other hand does not and should allow the embedded device to become a first-class-citizen of a ROS node graph.

The third option mainly targets microcontrollers, but I included it as another example of a pure ANSI C implementation.

Keep in mind though that all of these have in common that they don't allow you to run a ROS master on your embedded device, they are client libraries.

Edit: added cROS info.

Edit2: updated cROS info: it has been released.