Can we run ROS master node on a raspberry pi
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.
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!
Is that a question or a statement? :-)
@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
Yes, this is not a problem. You need to look out for a proper Network Setup though.
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.
Have you programmed that yourself? Otherwise, the turtlebot is, to my knowledge, completely supported in ROS. So this should already be available there...
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
andROS_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).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. .
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.