ros-naoqi/naoqi_driver

Will there be Noetic support?

Closed this issue · 11 comments

Hello, I'm currently on Ubuntu focal which isn't supported by previous versions of ROS. I also noticed that naoqi driver isn't supporting Noetic either. So, I'm stuck between a rock and a hard place. (I'm trying to run Nao virtually)

Is there any plan to support Noetic or is the only option to downgrade Ubuntu and ROS?

Edit: Did some more digging, seems like Naos OS is not supported in Noetic, so support seems unlikely? Will try with Docker or VB.

mbusy commented

@holken Yes, we have plans to release the driver for Noetic. I wouldn't be able to give you a release date though, the first packages to be released for Noetic will be naoqi_libqi and naoqi_libqicore, followed by naoqi_driver and naoqi_bridge_msgs.

For now, the most reasonable option would be downgrading Ubuntu and ROS

Now that libqi and libqicore are out. Do you know if there is a time frame where noetic support for the driver would be release ?

mbusy commented

The current version of the driver should be compatible with Noetic. libqi and libqicore are available for noetic, but no package has been officially released, so for now you have to build everything from source. You need the following packages:

and naoqi_driver. There is still some work in progress being done on the driver, but not specifically for Noetic

mbusy commented

To close the issue,

  • naoqi_libqi
  • naoqi_libqicore
  • naoqi_bridge_msgs
  • nao_meshes
  • pepper_meshes

Are currently being released for Noetic and will soon be available throught apt-get (corresponding sync topic).
The naoqi_driver package is being released too, but will be included in the next batch. Anyways, it should soon be available too, check the ROS Discourse release schedule for Noetic

To close the issue,

* naoqi_libqi

* naoqi_libqicore

* naoqi_bridge_msgs

* nao_meshes

* pepper_meshes

Are currently being released for Noetic and will soon be available throught apt-get (corresponding sync topic). The naoqi_driver package is being released too, but will be included in the next batch. Anyways, it should soon be available too, check the ROS Discourse release schedule for Noetic

Hi @mbusy, are these packages enough to use the real Pepper robot with Noetic? I am trying to do that however I get some errors since I think there is no python sdk for python 3 and also get the following error when compiling naoqi_dcm_bringup:

Errors     << naoqi_dcm_driver:make /home/sasm/ros/noetic/system/logs/naoqi_dcm_driver/build.make.003.log                                                                                                         
/home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp: In function ‘int main(int, char**)’:
/home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp:99:17: error: ‘bool boost::function0<R>::operator!() const [with R = void]’ is inaccessible within this context
   99 |   if (!session->connected)
      |                 ^~~~~~~~~
In file included from /usr/include/boost/function/detail/maybe_include.hpp:15,
                 from /usr/include/boost/function/detail/function_iterate.hpp:14,
                 from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:48,
                 from /usr/include/boost/function.hpp:71,
                 from /usr/include/boost/program_options/options_description.hpp:15,
                 from /usr/include/boost/program_options.hpp:15,
                 from /opt/ros/noetic/include/qi/application.hpp:12,
                 from /home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp:19:
/usr/include/boost/function/function_template.hpp:892:10: note: declared here
  892 |     bool operator!() const
      |          ^~~~~~~~
/home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp:99:17: error: ‘boost::function0<void>’ is not an accessible base of ‘qi::Signal<>’
   99 |   if (!session->connected)
      |                 ^~~~~~~~~
/home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp:112:59: warning: ‘qi::FutureSync<T>::operator const typename qi::Future<T>::ValueTypeCast&() const [with T = qi::Object<qi::Empty>; typename qi::Future<T>::ValueTypeCast = qi::Object<qi::Empty>]’ is deprecated: "Use either `then`, `andThen`, `value` or `wait` functions instead." [-Wdeprecated-declarations]
  112 |     qi::AnyObject touch_proxy = session->service("ALTouch");
      |                                                           ^
In file included from /opt/ros/noetic/include/qi/future.hpp:7,
                 from /opt/ros/noetic/include/qi/session.hpp:15,
                 from /home/sasm/ros/noetic/system/src/naoqi_dcm_driver/include/naoqi_dcm_driver/robot.hpp:25,
                 from /home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp:21:
/opt/ros/noetic/include/qi/detail/future_fwd.hpp:749:5: note: declared here
  749 |     operator const typename Future<T>::ValueTypeCast&() const          { _sync = false; return _future.value(); }
      |     ^~~~~~~~
/home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp:124:67: warning: ‘qi::FutureSync<T>::operator const typename qi::Future<T>::ValueTypeCast&() const [with T = qi::Object<qi::Empty>; typename qi::Future<T>::ValueTypeCast = qi::Object<qi::Empty>]’ is deprecated: "Use either `then`, `andThen`, `value` or `wait` functions instead." [-Wdeprecated-declarations]
  124 |     qi::AnyObject life_proxy = session->service("ALAutonomousLife");
      |                                                                   ^
In file included from /opt/ros/noetic/include/qi/future.hpp:7,
                 from /opt/ros/noetic/include/qi/session.hpp:15,
                 from /home/sasm/ros/noetic/system/src/naoqi_dcm_driver/include/naoqi_dcm_driver/robot.hpp:25,
                 from /home/sasm/ros/noetic/system/src/naoqi_dcm_driver/src/robot_driver.cpp:21:
/opt/ros/noetic/include/qi/detail/future_fwd.hpp:749:5: note: declared here
  749 |     operator const typename Future<T>::ValueTypeCast&() const          { _sync = false; return _future.value(); }
      |     ^~~~~~~~
make[2]: *** [CMakeFiles/naoqi_dcm_driver.dir/build.make:76: CMakeFiles/naoqi_dcm_driver.dir/src/robot_driver.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1807: CMakeFiles/naoqi_dcm_driver.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

mbusy commented

Hey @sasilva1998, yes it should be enough. To make things clear, the whole stack isn't going to be maintained anymore, only the driver, its dependencies and the mesh packages.

So naoqi_driver, naoqi_libqi, naoqi_libqicore, naoqi_bridge_msgs and the pepper_meshes and nao_meshes packages are maintained, not the rest. It doesn't mean that you cannot try to compile it under noetic to interact with a robot, but it won't be maintained. In your case, can I ask, what robot are you using? (and which naoqi version)

@mbusy I am using a Pepper Robot. I was just testing, and noticed that I do get the positions of the robot joints in rviz even though naoqi_poses.py crashes because of the python version difference of the sdk, not sure what naoqi_poses.py does though.

I will be trying to make naoqi_dcm_driver compile to be able to use moveit.

Hi @mbusy, in the end I could make it work, and was able to use moveit and teleop with the real pepper robot.

mbusy commented

Great! If you're motivated to open a PR on the project it's even greater, I can't promise that it will be reviewed soon though 😅

Hi @sasilva1998

  1. how did you end up fixing your issues with the python version? Did you install python2.7 for this?

  2. What did you do to be able to compile the naoqi_dcm_driver for noetic?

Hello @adrianrodriguez2016, you are not meant to require Python 2.7 and naoqi_dcm_driver to get it work for Noetic.
Please review the README (which may have been updated since then), and file an issue with your problem to get help.