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

Simulated or stubbed out OpenCR serial communications

asked 2020-01-08 15:42:38 -0500

broomstick gravatar image

I would like to use the TurtleBot3 SBC stack as a test case for some architectural security research.

It would be convenient not to connect to the OpenCR board, ask I'd like to run the stack in a VM.

I don't currently need either the sensor input or the motor output that the OpenCR board currently provides, though I will subsequently incorporate that into my project.

Are there any simulators that I can run on the SBC that basically provide dummy sensor data and happily receive serial output from the SBC.

If not, are there any examples of modified code for the SBC which effectively avoids serial comms with the OpenCR board?

edit retag flag offensive close merge delete


You might want to ask this on a forum dedicated to OpenCR support (although I don't know of any), send your question to Robotis and/or post it on one of their issue trackers.

Your question is rather specific, and falls outside of the "normal" use of that particular piece of software. I could be wrong, but I expect this makes it unlikely someone here will be able to provide your with an answer.

gvdhoorn gravatar image gvdhoorn  ( 2020-01-09 01:54:48 -0500 )edit

Thanks for the quick feedback!

While I would love an emulator for OpenCR, I meant it less as an OpenCR question and more of a TurtleBot question. I had assumed someone developing on TurtleBot had, at some point, not wanted to keep the OpenCR board connected while testing the SPC (i.e., the RPI), and would have developed some minimal program that could run either on the RPI or the host to allow the nodes on the RPI to launch normally.

I could edit the question to simply say: Are there any instructions for testing the TurtleBot3 RPI without a connection to either the lidar or the OpenCR board?

broomstick gravatar image broomstick  ( 2020-01-09 07:51:25 -0500 )edit

You could certainly try. I don't know whether that will result in any better/more responses though.

The OpenCR parts are sources for quite some data flowing through the system. And also sinks.

You could probably write some simple scripts that publish/generate and accept the same messages. Whether something like that exists I wouldn't know though.

gvdhoorn gravatar image gvdhoorn  ( 2020-01-09 07:57:39 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2020-01-09 14:50:30 -0500

tfoote gravatar image

Based on your description of the problem and follow up comments, I think that you'll find that the standard answer for testing and developing is not to emulate the OpenCR specifically but to simply use the simulator to actually emulate the whole robot.

Dummy sensor data is no where near as valuable as actual simulated sensor data coming from the simulator.

You can find docs here:

For security research you may not care as much about the content of the data packets. But for others a fake stream of dummy data isn't very valuable and thus there's not usually tools to provide that sort of data.

edit flag offensive delete link more


This is a great start for me.

As far as I can tell:

The turtlebot3_fake package runs an actual node for the TurtleBot based on the turltebot3_fake.cpp file, which creates actual Publishers and Subscribers (in place of the OpenCR firmware) and handles the physical simulation.

The gazebo-based simulations aren't using TurtleBot packages directly. They use a URDF to describe the robot appearance and behaviour (including pulling in sensor and actuator simulation through plugins). It appears the Publishers, Subscribers, and Services are all defined in the URDF.

Is that correct?

broomstick gravatar image broomstick  ( 2020-01-10 09:43:32 -0500 )edit

Question Tools



Asked: 2020-01-08 15:42:38 -0500

Seen: 366 times

Last updated: Jan 09 '20