Hi @N.N.Huy,
The term CATKIN_DEPENDS
refers to other catkin projects that your project depends on, thus if you not fullfil all dependencies the package will not be compiled and/or installed in your machine.
Knowing that, when you place the geometry_msgs
, it means that in some part of your source files you are going to use a definition that is implemented in that particular package, like the msg types: Point
, Twist
, Pose
etc.
In the same way, message_runtime
is a package used for build-time dependencies to generate language bindings of messages. This means that is the package in charge of compiling and generating all the needed files when you add a custom msg type, service, action etc. in your package. Hence, when you have in your package a custom msg type, you will need to include the message_runtime
dependency in order to tell Catkin
and Cmake
that your projects contains custom types and it needs to compile all headers and files for you to ble able to include those in your code.
You can find more information about Catkin and message_runtime
here.