How can I suppress sigint-timeout and sigterm-timout options from roslaunch ?
This question is part of a larger problem. I am trying to run a distributed application. I have upgraded one machine to Lubuntu 20.04/Noetic. The other remains as Lubuntu 16.04/Kinetic. My launch file now fails because the options --sigint-timeout and --sigterm-timeout are added to the command line invocation of roslaunch on the remote machine (running Kinetic). Unfortunately that version does not support these options.
roslaunch midget midget.launch
... logging to /home/paul/.ros/log/989c153c-7864-11eb-bacf-1ff0df2d0d79/roslaunch-clio-11461.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://clio:39771/
remote[thalia-0] starting roslaunch
remote[thalia-0]: creating ssh connection to thalia:22
launching remote roslaunch child with command: [env ROS_MASTER_URI=http://clio:11311 /home/paul/catkin_ws/devel/env.sh roslaunch -c thalia-0 -u http://clio:39771/ --run_id 989c153c-7864-11eb-bacf-1ff0df2d0d79 --sigint-timeout 15.0 --sigterm-timeout 2.0]
remote[thalia-0]: ssh connection created
remote[thalia-0]: Usage: roslaunch [options] [package] <filename> [arg_name:=value...]
roslaunch [options] <filename> [<filename>...] [arg_name:=value...]
If <filename> is a single dash ('-'), launch XML is read from standard input.
roslaunch: error: no such option: --sigint-timeout
[thalia-0] killing on exit
RLException: remote roslaunch failed to launch: thalia
The traceback for the exception was written to the log file
Is there any way to suppress these command line arguments ? Is there any chance of ROS Noetic co-operating with ROS Kinetic ?
Installing Noetic on the second machine is not really a option - it would require changing the O/S, ROS and a ton of other installed software.
Asked by elpidiovaldez on 2021-02-26 14:35:23 UTC
Answers
You can edit remoteprocess.py
inside the installed ros package and remove the arguments, i.e.
sudo nano /opt/ros/noetic/lib/python3/dist-packages/roslaunch/remoteprocess.py
And change lines 141 and 142 from
args = [machine.env_loader, 'roslaunch', '-c', name, '-u', server_uri, '--run_id', run_id,
'--sigint-timeout', str(sigint_timeout), '--sigterm-timeout', str(sigterm_timeout)]
to
args = [machine.env_loader, 'roslaunch', '-c', name, '-u', server_uri, '--run_id', run_id]
Note: You may need to do it every time after apt-upgrading ROS packages
Asked by afrixs on 2021-11-04 05:57:06 UTC
Comments
This worked, upvoted
Asked by robot_gang on 2022-01-01 22:05:03 UTC
How to do the same in ROS2?
Asked by TinyTurtle on 2022-08-10 08:21:47 UTC
As far as I know, there is no remote launch support directly included in ROS2, but you can still use ExecuteProcess with ssh to achieve it. See my answer here: https://answers.ros.org/question/364152/remotely-launch-nodes-in-ros2/?answer=399706#post-id-399706
Asked by afrixs on 2022-08-11 03:31:38 UTC
Comments
I have this exact same issue. Have you found a solution yet?
Asked by cwillia109 on 2021-04-23 16:45:48 UTC
@cwillia109 I have given up ! AFAIK different ROS versions never guaranteed to be compatible -- but they normally were as long as there are no changes in message structure. I upgraded my workstation to Ubuntu 20.04/Noetic and now I am forced to change OS and ROS versions on all connected robots. I wish there was a way to avoid that.
Asked by elpidiovaldez on 2021-04-25 06:50:29 UTC