rpng / ov_maplab

Interface for OpenVINS with the maplab project
https://docs.openvins.com/
GNU General Public License v3.0
85 stars 15 forks source link

docker build: libdepth_integration.so: undefined reference #3

Closed AbelSyx closed 1 year ago

AbelSyx commented 2 years ago

When i execute command "roslaunch ov_maplab serial.launch config:=euroc_mav dataset:=V1_02_medium", There will be some problems like: Resource not found: The following package was not found in : ov_data ROS path [0]=/opt/ros/melodic/share/ros ROS path [1]=/catkin_ws/src/maplab/dependencies/3rdparty/catkin_simple ROS path [2]=/catkin_ws/src/maplab/dependencies/3rdparty/doxygen_catkin ROS path [3]=/catkin_ws/src/maplab/dependencies/3rdparty/eigen_catkin ROS path [4]=/catkin_ws/src/maplab/dependencies/3rdparty/gflags_catkin ROS path [5]=/catkin_ws/src/maplab/dependencies/3rdparty/glog_catkin …… Is this caused by build failure? I hope to know how to solve it. Thx.

goldbattle commented 2 years ago

Make sure you source your workspace and also build the ov_data package. I updated the readme to reflect this.

AbelSyx commented 2 years ago

Thank you for your answer! You are right. I think this is probably because there are some problems in compiling the program. But I still have some problems.

  1. During 'Build maplab, OpenVINS, and ov_maplab in the container:' , When I execute command 'ov_docker ov_maplab bash', the terminal displays '/ros_entrypoint.sh: line 6: /catkin_ws/devel/setup.bash: No such file or directory'. Then I delete 'RUN sed -i '6i\source "/catkin_ws/devel/setup.bash"\' /ros_entrypoint.sh' in /ov_maplab/Dockerfile, and re-execute the command 'docker build -t ov_maplab .' . Then, the problem was solved. I hope to know is this a solution suitable?
  2. When I execute command 'catkin build maplab ov_maplab ov_data -j4' , the terminal displays:

Failed << maplab_console:make [ Exited with code 2 ]
Failed <<< maplab_console [ 1 minute and 27.8 seconds ]
Abandoned <<< loop_closure_handler [ Unrelated job failed ]
Abandoned <<< map_anchoring [ Unrelated job failed ]
Abandoned <<< map_anchoring_plugin [ Unrelated job failed ]
Abandoned <<< map_optimization [ Unrelated job failed ]
Abandoned <<< localization_evaluator [ Unrelated job failed ]
Abandoned <<< loop_closure_plugin [ Unrelated job failed ]
Abandoned <<< map_optimization_plugin [ Unrelated job failed ]
Abandoned <<< mapping_workflows_plugin [ Unrelated job failed ]
Abandoned <<< pose_graph_manipulation_plugin [ Unrelated job failed ]
Abandoned <<< vi_map_summarization_plugin [ Unrelated job failed ]
Abandoned <<< maplab_server_node [ Unrelated job failed ]
Abandoned <<< vio_common [ Unrelated job failed ]
Abandoned <<< localization_fusion [ Unrelated job failed ]
Abandoned <<< online_map_builders [ Unrelated job failed ]
Abandoned <<< maplab_node [ Unrelated job failed ]
Abandoned <<< ov_maplab [ Unrelated job failed ]
Abandoned <<< rovioli [ Unrelated job failed ]

[build] Summary: 94 of 112 packages succeeded.
[build] Ignored: 21 packages were skipped or are blacklisted.
[build] Warnings: 29 packages succeeded with warnings.
[build] Abandoned: 17 packages were abandoned.
[build] Failed: 1 packages failed.

Looking forward to your answer, thank you!

goldbattle commented 2 years ago

Make sure you are setting the DOCKER_CATKINWS variable to be the actual workspace root and not the src folder. It looks like one of the maplab packages failed, so I recommend you take a look into that error. When you enter the bash of the maplab you might need to source manually after you build (as in the case of standard ros and non-docker builds) using source devel/setup.bash.

AbelSyx commented 2 years ago

Actually, I have modified the DOCKER_CATKINWS and DOCKER_DATASETS in the ~/.bashrc to adapt to my computer.

xhost + &> /dev/null export DOCKER_CATKINWS=/home/abel/catkin_ws_maplab export DOCKER_DATASETS=/home/abel/datasets alias ov_docker="docker run -it --net=host --gpus all \ --env=\"NVIDIA_DRIVER_CAPABILITIES=all\" --env=\"DISPLAY\" \ --env=\"QT_X11_NO_MITSHM=1\" --volume=\"/tmp/.X11-unix:/tmp/.X11-unix:rw\" \ --mount type=bind,source=$DOCKER_CATKINWS,target=/catkin_ws \ --mount type=bind,source=$DOCKER_DATASETS,target=/datasets $1"

The information about the failed of the maplab_console is as follows:


Errors << maplab_console:make /catkin_ws/logs/maplab_console/build.make.001.log /catkin_ws/devel/lib/libdepth_integration.so: undefined reference to `void backend::addLabelToPointCloud(unsigned int, unsigned long, resources::VoxbloxColorPointCloud*)' collect2: error: ld returned 1 exit status make[2]: [/catkin_ws/devel/lib/maplab_console/batch_runner] Error 1 make[1]: [CMakeFiles/batch_runner.dir/all] Error 2 make: *** [all] Error 2 cd /catkin_ws/build/maplab_console; catkin build --get-env maplab_console | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd - ...............................................................................

Can you give me some suggestions to help me solve this problem? Thx!

goldbattle commented 2 years ago

I am not sure of the error. You are building it all inside of the docker container correct?

gabriel-shu commented 1 year ago

Actually, I have modified the DOCKER_CATKINWS and DOCKER_DATASETS in the ~/.bashrc to adapt to my computer.

xhost + &> /dev/null export DOCKER_CATKINWS=/home/abel/catkin_ws_maplab export DOCKER_DATASETS=/home/abel/datasets alias ov_docker="docker run -it --net=host --gpus all --env="NVIDIA_DRIVER_CAPABILITIES=all" --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --mount type=bind,source=$DOCKER_CATKINWS,target=/catkin_ws --mount type=bind,source=$DOCKER_DATASETS,target=/datasets $1"

The information about the failed of the maplab_console is as follows:

Errors << maplab_console:make /catkin_ws/logs/maplab_console/build.make.001.log /catkin_ws/devel/lib/libdepth_integration.so: undefined reference to `void backend::addLabelToPointCloudresources::VoxbloxColorPointCloud(unsigned int, unsigned long, resources::VoxbloxColorPointCloud*)' collect2: error: ld returned 1 exit status make[2]: [/catkin_ws/devel/lib/maplab_console/batch_runner] Error 1 make[1]: [CMakeFiles/batch_runner.dir/all] Error 2 make: *** [all] Error 2 cd /catkin_ws/build/maplab_console; catkin build --get-env maplab_console | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd - ...............................................................................

Can you give me some suggestions to help me solve this problem? Thx!

Did you solve this problem?Can you give me some help?Thx!!

goldbattle commented 1 year ago

This project hasn't been built with the newest version, so I think these errors should be expected. Here is the commit that I have used on my local machine. https://github.com/ethz-asl/maplab/tree/483daf4988a76c15be362fd017ec78581c4f88d9 image You can try the following:

cd src/maplab/
git checkout 483daf4988a76c15be362fd017ec78581c4f88d9
git submodule update --init --recursive