top of page
検索

✅【トラブル解決】ROS2 humbleで「spdlog.soのImportError」が出る場合の対処法(Isaac Simとの共存環境)

  • 執筆者の写真: M K
    M K
  • 2024年10月2日
  • 読了時間: 2分

更新日:4月14日



■ 実行環境

  • OS:Ubuntu 22.04.5 LTS

  • ROS2:humble

  • 他ソフトウェア:NVIDIA Isaac Sim

🛠️ 起動エラーの概要

ROS2 humble および Isaac Sim をインストールした環境で、ROS2 単体を起動しようとしたところ、以下のようなエラーが発生することがあります。


ImportError: /opt/ros/humble/lib/librcl_logging_spdlog.so: undefined symbol: ZN6spdlog7details7logmsgC1...

これは librcl_logging_spdlog.so のライブラリが破損しているか、互換性のない spdlog バージョンを読み込んでいることが原因で発生します。


💡 原因とポイント

このエラーは通常、ROS2の再インストールで解消されることが多いですが、Isaac Simをインストールしている場合、Isaac Sim にバンドルされた ROS2 (humble) のライブラリが先に読み込まれることがあります。

つまり、Isaac Sim 側の ROS2 が壊れている可能性があるのです。



🧩 解決策:Isaac Sim の ROS2 を読み込まないようにする


Isaac Sim のチュートリアルに従って環境構築をしている場合、~/.bashrc に以下のようなエクスポート設定が追加されているはずです。


source /path/to/isaac_sim/ros2_workspace/install/setup.bash

これをコメントアウト(または削除)して、Isaac Sim 側の ROS2 を読み込まないようにしましょう。


✔ 手順

ターミナルで .bashrc を編集

vi ~/.bashrc

以下のような行を見つけて、先頭に # を付けてコメントアウト

# source ~/isaac_sim/ros2_workspace/install/setup.bash

.bashrc を保存して閉じる

ターミナルを再起動、または .bashrc を再読み込み

source ~/.bashrc

🚀 結果:ROS2が正常起動

上記の変更後、ターミナルで ros2 コマンドを実行してもエラーが出ず、正常に起動するようになります。


✉️ 補足

Isaac SimとROS2を同時に利用する環境では、環境変数の管理が非常に重要です。プロジェクトごとに仮想環境やコンテナを活用するのも有効な選択肢です。

 
 
 

最新記事

すべて表示
【事例で解説】SORACOM Gate D2Dとルーター設定の注意点

SORACOMの「Gate D2D」は、同一カバレッジのSIMを使ったデバイス間で、安全かつ直接通信ができる便利なソリューションです。しかし、 ルーターの設定が適切でないと、デバイス間の通信がうまくいかない ケースがあります。...

 
 
 
【近況報告】資金繰りと採用に注力しています

💰 融資・資金調達の動き 12月は、以下2件の面談がありました。 銀行との融資相談(目的:SES事業の拡大) 国内VCとの面談(目的:ドローン開発の初期資金) ドローン開発については、少なくとも 1,100万円の調達が必要...

 
 
 

Comments


bottom of page