Help us understand the problem. What is going on with this article?

ROS2でEigen3を使う

ROS2関係トップページへ

ROS2をインストールするとEigen3もインストールされる.
このEigen3を使用する方法.
Eigen3の詳しい使用方法は公式のdocumentやを参照のこと.

package.xmlでEigen3に関する記述を追記

以下に関する記述を行う.

  • build_depend
  • test_depend
  • exec_depend

package.xmlで特別な記載はいらない.ヘッダにて機能を実現していてROSのpackageとして存在しているわけではないから,だと思う.

CMakeLists.txtでEigen3に関する記述を追加

Eigen3はヘッダにて機能を実現している(らしい).
よってインクルードファイルのあるディレクトリの指定のみでよく,ソースファイルに関する指定はいらない.

関係する指定はtarget_include_directoriesなのでここに追記.

CMakeLists.txt
find_package(Eigen3 REQUIRED)

target_include_directories([ターゲット名]
  PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> # 通常の指定
    $<BUILD_INTERFACE:${EIGEN3_INCLUDE_DIR}> # Eigen3用の指定
    $<INSTALL_INTERFACE:include> # 通常指定
)

ament_target_dependenciesに記述が必要そうだが,要らない(2019/7/6確認)

libraryとしてnodeを作成する場合

上記に加えて以下をCMakeLists.txtに加える.
これによりlibraryを使用する方は${EIGEN3_INCLUDE_DIR}に関する記述なしで大丈夫(Eigen3を使用しているか否か気にせずにOKになる).

CMakeLists.txt
ament_export_include_dicectories(
  include
  ${EIGEN3_INCLUDE_DIR}
)

ソースコードで使用

必要ファイルをインクルードすると使える.例としては,int型2x2行列

#include <Eigen/Dense>

....

  Eigen::Matrix2d m(2,2);

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした