Skip to content
This repository has been archived by the owner on Oct 25, 2023. It is now read-only.

drivers_port_finder

furmi edited this page Feb 17, 2018 · 1 revision

Description

This package is in charge to determine on which USB port are all the USB components connected.

If there are components connected using rosserial, port_finder will launch them automatically !

Authors and versions

  • v1.0 (A17) : @tfuhrman
    • First working version

Configuration

The only configuration is to maintain the list of all components which can be connected on the robot. This is the components_list.xml file.

Communication

Servers

Server name Type Function
/drivers/port_finder/get_port Service Service to ask port_finder what is the port of a component. The component could be "all" to get the list of all elements of port_finder. For Arduino boards the component is the node name ("ard_asserv" for instance). For other components, it's the name of the component (see the components_list.xml file).

Clients and subscriptions

There are no clients nor subscriptions.

Running the package

Just launch the node :

rosrun port_finder port_finder_node.py

Warning : the node can take a minute to be fully initialized because it will check a lot of things on the connected components.

How it works

The USB components identification uses the dmesg tool of linux. After parsing the dmesg information, port_finder matches the components_list.xml components to check which components are connected. Once it's done, the last check is to identify the Arduino board connected (to be launched by rosserial or not).

For all boards to launch with rosserial, the launch is automatically done by port_finder. Port_finder will also give a different name for all nodes launched with rosserial, to avoid conflicts.