Can we run ROS master node on a raspberry pi

asked 2019-09-30 01:09:50 -0500

macleonsh gravatar image

updated 2019-09-30 01:10:38 -0500

Dear community,

So far all ROS tutorial I find, will require the ROS master node installed on a PC which is typically X86 CPU, Ubuntu based machine.

Is there any mature solution available to deploy ROS master to an embedded system (ARM SOC, Raspbian which is closed to ubuntu?)

By that way a ROS bobot can be operated without a bucky PC companion.

edit retag flag offensive close merge delete

Comments

So far all ROS tutorial I find, will require the ROS master node installed on a PC

I doubt that. They are rather generic :-)

Have you searched this Q&A page, there are a lot of questions about the raspberry PI, e.g. #q292453, #q229860, ...

There are also installation instructions on the wiki.

So : Yes!

By that way a ROS bobot can be operated without a bucky PC companion.

Is that a question or a statement? :-)

mgruhler gravatar image mgruhler  ( 2019-09-30 01:59:42 -0500 )edit

@mgruhler Thanks so much. I find some post and did some test, but not successful--still trying.. one restriction for me is I am using a "customized" raspbian for turtlebot3, I am not yet try the native Raspbian release.

Follow your comments: 1. My initial thought is to have a dedciate rpi-3 act as a ROS master (Roscore run on this master node) ,and a Rpi-3 on TB3 as "slave" -- I assume this shall not be a problem though still trying. 2. Is that possible go beyond #1, i.e. both master and slave node all run on the Rpi-3 on TB3?

macleonsh gravatar image macleonsh  ( 2019-09-30 04:39:45 -0500 )edit

@macleonsh

My initial thought is to have a dedciate rpi-3 act as a ROS master (Roscore run on this master node) ,and a Rpi-3 on TB3 as "slave

Yes, this is not a problem. You need to look out for a proper Network Setup though.

Is that possible go beyond #1, i.e. both master and slave node all run on the Rpi-3 on TB3?

Yes, this is actually standard. Note that the ROS master is actually only managing the registration of nodes (besides some other stuff). But it is not a very speciel system. But it does not offer any functionality w.r.t. robot functions.

I am using a "customized" raspbian for turtlebot3

Have you programmed that yourself? Otherwise, the turtlebot is, to my knowledge, completely supported in ROS. So this should already be available there...

mgruhler gravatar image mgruhler  ( 2019-09-30 05:33:44 -0500 )edit

Hello @macleonsh

It is possible to operate ROS in a Rapsberry. In fact one of my previous project consisted on implementing a navigation system in a Robot without an onboard computer.

You can install in the Raspberry Ubuntu Mate Xenial and work with ROS Kinetic, then you will be able to export the ROS_MASTER_URI and ROS_IP variables for the Raspberry and connect to other computers inside the Network provided by its Wifi adapter (A HotSpot will do the trick but you can generate a wireless AdHoc connection).

Weasfas gravatar image Weasfas  ( 2019-09-30 06:12:18 -0500 )edit

Thanks . @Weasfas@mgruhler Yes I think I already made it. It was initailly went to wrong due to some mistake. Right now it totally works. and finally I find only modify the ~/.bashrc and change both IP to same as be RPi's IP. and then remotely run up roscore on Pi, then roslaunch relevant service, then it is done. yep, very nice.. Next I would need write some bash or shell to make all these happen automatcilly after Pi is boot-up.

So one more question: for all those ros shell command -- is there any smart way to judge if the service run correctly as some task have dependence sequentially. .

macleonsh gravatar image macleonsh  ( 2019-09-30 10:29:22 -0500 )edit

Hello @macleonsh

Maybe you can use roswtf tool to examine the ROS set up and search for conflicts.

There is also the attribute respawn when you launch a node in case the node dies during execution.

Rosdep can also be a great tool but this is not used in execution time.

Weasfas gravatar image Weasfas  ( 2019-09-30 13:58:13 -0500 )edit