diff --git a/issue.json b/issue.json new file mode 100644 index 00000000..aedf8029 --- /dev/null +++ b/issue.json @@ -0,0 +1 @@ +{"author":{"id":"MDQ6VXNlcjY5MDE2NjEw","is_bot":false,"login":"nirbheeksetia","name":""},"body":"**Description**\r\nI am trying to follow the official MoveIt installation tutorial from the website. (For further reference: https://moveit.picknik.ai/main/doc/tutorials/getting_started/getting_started.html ) While running the last command I get an error concerning the architecture of my system which seems to be related to kortex_api.\r\n\r\n**Environment**\r\n -ROS Distro: Jazzy \r\n -OS Version: Ubuntu 24.04 (WSL2)\r\n - CPU information:\r\n ![Image](https://github.com/user-attachments/assets/1795d795-b7a7-45e2-aae1-582d8f5ff745)\r\n\r\n**Steps to reproduce**\r\nAfter following through the whole tutorial, run the final command:\r\n```\r\ncd ~/ws_moveit\r\ncolcon build --mixin release\r\n```\r\n\r\n**Error/Output**\r\n![Image](https://github.com/user-attachments/assets/6a9f258c-f6c0-4188-9a8b-8275cd314075)\r\n\r\nIs there no aarch64 support yet for kortex_api? If no, how do I install MoveIt on my system?\r\n\r\nThank you in advanace for your help and answers!","labels":[],"number":254,"title":"aarch64 support","url":"https://github.com/Kinovarobotics/ros2_kortex/issues/254"} diff --git a/kortex_api/CMakeLists.txt b/kortex_api/CMakeLists.txt index c7ae6e98..fa1c98bb 100644 --- a/kortex_api/CMakeLists.txt +++ b/kortex_api/CMakeLists.txt @@ -1,32 +1,28 @@ cmake_minimum_required(VERSION 3.14) include(FetchContent) #include(ExternalProject) -FetchContent_Declare( - kinova_binary_api - URL ${CMAKE_CURRENT_SOURCE_DIR}/linux_x86-64_x86_gcc.zip - URL_HASH MD5=64bd86e7ab8bda90ef1fc7d6a356e080 - DOWNLOAD_EXTRACT_TIMESTAMP TRUE -) - -FetchContent_MakeAvailable(kinova_binary_api) project(kortex_api) -#Future: -# convert API_URL components from CMAKE_SYSTEM variables. -# The kinova artifactory server artifacts have slightly different expectations and they need some transformations -# Could build something like: (URL_OS)_(URL_PROCESSOR)_(?)_(URL_COMPILER).zip -# string(REPLACE "_" "-" URL_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}) # x86_64 -> x86-64 -# string(TOLOWER ${CMAKE_SYSTEM_NAME} URL_OS) # Linux -> linux - -#Current: only support Linux x86_64 if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(API_URL https://artifactory.kinovaapps.com:443/artifactory/generic-public/kortex/API/2.5.0/linux_x86-64_x86_gcc.zip) + FetchContent_Declare( + kinova_binary_api + URL ${CMAKE_CURRENT_SOURCE_DIR}/linux_x86-64_x86_gcc.zip + URL_HASH MD5=64bd86e7ab8bda90ef1fc7d6a356e080 + DOWNLOAD_EXTRACT_TIMESTAMP TRUE + ) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + FetchContent_Declare( + kinova_binary_api + URL https://artifactory.kinovaapps.com:443/artifactory/generic-public/kortex/API/2.5.0/linux_aarch64_aarch64_gcc.zip + DOWNLOAD_EXTRACT_TIMESTAMP TRUE + ) else() - set(API_URL "") - message(FATAL_ERROR "Unsupported System: currently support is for Linux x68_64. Detected ${CMAKE_SYSTEM_NAME} and ${CMAKE_SYSTEM_PROCESSOR}") + message(FATAL_ERROR "Unsupported System: currently support is for Linux x86_64 and Linux aarch64. Detected ${CMAKE_SYSTEM_NAME} and ${CMAKE_SYSTEM_PROCESSOR}") endif() +FetchContent_MakeAvailable(kinova_binary_api) + #ExternalProject_Add(kinova_binary_api # URL ${API_URL} # CONFIGURE_COMMAND "" diff --git a/kortex_driver/CMakeLists.txt b/kortex_driver/CMakeLists.txt index 6e47d729..67b20497 100644 --- a/kortex_driver/CMakeLists.txt +++ b/kortex_driver/CMakeLists.txt @@ -1,10 +1,19 @@ cmake_minimum_required(VERSION 3.14) include(FetchContent) -FetchContent_Declare( - kinova_binary_api - URL https://artifactory.kinovaapps.com:443/artifactory/generic-public/kortex/API/2.5.0/linux_x86-64_x86_gcc.zip - URL_HASH MD5=64bd86e7ab8bda90ef1fc7d6a356e080 -) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + FetchContent_Declare( + kinova_binary_api + URL https://artifactory.kinovaapps.com:443/artifactory/generic-public/kortex/API/2.5.0/linux_x86-64_x86_gcc.zip + URL_HASH MD5=64bd86e7ab8bda90ef1fc7d6a356e080 + ) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + FetchContent_Declare( + kinova_binary_api + URL https://artifactory.kinovaapps.com:443/artifactory/generic-public/kortex/API/2.5.0/linux_aarch64_aarch64_gcc.zip + ) +else() + message(FATAL_ERROR "Unsupported System: currently support is for Linux x86_64 and Linux aarch64. Detected ${CMAKE_SYSTEM_NAME} and ${CMAKE_SYSTEM_PROCESSOR}") +endif() FetchContent_MakeAvailable(kinova_binary_api) project(kortex_driver) @@ -28,16 +37,6 @@ find_package(pluginlib REQUIRED) find_package(rclcpp REQUIRED) find_package(kortex_api REQUIRED) -#Current: only support Linux x86_64 -if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(API_URL https://artifactory.kinovaapps.com:443/artifactory/generic-public/kortex/API/2.5.0/linux_x86-64_x86_gcc.zip) -else() - # TODO(future) to support ARM or other builds logic could go here to fetch the precompiled libKortexApiCpp.a - # see notes in kortex_api CMakeList.txt - message(WARNING "Detected ${CMAKE_SYSTEM_NAME} and ${CMAKE_SYSTEM_PROCESSOR}") - message(FATAL_ERROR "Unsupported System: currently support is for Linux x68_64.") -endif() - # CMake does not allow IMPORTED libraries to be installed # The package kortex_api will download and setup the include directories add_library(KortexApiCpp STATIC IMPORTED)