If a user runs python3 visual_servoing_demo.py from an SSH session without X11 forwarding, it aborts due to there not being a display to show the OpenCV images. However, it doesn't terminate cleanly; running htop still shows python3 visual_servoing_demo.py as a process, and stretch_free_robot_process.sh is unable to free it. A user has to manually get the PID (e.g., from htop) and kill <pid>.
Suggested Solution(s)
The visual servoing demo should detect if there is a display or not (e.g., check if the DISPLAY environment variable is set). If not, it should either: (a) print an error and terminate cleanly; or (b) run as usual, without the cv2.imshow.
Problem
If a user runs
python3 visual_servoing_demo.py
from an SSH session without X11 forwarding, it aborts due to there not being a display to show the OpenCV images. However, it doesn't terminate cleanly; runninghtop
still showspython3 visual_servoing_demo.py
as a process, andstretch_free_robot_process.sh
is unable to free it. A user has to manually get the PID (e.g., fromhtop
) andkill <pid>
.Suggested Solution(s)
The visual servoing demo should detect if there is a display or not (e.g., check if the
DISPLAY
environment variable is set). If not, it should either: (a) print an error and terminate cleanly; or (b) run as usual, without thecv2.imshow
.