Robotics StackExchange | Archived questions

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

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

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