moveit / moveit_tutorials

A sphinx-based centralized documentation repo for MoveIt
https://moveit.github.io/moveit_tutorials/
BSD 3-Clause "New" or "Revised" License
486 stars 695 forks source link

Getting Started for Noetic build error #670

Open tylerjw opened 3 years ago

tylerjw commented 3 years ago

Description

The ROS Noetic Getting Started tutorial fails in the build step. I did not install ros-testing repo.

Your environment

 Localname           S SCM Version (Spec) UID  (Spec)  URI  (Spec) [http(s)://...]
 ---------           - --- -------------- -----------  ---------------------------
 rviz_visual_tools     git master         9b10fd2d96f9 github.com/PickNikRobotics/rviz_visual_tools
 panda_moveit_config   git melodic-devel  78e783a1cd97 github.com/ros-planning/panda_moveit_config.git
 moveit_visual_tools   git master         91cecd2ea236 github.com/ros-planning/moveit_visual_tools.git
 moveit_resources      git master         e093827aaa21 github.com/ros-planning/moveit_resources.git
 moveit_msgs           git master         152f6f6ac1ec github.com/ros-planning/moveit_msgs.git
 moveit                git master         d57721cf8503 github.com/ros-planning/moveit.git
 geometric_shapes      git noetic-devel   ca019f4d0e70 github.com/ros-planning/geometric_shapes.git

Steps to reproduce

Follow the Noetic Getting started tutorial (without ros-testing repo).

Expected behaviour

Project should build.

Backtrace or Console output

___________________________________________________________________________________________________________________________________________
Errors     << moveit_ros_perception:make /home/tyler/code/noetic/ws_tutorials/logs/moveit_ros_perception/build.make.000.log                
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.2.0', needed by '/home/tyler/code/noetic/ws_tutorials/devel/.private/moveit_ros_perception/lib/libmoveit_point_containment_filter.so.1.1.6'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:2999: point_containment_filter/CMakeFiles/moveit_point_containment_filter.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
cd /home/tyler/code/noetic/ws_tutorials/build/moveit_ros_perception; catkin build --get-env moveit_ros_perception | catkin env -si  /usr/bin/make --jobserver-auth=3,4; cd -

...........................................................................................................................................
tylerjw commented 3 years ago

I fixed this by installing these:

sudo apt install libopencv-dnn4.2 libopencv-objdetect4.2 libopencv-photo4.2 libopencv-stitching4.2 libopencv-video4.2 libopencv-contrib4.2

There is probably a package.xml in moveit that needs updated and rosdistro as it seems the old way of depending on libopencv and submodules isn't working anymore.

rhaschke commented 3 years ago

These libs are pulled in via package cv_bridge, which depends on libopencv-dev, which in turn depends on all these opencv libs. Did you run rosdep install?

tylerjw commented 3 years ago

These libs are pulled in via package cv_bridge, which depends on libopencv-dev, which in turn depends on all these opencv libs. Did you run rosdep install?

Yes I did. I've reproduced this both on my desktop at the office and on the one at my house. It seems that some, but not all are here: https://packages.ubuntu.com/focal/arm64/libopencv-dev I did verify that libopencv-dev was installed when I first got the error with the dnn submodule (looking at the depends in that link it looks like libopencv-dnn-dev should have been installed). After installing that one I continued to try to build and these were the list of things I had to apt install to get it to build.

I'm not sure how to debug where this is coming from. If someone else could reproduce this it would be very helpful as it would validate that I'm not crazy. I had to do a apt purge of ros-noetic-* and then apt autoremove and then start over with the tutorial inorder to reproduce it.

vatanaksoytezer commented 3 years ago

I'll try to test out today or tomorrow, though isn't it weird that CI is passing? Maybe it's passing because of ccache?