うごくものづくりのために

技術的な備忘録がメインです。

C++でのROSのノード開発メモ

Catkin設定方法

How to do common tasks — catkin 0.6.15 documentation

ソースファイルの追加

CMakelist.txtの、add_executable()にファイル名を追加する

add_executable(node_name src/filename1.cpp src/filename2.cpp)

node_nameの部分は、このファイルのノード名にする

ヘッダファイルの追加

CMakelist.txtの、include_directories()にインクルードディレクトリを追記し、そこに入れる

include_directories(
  "include"
  ${catkin_INCLUDE_DIRS}
)

tf

Quaternion --> Eulerの変換

Transform Quaternion - ROS Answers: Open Source Q&A Forum

#include <tf/transform_datatypes.h>
// ...
tf::Quaternion q(quat.x, quat.y, quat.z, quat.w);
tf::Matrix3x3 m(q);
double roll, pitch, yaw;
m.getRPY(roll, pitch, yaw);
std::cout << "Roll: " << roll << ", Pitch: " << pitch << ", Yaw: " << yaw << std::endl;

geometry_msgs::Quaternionの作り方

createQuaternionMsgFrom***を使う

tf: tf Namespace Reference

Subscribe時のコールバック関数を、クラスのメンバメソッドとする場合

Using subscriber/callback function inside of a class C++ - ROS Answers: Open Source Q&A Forum

roscpp_tutorials/Tutorials/UsingClassMethodsAsCallbacks - ROS Wiki