ROS node for the Raspberry Pi Camera Module


I followed the tutorial

working with Ubuntu 16.04 and ROS kinetic
camera module V2.
could you please help me with my problem.
in fiducials rviz
when I choose image topic as /fiducial_images (in order to
detect the fiducial markers, the image field says (no image
if I change the image topic to /raspicam_node/image
it will work but the is no detection.
please help.


Raspicam will only publish the images themselves.

For detection you need aruco_detect and the roslaunch aruco_detect aruco_dectect.launchcommand



Hi Rohan,

Many thanks for your clarification.
I am trying to detect the aruco marker using the raspi itself without the need to connect it to pc with ubuntu and ros for further processing.
can I install the aruco marker in the raspi as well. because its important for me to use the raspi and its camera for detection and then only send the position of the detected marker to a pc.
thank again for your help.


You can run aruco on the raspberry pi, this is the primary way that we run it.



@Max all this software (including the aruco marker software) is included on our standard raspberry pi distribution which is available here:

All you need to do is download our image and burn it on to a suitable SD card (a high speed 16GB card is recommended).


Thanks to both of you guys,

I got the idea but still not working for me.
BTW, I have downloaded your distribution as davecrawley said.
What I am doing is the following, please correct me if I am wrong:

First there is no need to run roscore because for some reasons its already running
Second, I run the camera topic :
roslaunch raspicam_node camerav2_1280x960.launch

Third, I run the aruco marker:
roslaunch aruco_detect aruco_detect.launch

Forth, I run: rviz
in order to visualize the process of detecting but in the left side panel i got
Fixed frame : No tf data. Actual error: Fixed Frame [map] does not exist

Am I doing the right thing?
Please help.
Many thanks.


Max ill try to help you, but im not sure that this is what you need…

Try this steps 1 by 1:

Open 2 terminals ssh´ed to robot and 1 on VM:

1st terminal on robot run - [roslaunch magni_nav move_basic.launch]
2nd terminal on robot run - [roslaunch magni_nav aruco.launch]
3rd terminal on VM run - [roslaunch magni_viz view_nav.launch]


@rohbotics @davecrawley @brunolfm

At the mean time I am not using magni robot.
I just want to discover the aruco marker using the raspi and its camera. I installed your latest distribution on my sd card and I am doing everything inside the raspi

I got access to the camera as you can see in the following fig

but when I try to open the camera from fiducial_images topic, it simply do not work as you can see in the following fig.

when I connected the raspi to a laptop and open rviz from the laptop it also did not work.

the camera node is fine but the aruco detect is not working

I am using three topics: the camera node, the aruco_detect and rviz

Any help is highly appreciated.

many thanks


Well in the camera image window of RViz I don’t see any aruco markers. If you can’t recognize them in the camera image then the robot will not be able to.

If you have generated some aruco markers, printed them out, and put them up in the space and they are being seen by the camera, and they do appear on the image window in rviz and the camera can see them clearly in high contrast then it all should work.

Sometime though even if they are seen by the camera the lighting is such that the image is either completely washed out light or too dark to see anything. In that situation you should run

rosrun rqt_reconfigure rqt_reconfigure

then you can adjust the exposure settings on the camera to make it more or less sensitive to the light and make the image more view-able.

I would do this on your laptop with the laptop connected to the robot as described in the "workstation setup " section of the documentation found here:


You need to configure aruco to use the right topic for the raspicam, which doesn’t use the default /camera topics.

Run roslaunch aruco_detect aruco_detect.launch camera:=/raspicam_node for your aruco launch.




Thanks all for your replay and help.

Rohan, you got my point, thank you so much bro, that was the problem, I did not know that I need to specify the raspicam for the the aruco detect. thought its linked to by default.

Best regards,


Hi @rohbotics
I tried to go through the same approach but this time using another laptop with Ubuntu 14.04 and ros Indigo instead of the ubuntu 16.04 and ros kinetic.

I connected the laptop with the raspi_cam that has been set up correctly.
I have a problem in my laptop side when running

roslaunch aruco_detect aruco_detect.launch camera:=/raspicam_node

I get the following:
[aruco_detect.launch] is neither a launch file in package [aruco_detect] nor is [aruco_detect] a launch file name
The traceback for the exception was written to the log file

any ideas ?

Many thanks and best regards,


Do you have aruco_detect installed on your laptop?

Also note, that mixing ROS versions is not recommended, and can cause many problems. (Not this particular problem though).

Edit: aruco_detect was never released for indigo, and will likely not work. You will need to use a laptop with ROS Kinetic.