Debugging and profiling ROS nodes
ROS nodes can be debugged in a similar way to conventional programs since they run as a process with the associated pid
in the Linux runtime environment. Therefore, we can debug them using standard tools, such as gdb
, check for memory leaks with memcheck
, and profile for performance using valgrind
or both.
In the following sections, we will learn how to configure these tools in the ROS framework. Next, we will look into how to add logging messages to the source code of programs in order to make them observable so that we can diagnose basic problems in runtime without the need to debug the executable binaries. Later, we will discuss ROS introspection tools, which help in easily detecting broken connections between nodes.
Getting ready
First, we are going to create each example program in the ROS package in our workspace individually. Alternatively, we could copy the chapter4_tutorials
package from GitHub at https://github.com/kbipin/Robot-Operating-System-Cookbook...