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

These two packages serve different goals, and cannot really be compared.

From wiki/rosserial:

rosserial is a protocol for wrapping standard ROS serialized messages and multiplexing multiple topics and services over a character device such as a serial port or network socket.

From wjwwood/serial:

This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed to look and feel like PySerial, but with the speed and control provided by C++.

so the former is an implementation of a protocol, while the latter is a C++ library which intends to facilitate using serial ports.

rosserial makes it possible for resource constraint environments to communicate with a regular ROS node graph (ie: roscpp / rospy based nodes), without having to run Linux.

wjwwood/serial is "simply" a serial port wrapper, it doesn't do anything but provide functions to read from and write to a serial port. What you read from or write to those serial ports (ie: the data) would not be something wjwwood/serial could help you with.

Why is the one from wjwwood so popular?

This question only makes sense if you consider the use-cases.

If you'd like to be able to have your Arduino "talk ROS", wjwwood/serial wouldn't really help much.

If you'd like to be able to read and write arbitrary binary data from/to a serial port, rosserial wouldn't really help much.

These two packages serve different goals, and cannot really be compared.

From wiki/rosserial:

rosserial is a protocol for wrapping standard ROS serialized messages and multiplexing multiple topics and services over a character device such as a serial port or network socket.

From wjwwood/serial:

This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed to look and feel like PySerial, but with the speed and control provided by C++.

so the former is an implementation of a protocol, while the latter is a C++ library which intends to facilitate make using serial ports.ports easier.

rosserial makes it possible for resource constraint environments to communicate with a regular ROS node graph (ie: roscpp / rospy based nodes), without having to run Linux.

wjwwood/serial is "simply" a serial port wrapper, it doesn't do anything but provide functions to read from and write to a serial port. What you read from or write to those serial ports (ie: the data) would not be something wjwwood/serial could help you with.

Why is the one from wjwwood so popular?

This question only makes sense if you consider the use-cases.

If you'd like to be able to have your Arduino "talk ROS", wjwwood/serial wouldn't really help much.

If you'd like to be able to read and write arbitrary binary data from/to a serial port, rosserial wouldn't really help much.

These two packages serve different goals, and cannot really be compared.

From wiki/rosserial:

rosserial is a protocol for wrapping standard ROS serialized messages and multiplexing multiple topics and services over a character device such as a serial port or network socket.

From wjwwood/serial:

This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed to look and feel like PySerial, but with the speed and control provided by C++.

so the former is an implementation of a protocol, while the latter is a C++ library which intends to make using serial ports easier.

rosserial makes it possible for resource constraint environments (fi: micro controllers) to communicate with a regular ROS node graph (ie: roscpp / rospy based nodes), without having to run Linux.

wjwwood/serial is "simply" a serial port wrapper, it doesn't do anything but provide functions to read from and write to a serial port. What you read from or write to those serial ports (ie: the data) would not be something wjwwood/serial could help you with.

Why is the one from wjwwood so popular?

This question only makes sense if you consider the use-cases.

If you'd like to be able to have your Arduino "talk ROS", wjwwood/serial wouldn't really help much.

If you'd like to be able to read and write arbitrary binary data from/to a serial port, rosserial wouldn't really help much.

These two packages serve different goals, and cannot really be compared.

From wiki/rosserial:

rosserial is a protocol for wrapping standard ROS serialized messages and multiplexing multiple topics and services over a character device such as a serial port or network socket.

From wjwwood/serial:

This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed to look and feel like PySerial, but with the speed and control provided by C++.

so the former is an implementation of a protocol, while the latter is a C++ library which intends to make using serial ports easier.

rosserial makes it possible for resource constraint environments (fi: micro controllers) to communicate with a regular ROS node graph (ie: roscpp / rospy based nodes), without having to run Linux.

wjwwood/serial is "simply" a serial port wrapper, it doesn't do anything but provide functions to read from and write to a serial port. What you read from or write to those serial ports (ie: the data) would not be something wjwwood/serial could help you with.

Why is the one from wjwwood so popular?

This question only makes sense if you consider the use-cases.

If you'd like to be able to have your Arduino "talk ROS", ROS" (for example), wjwwood/serial wouldn't really help much.

If you'd like to be able to read and write arbitrary binary data from/to a serial port, rosserial wouldn't really help much.