Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a network debugging tool to help with common connection problems #516

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

fmauch
Copy link
Collaborator

@fmauch fmauch commented Mar 25, 2022

This aims at solving #66

As questions about setting up the network configuration often popup and the approach to debug them is always the same, I've wrapped some of those steps into a helper script that should get started alongside with the driver.

ToDo:

  • Check the robot's installation for remote IP and port (I currently do now know how to do that)
  • Add hints / guide on checking most common firewalls
  • Include into launchfiles with a flag

Runtime checks

We could add runtime checks, as well, but that should probably go to a separate script / be activated through a service call

  • Check if controllers are running
  • Check if the robot can currently accept commands

@gavanderhoorn
Copy link
Contributor

High-level initial feedback: don't use rospy here.

I'd make this a stand-alone tool, which still checks the same things, but doesn't use ROS parameters or logging.

That decouples multiple problem domains, and would also make it possible to run this on OS which ROS doesn't OotB support / has different level of support for (like Windows).

An argparse-based implementation should easily allow this.

@fmauch
Copy link
Collaborator Author

fmauch commented Mar 25, 2022

High-level initial feedback: don't use rospy here.

I'd make this a stand-alone tool, which still checks the same things, but doesn't use ROS parameters or logging.

That decouples multiple problem domains, and would also make it possible to run this on OS which ROS doesn't OotB support / has different level of support for (like Windows).

An argparse-based implementation should easily allow this.

Actually I started with exactly that. Then I realized, that it might be good to query as much configuration as possible from the driver's setup (such as robot_ip, reverse_port, etc.) I am still unsure whether the benefits are worth it tying it to ROS, though. (Especially, since we want to use the same thing for ROS2, as well...)

@gavanderhoorn
Copy link
Contributor

There are other ways of getting that information, such as parsing the .launch files or loading the .yaml files.

Whether that's worth the extra effort I don't know.

There is certainly value in using the same parameters while attempting to diagnose problems, as one potential cause of those problems could exactly be those parameters.

@fmauch
Copy link
Collaborator Author

fmauch commented Mar 28, 2022

I think I'll stick with getting the parameters from the parameter server, but I'll reduce the overall dependency on ROS so we can more easily re-use this for ROS2.

This should make it easier to re-use this for ROS2
As each port has to be opened in a firewall situation we should check for each port.
This covers only the basics of the most common firewalls. However, this
should help most users to get things running in case of an active firewall.
@github-actions
Copy link

This PR hasn't made any progress for quite some time and will be closed soon. Please comment if it is still relevant.

@github-actions github-actions bot added the Stale label Jan 30, 2023
@fmauch
Copy link
Collaborator Author

fmauch commented Jan 31, 2023

this is still on my whishlist...

@github-actions github-actions bot removed the Stale label Jan 31, 2023
@github-actions
Copy link

github-actions bot commented May 1, 2023

This PR hasn't made any progress for quite some time and will be closed soon. Please comment if it is still relevant.

@github-actions github-actions bot added the Stale label May 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants