Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible libfranka Version and Build Errors with franka_ros2_ws #176

Open
DimiSf opened this issue Jan 22, 2025 · 5 comments
Open

Incompatible libfranka Version and Build Errors with franka_ros2_ws #176

DimiSf opened this issue Jan 22, 2025 · 5 comments

Comments

@DimiSf
Copy link

DimiSf commented Jan 22, 2025

Hello ,
System Information

OS: Ubuntu 22.04 (Pro)
Kernel: 5.15.0-1076-realtime #84-Ubuntu SMP PREEMPT_RT
CMake Version: 3.22.1
libfranka Version: 0.14.1
Robot System Version: 5.7.1
franka_ros2 Version: 0.1.15
ROS2 Distribution: Humble

Steps Taken

Activated the FCI mode on the robot and confirmed that ping <robot-ip> is successful.
Upgraded libfranka from version 0.13.3-1 to 0.14.1 using the following process:
Removed old libfranka references.
Built and installed libfranka as a Debian package using cpack and dpkg.

Verified the libfranka version:

 dpkg -l | grep libfranka

Output:

 ii  libfranka   0.14.1-1   amd64   libfranka built using CMake

Attempted to run the ./echo_robot_state example from the libfranka build directory:

 ./examples/echo_robot_state <robot-ip>

Error Received:

 libfranka: Incompatible library version (server version: 8, library version: 9). Please check https://frankaemika.github.io for Panda system updates or    choose a libfranka version that uses the server version 8 from the table at https://frankaemika.github.io/docs/compatibility.html .

Attempted to rebuild the franka_ros2_ws workspace using:

 source /opt/ros/humble/setup.bash
cd ~/franka_ros2_ws 
git clone https://github.com/frankaemika/franka_ros2.git src/franka_ros2 
git clone https://github.com/frankaemika/franka_description.git src/franka_description 
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release 
source install/setup.sh

Build Warnings

The following warnings were encountered during the build process:

  WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/group/franka_ros2_ws/install/<package-name>' in the environment variable       AMENT_PREFIX_PATH doesn't exist
  WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/group/franka_ros2_ws/install/<package-name>' in the environment variable CMAKE_PREFIX_PATH doesn't exist

Additionally:

Some selected packages are already built in one or more underlay workspaces:

   'joint_trajectory_controller' is in: /opt/ros/humble
       If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include  directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.

Build Errors

The following packages failed or aborted:

franka_gripper
    Error:

    CMake Error at /usr/local/lib/cmake/Franka/FrankaTargets.cmake:87 (message):
      The imported target "Franka::Franka" references the file
      "/usr/local/lib/libfranka.so.0.13.2"

The build process still references an old version of libfranka…

franka_hardware

joint_trajectory_controller

Questions

Why does the ./examples/echo_robot_state example fail with a library version mismatch, even though I have the correct libfranka version installed (0.14.1) and the robot firmware is 5.7.1 (server version 8)?
How can I ensure that franka_ros2 links correctly with the updated libfranka version during the build process?
Are the warnings regarding AMENT_PREFIX_PATH and CMAKE_PREFIX_PATH causing the issue, or should they be ignored?
How do I resolve the build failures in franka_gripper, franka_hardware, and joint_trajectory_controller?

Also:

I followed the compatibility table from the official Franka Documentation to ensure the versions of libfranka, franka_ros2, and the robot firmware are compatible.

Any guidance on resolving these issues would be greatly appreciated.

@AndreasKuhner
Copy link
Member

Hi @DimiSf ,
sometimes you get the wrong libfranka-common submodule. Can you try to checkout libfranka version 0.14.2 and do a git submodule update?

Version 9 is already a bit too new 😄

Cheers,
Andreas

@DimiSf
Copy link
Author

DimiSf commented Jan 23, 2025

Hey, @AndreasKuhner
Thank you for your response!I will try it today.Just to understand:
Before I had libfranka 13.3-1 and I build successfully franka_ros2_ws. So the build fails because of libfranka (upgraded to 14.1) ?
Can I use other version of libfranka (downgrade again)for my system (5.7.x)? At this case I had the error of incompatibility...
I fully understand the difficulty of new versions,and thank you for your work!!😊
Dimitra.

@AndreasKuhner
Copy link
Member

This compatibility matrix might shine a bit of light on the matter: https://frankaemika.github.io/docs/compatibility.html

So, seeing version 9 means you already caught the libfranka-common of the newest libfranka 0.15.0. If you see version 8, you are good to go.

Fun stuff... (and ignore if it might confuse you) we just released the newest image version 5.7.2. Hence, if you get now franka_ros2 version v1.0.0 and libfranka 0.15.0 (+doing a git submodule update), you should be good to go.

@Yash-Kashiv
Copy link

@AndreasKuhner I am not able to download libfranka 0.14.2.

@AndreasKuhner
Copy link
Member

Yes, we didn't do an official .deb release for it. The version 0.14.2 you would need to compile yourself... 😄

... which hopefully should be doable with our current setup of the libfranka docker container. Could you try that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants