MerlinLaboratory / ABB_omnicore_ros_driver

11 stars 7 forks source link

Compilation error!!!!! #18

Closed Leeeeeeeeeeeeeeeeeeeeeeeeeeeeeo closed 7 months ago

Leeeeeeeeeeeeeeeeeeeeeeeeeeeeeo commented 7 months ago

Nice job.But i have a big problem about compilation. a lot of error just like: error: ‘abi’ has not been declared char* demangled = abi::__cxa_demangle(typeName, nullptr, nullptr, &status); error: no matching function for call to ‘google::protobuf::internal::InternalMetadata::mutable_unknown_fields()’ return _internalmetadata.mutable_unknown_fields();

error This file was generated by an older version of protoc which is

error This file was generated by an older version of protoc which is

^~~~~ /home/leo/ABB_ws/src/ABB_omnicore_ros_driver-master/abb_libegm/include/abb_libegm/egm_wrapper.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please

error incompatible with your Protocol Buffer headers. Please

^~~~~ /home/leo/ABB_ws/src/ABB_omnicore_ros_driver-master/abb_libegm/include/abb_libegm/egm_wrapper.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.

I need to know how to configure the POCO library and Protobuf Thanks!

pucciland95 commented 7 months ago

Hi Leo, and thank you for using our repo.

It looks like something related to the Poco Library. May I ask you after what command this error is thrown?

I have seen that the Poco repo has been updated a lot recently. I can try to replicate your error with a Docker file later today or max this weekend but I need more info about your setup.

Leeeeeeeeeeeeeeeeeeeeeeeeeeeeeo commented 7 months ago

Thanks for your reply!

My ubuntu system version is 18.04.6,and the Poco Library is the latest version from # https://github.com/pocoproject/poco ,which I installed Poco according to the instructions in the readme,and copy all the Poco file from /usr/local/lib/ to /usr/lib using the root privileges.

Then I use the "catkin build" command.

Besides,I also encountered problems with the Protobuf version, which can be seen in the error above.

The following is the summary after compilation failure: ............................................................................... Failed << abb_libegm:make [ Exited with code 2 ] Failed <<< abb_libegm [ 7.1 seconds ]
[build] Summary: 2 of 12 packages succeeded.
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: 8 packages were abandoned.
[build] Failed: 2 packages failed.
[build] Runtime: 7.5 seconds total.

By the way,I wonder know if my IRB1010 can run this project because it is the latest ABB production and there is little relevant information online.

Thanks again for your reply!

pucciland95 commented 7 months ago

Therefore, you are using ROS Melodic, right? The repo has not been tested on ROS Melodic. In any case, I will try with a docker image to see whether I have the same compilation errors as you have.

Regarding the IRB 1010, I think the repo will support this since it has an Omniore Controller. However, you will have to create your moveit_config pkg and make several changes to the launch files and config files. Unluckly I cannot support you on that since we don't have the robot in our lab.

Leeeeeeeeeeeeeeeeeeeeeeeeeeeeeo commented 7 months ago

Yes, the version I have installed is ROS Melodic. If you recommend that I use Ubuntu 20.04 and ROS Noetic, I can try that.

Additionally, I want to ask if the moveit_config_pkg file was generated using the MoveIt Assistant with the IRB1010 robot's URDF. If so, I can generate it myself. Thanks

pucciland95 commented 7 months ago

I managed to reproduce your problem using Docker. I can confirm that your error is happening since you are using Ubuntu 18.04. The .proto messages that my pkg uses have been compiled with a newer version that is present in Ubuntu 20.04.

Therefore what I suggest to you is to move to Ubuntu 20.04. I tried to compile it in a new device and (after my last push) everything builds fine.

On the other hand, I managed to make the system build in Ubuntu 18.04. The first thing you will need to do is to recompile the .proto files. To do so, navigate to:

cd src/ABB_omnicore_ros_driver/abb_libegm/proto/

and launch the following commands:

protoc  --cpp_out=../include/ egm.proto
protoc  --cpp_out=../include/ egm_wrapper.proto
protoc  --cpp_out=../include/ egm_wrapper_trajectory.proto

Now you should have 6 new files (3 .pb.cpp files and 3 .pb.h files). Please copy and replace the .h files under abb_libegm/include/abb_libegm and the .cpp files under abb_libegm/src with the new ones. After these changes, pull from my repo and build. I have no idea if this procedure will give you problems at run time, but the pkg now builds.

Let me know if this fixes your issues

Niccolo

Leeeeeeeeeeeeeeeeeeeeeeeeeeeeeo commented 7 months ago

Yes, I just installed Ubuntu 20.04 and compiled the project following the steps in the README, and it was successful.

In any case, thank you for your response.