Trying to debug a python node that is launch from a object_detection.launch file.
The .launch file has a node tag. Both times the .launch file is launched from home folder (i.e. cd ~; roslaunch package object_detection.launch.
This node need to read from it's node's executable folder. In order to achieve this a cwd="node" tag is passed.
When i launch with roslaunch package object_detection.launch, it is working all right and loads successfully the file involved.
This is verified also from the log file that says [roslaunch][INFO] 2022-01-21 15:17:44,351: process[object_detection-1]: cwd will be [/home/****/ros_space/package_ws/src/package/scripts/object_detection]
If now for example i want to debug this, the go to way is using launch-prefix="gdb -ex run --args" tag inside node tag.
Adding this and again launch with same command roslaunch package object_detection.launch, throws
RLException: Roslaunch got a 'No such file or directory' error while attempting to run:
gdb -ex run --args /home/****/ros_space/package_ws/src/package/scripts/object_detection/object_detection.py __name:=object_detection __log:=/home/****/.ros/log/bfbc3742-7aab-11ec-b9da-485f9946fcd1/object_detection-1.log
Please make sure that all the executables in this command exist and have
executable permission. This is often caused by a bad launch-prefix.
The traceback for the exception was written to the log file
This is because the file that is loaded is not found. It took me a while to figure out why but the log file now says [roslaunch][INFO] 2022-01-21 15:19:40,139: process[object_detection-1]: cwd will be []
gbd is for debugging c++ nodes but it just for example. For python it could be launch-prefix="conda run -n env" that still produces same error and node is working if tag removed.
The only thing that was changed here was the launch-prefix tag and i am assuming this is the one causing the error.
Trying to debug a python node that is launch from a
object_detection.launch
file.The
.launch file
has anode
tag. Both times the.launch
file is launched fromhome
folder (i.e. cd ~;roslaunch package object_detection.launch
.This node need to read from it's node's executable folder. In order to achieve this a
cwd="node"
tag is passed. When i launch withroslaunch package object_detection.launch
, it is working all right and loads successfully the file involved. This is verified also from the log file that says[roslaunch][INFO] 2022-01-21 15:17:44,351: process[object_detection-1]: cwd will be [/home/****/ros_space/package_ws/src/package/scripts/object_detection]
If now for example i want to debug this, the go to way is using
launch-prefix="gdb -ex run --args"
tag insidenode
tag. Adding this and again launch with same commandroslaunch package object_detection.launch
, throwsThis is because the file that is loaded is not found. It took me a while to figure out why but the log file now says
[roslaunch][INFO] 2022-01-21 15:19:40,139: process[object_detection-1]: cwd will be []
gbd
is for debugging c++ nodes but it just for example. For python it could belaunch-prefix="conda run -n env"
that still produces same error and node is working if tag removed.The only thing that was changed here was the
launch-prefix
tag and i am assuming this is the one causing the error.