这个错误信息表明你的系统无法找到名为 libosqp.so 的共享库文件。libosqp.so 是 OSQP (Operator Splitting Quadratic Program Solver) 的库文件,它通常用于解决二次规划问题。这个库文件对于你的 mpc_controller_node 节点来说是必需的。

要解决这个问题,你可以按照以下步骤操作:

  1. 确认 OSQP 是否已安装
    首先,你需要确认 OSQP 是否已经在你的系统上安装。可以通过在终端中运行 ldconfig -p | grep libosqp 来检查。

  2. 安装 OSQP
    如果 OSQP 没有安装,你需要安装它。可以通过以下方式安装:

    • 使用包管理器(如果可用):例如,在 Ubuntu 上,你可以尝试使用 sudo apt-get install libosqp-dev(注意:这个命令可能不适用于所有版本的 Ubuntu,因为 OSQP 可能不在默认的包管理器中)。
    • 从源代码编译安装:访问 OSQP 的 GitHub 页面,按照提供的安装指南从源代码编译并安装。
  3. 设置 LD_LIBRARY_PATH
    如果 OSQP 已经安装,但是系统仍然找不到 libosqp.so,可能是因为库文件不在系统的库搜索路径中。你可以通过添加库文件所在的目录到你的 LD_LIBRARY_PATH 环境变量来解决这个问题。例如,如果 libosqp.so 位于 /usr/local/lib,你可以在你的 shell 配置文件中(如 .bashrc 或 .zshrc)添加以下行:

     

    bash复制代码

    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

    然后运行 

    source ~/.bashrc 或 source ~/.zshrc

     来使更改生效。

    • 如果你使用 cmake,你可以使用 target_link_libraries 和 link_directories 命令来指定库。例如:

       

      cmake复制代码

    • include_directories(/usr/local/include/osqp)
      link_directories(/usr/local/lib)
      target_link_libraries(${PROJECT_NAME}_node PRIVATE osqp)
  1. 编译你的项目
    现在,当你编译你的项目时,链接器将能够找到并链接 OSQP 静态库。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐