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

Transport Subscriber's data over CAN to Non-ROS computer

asked 2016-01-02 02:36:48 -0500

Terry Su gravatar image

updated 2016-01-02 04:02:15 -0500

Hello ROS users,

I want to use a Non-ROS computer as the controller to receive the data from the ROS computer.

To specify my question : I have a lidar(sick tim 561) and I use my ROS computer(ubuntu 14.04 LTS with ROS Jade and a CAN card) to launch it successfully. After that, I have read the "Publisher and Subscriber" tutorials because I need use a subscriber to subscribe the lidar's scan topic and then transport the data to Non-ROS computer over the CAN-bus. But when I search the CAN-bus for the ROS for my ROS Jade version, I found this and without the JADE version. Does anyone know the CAN-bus communication for Jade? If there is the Jade version, could you direct me which part is I need? Thanks in advanced.

edit retag flag offensive close merge delete


Have you tried to use the indigo version? Indigo and Jade are not that different so I bet that the indigo version is still working.

NEngelhard gravatar image NEngelhard  ( 2016-01-02 03:42:24 -0500 )edit

@NEngelhard, Thank for your information, I will try it.

Terry Su gravatar image Terry Su  ( 2016-01-02 04:56:44 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2016-01-02 12:50:30 -0500

ahendrix gravatar image


Lidar data typically has a pretty high data rate 1-10Mbit, and CAN typically has data rates of 1Mbit and below, with fairly high overhead (50% or more). From bandwidth alone, sending lidar data over a CAN bus will be difficult.

In addition, CAN limits the maximum packet size to 8 bytes, and lidar scans are usually much larger than that (hundreds of bytes to hundreds of kilobytes). The amount of fragmentation that you'll have to do to make that work will be problematic at best.

Also of note, most of the CAN packages that I've seen for ROS provide a C++ API that wraps the native linux or proprietary CAN API; they don't provide a magic ROS-to-CAN bridge. If you do get the package you've found to work, you'll still need to do the hard work yourself.

edit flag offensive delete link more


Thanks you for your remind really! If I don't have your remind, maybe I will spend a lot of time on it.

Terry Su gravatar image Terry Su  ( 2016-01-03 01:48:34 -0500 )edit

Question Tools

1 follower


Asked: 2016-01-02 02:36:48 -0500

Seen: 168 times

Last updated: Jan 02 '16