Official C++ ROS bridge

943 views
Skip to first unread message

Vincent Rabaud

unread,
Apr 28, 2015, 9:55:09 AM4/28/15
to ros-sig-...@googlegroups.com
Hi all,

another good announcement for today: Aldebaran is now providing an official C++ bridge with its NAOqiOS. We are sharing the code but also the maintainership with you: let's make it awesome !

The code is here. Please read the doc there and let's discuss a few aspects of it on that thread.

Mikael Arguedas

unread,
May 12, 2015, 12:46:46 PM5/12/15
to ros-sig-...@googlegroups.com
Hi all,

That is very good news!
A few questions just to be sure that I understood it correctly:
All this only depends on libqi which is now open source, right ?
So if we release libqi in ROS and published a catkinized version of that bridge we should be able to have standard ROS packages for this C++ bridge, am I right?
If so, I started doing it a while ago and if this is okay for you I can release libqi as a ROS third party.
This way we could focus on the C++ bridge and start dropping the python one, right ?

Regards,
Mikael

Vincent Rabaud

unread,
May 12, 2015, 3:51:23 PM5/12/15
to ros-sig-...@googlegroups.com
Indeed, that would work. We would need several things though:
- branch the Python version of naoqi_bridge for people that are still on 1.14 (really, if you're on 1.14, 2.1 has the same/better performance so you should upgrade (if you don't, please let us know why))
- release libqi as its own third party package (http://wiki.ros.org/bloom/Tutorials/ReleaseThirdParty)
- have the current C++ bridge also work with catkin (which is easy, just add a find_package(catkin QUIET))

As you said, the good thing is that users doing pure ROS would not need to struggle with the PYTHONPATH or anything else.

Any other insight ? Anybody wants to help on those easy tasks ?

--
You received this message because you are subscribed to the Google Groups "ROS Sig Aldebaran" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-aldeba...@googlegroups.com.
To post to this group, send email to ros-sig-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ros-sig-aldebaran.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-aldebaran/ba4dee32-1fa6-4351-9497-321981153e39%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Konstantinos Chatzilygeroudis

unread,
May 23, 2015, 7:51:32 AM5/23/15
to ros-sig-...@googlegroups.com
I've been reading the code of the C++ bridge lately.

I see many topics publications. Have you implemented anything for command issuing? (e.g. joint or sonar commands) I am willing to help in that direction, if not already implemented..

Vincent Rabaud

unread,
May 24, 2015, 9:56:07 AM5/24/15
to ros-sig-...@googlegroups.com
Well, Surya, Karsten, Marine, you might have a better answer but otherwise, I know the following has been implemented:
http://ros-naoqi.github.io/alrosbridge/topics.html
As mentioned in the README, the entry point for the doc of the bridge is here btw: http://ros-naoqi.github.io/alrosbridge/index.html

That is where the NAOqi-ROS community needs to help gear the bridge: which ROS / NAOqi functionalities are you missing in there ?

Okan Aşık

unread,
May 24, 2015, 10:57:33 AM5/24/15
to ros-sig-...@googlegroups.com
I will not ask a technical question, but a strategical one :)

With this release I understood that Aldebaran will not push ROS on Nao. Probably that is already technically rationalized, but I also would like know the reasons?

This is important because, this decision also affects the community who try to run ROS on Nao. The current approach to compile and run ROS on Nao actually a bit painful. If Aldebaran aldready worked on that an failed, I think we should know that :D

Best regards

Konstantinos Chatzilygeroudis

unread,
May 24, 2015, 12:35:22 PM5/24/15
to ros-sig-...@googlegroups.com
Aha ok! So there's no command issuing topics/services. As far as I can tell, you can't give joint commands via topics/services in this C++ bridge (e.g. move joint LShoulder to 20 degrees).

I will focus my helping effort in this direction then.

Thanks!

Vincent Rabaud

unread,
May 24, 2015, 2:11:43 PM5/24/15
to ros-sig-...@googlegroups.com
@Konstantinos, that seems like worth your effort. The easiest to start is probably to open up a bug so that discussion can start.

@Okan, this ROS bridge should actually be interpreted the other way around: with it, Aldebaran dedicates official engineer time and helps bridge with ROS, that is big ! Now, you have to understand that we have a business to protect and though we want to give flexibility to users, we want to make sure they don't use the flaws in our design that could prevent the user experience (e.g. make the robot fall, or convert the robot into a spambot).

This bridge is a way for us to understand better what ROS users and advanced roboticists want, so that we keep functionalities in the future, while making our robot safer (e.g. harder to damage, harder to hack).

Having ROS or not on the robot is the same: we need to make sure that it interacts properly with the rest of the system and also understand the use cases:
- are the current topics/services in the bridge enough ?
- does it really need to be on the robot ?
- if it's on the robot, should we distribute it by default, through our app-store or let people compile it so that they have more flexibility ?

And that's why we need the community's feedback and help on those questions. There is no trick here: we give you Apache 2.0 code, open development and we have non-Aldebaranians that have access to the bridge (Kei, Daniel, Konstantinos, Severin ...). Let's brainstorm and make it fit everybody's needs ! Think of it as the version 2.0 of the previous bridge (which was mostly Python).


Also, an example that it's going in the right direction for the end-user: as a first step since the release, the project was made to work with catkin too. And packages are now available in shadow-fixed (I was waiting for a sync to announce it). That means you can now download an official Ubuntu ROS package on your desktop (named naoqi-rosbridge, user version >= 0.0.5) and communicate with your NAOqi robot through ROS ! No need for SDK downloads, PYTHONPATH tweaking, complex builds. Download, run, enjoy.

Finally, why do you believe we tried running ROS on the robot and failed ? Many people did it successfully and there are tutorials for that. Plus, this bridge has instructions on how to build it with a 64-bit toolchain: http://ros-naoqi.github.io/alrosbridge/install.html The only thing you would need to get it on the robot would be a 32-bit toolchain no ? :) BTW, see anything familiar in the Pepper video that just got published on IEEE Spectrum ? :p



Karsten K

unread,
May 25, 2015, 4:15:04 AM5/25/15
to ros-sig-...@googlegroups.com
I agree that opening a issue on Github seems to be the easiest way to get feature requests and feedback from the community. So please feel free to spam :)

For now, we implemented to subscribers for positioning the robot and to enable tele-operations (e.g. via the android control app). A joint positioning is great to have. Thanks for the support and as usual, go ahead and ask for help in case you are stuck somewhere.

Okan Aşık

unread,
May 26, 2015, 3:35:00 AM5/26/15
to ros-sig-...@googlegroups.com
Thanks for that explanatory reply. I just wanted to know whether Aldebaran considers to move ROS into its OS images. If they do not plan such thing, I thought there might be some technical difficulties such as high system load (maybe unneccessary and redundant since Aldebaran has NaoQi). Thanks :)

Best regards

Reply all
Reply to author
Forward
0 new messages