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

nao camera wrapper node

asked 2012-05-02 01:50:31 -0600

_phdstudent gravatar image

updated 2014-01-28 17:12:10 -0600

ngrennan gravatar image

Hi all,

I'm trying to get a ROS node running, which should publish the images grabbed by the cameras of the Nao robot (latest generation, H25 with Intel ATOM CPU). Therefore I'm using the Aldebaran C++ API.

First, I tried to use the NAO-ROS camera driver from Brown Uni, but it didn't work in my case either. This link reports the problem:

So when writing an own wrapper node for the cameras, I tried to integrate the necessary Aldebaran API functions according to Aldebaran's API docu. The node should work remotely, so it is not loaded onto the robot. My wrapper node compiles, but it crashes with segmentation fault immadiately at run time. I'm using image_transport of ROS, and I'm sure the ROS part of the code works fine as I used the concept with a simple webcam before without problems. However, I think the problem lies within the Aldebaran API and libraries. As soon as they are included, the node still compiles, but crashes at run time.

Has anyone a solution or useful hints to this problem?

Thank you.

edit retag flag offensive close merge delete

4 Answers

Sort by ยป oldest newest most voted

answered 2012-05-23 04:13:49 -0600

daniel_maier gravatar image

I just wrote a small ROS python wrapper for Nao's camera. You can find it in our nao_driver package (see

edit flag offensive delete link more

answered 2012-05-07 22:58:15 -0600

daniel_maier gravatar image

Without knowing what your code looks like, my first guess would be that you tried to link ROS and Aldebaran's naoqi into the same binary. naoqi is linked to a specific boost version, included in the naoqi SDK. ROS links (probably) to another boost version in /usr/lib/. One solution would be to compile ROS from source and let it link to the boost version included in the naoqi SDK. The easiest solution would be to use python.

edit flag offensive delete link more

answered 2012-05-14 00:44:55 -0600

_phdstudent gravatar image

Yes, I tried to link ROS and Aldebaran's API into the same binary. I had the same problem of compiling but crashing with seg. fault at run time with the "nao_sensors_cpp.cpp" of the nao_driver pkg. of Uni Freiburg. There, they also used ROS h-files along with the Aldebaran h-files and API. The problem with different boost versions is a good point, I didn't know that, thanks. Maybe I'll write a cam. wrapper node in python later.

edit flag offensive delete link more


Are you running the node on the Nao? nao_sensors_cpp only runs on the Nao. And in that case you need to crosscompile with Aldebaran's crosscompilation toolchain, which also requires a crosscompiled ROS. With these prerequisites, all runs fine on our Naos.

AHornung gravatar image AHornung  ( 2012-05-14 08:40:53 -0600 )edit

I see. Well, cross-compilation of ROS doesn't work in my case then, since I have the new generation of NAO (H25 with Intel ATOM CPU) and according to the ROS docu cross-compilation of ROS works only for the older NAO having AMD Geode.

_phdstudent gravatar image _phdstudent  ( 2012-05-14 23:31:27 -0600 )edit

The documentation was written for the Geode. It should also work for the new ATOM ones but it will surely need some adjustments...

AHornung gravatar image AHornung  ( 2012-05-15 06:03:22 -0600 )edit

answered 2012-05-30 22:56:33 -0600

_phdstudent gravatar image

Hi, your NAO python camera wrapper works fine. I think we can consider this problem as solved.

edit flag offensive delete link more

Question Tools


Asked: 2012-05-02 01:50:31 -0600

Seen: 1,059 times

Last updated: May 30 '12