ros-drivers / vrpn_client_ros

VRPN ROS Client
http://wiki.ros.org/vrpn_client_ros
61 stars 79 forks source link

Missing dependency #28

Open em-er-es opened 9 months ago

em-er-es commented 9 months ago

I'm writing an issue here, since this is the repository listed on http://wiki.ros.org/vrpn_client_ros. https://github.com/usrl-uofsc/vrpn_client_ros should suffer from this as well.

When using Docker ROS core image for Noetic, there is a missing system dependency of netbase. VRPN client ROS package will install and run, but then complains about connection VRPN connection is not 'doing okay', which does not explain the exact issue.

Steps to replicate the issue:

sudo docker run --network=host --rm -it ros:noetic-ros-core
# Inside container
apt update
apt install ros-noetic-vrpn-client-ros
source /opt/ros/noetic/setup.bash
# Run VRPN server with empty configuration
touch vrpn.cfg
vrpn_server &
# Launch ROS VRPN client
roslaunch vrpn_client_ros sample.launch

To solve this, install the netbase package [inside the container]:

# apt install netbase

Then rerunning the sample.launch will establish a connection and list the example tracker. This behaviour was confirmed on a motion capture system providing VPRN data.

I guess this VRPN implementation relies on some of the definitions from the package in /etc: /etc/ethertypes, /etc/protocols, /etc/rpc, /etc/services.

This does not appear to be easily fixable by adding <exec_depend>netbase</exec_depend> to package.xml, since there is no key definition for netbase.

netbase ought to be present on most systems, so this might have gone undetected because of that. Bare bones containers are a nice way of verifying dependencies.

roboav8r commented 9 months ago

Thanks @em-er-es , I ran into the exact same issue (I'm developing on ROS2, using a ROS1 Noetic container) and this worked.