Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
Messages
Services
Plugins
Recent questions tagged power_switching_tools_ros at Robotics Stack Exchange
Package Summary
| Version | 2.1.31 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/jsk-ros-pkg/jsk_3rdparty.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-07-30 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shun Hasegawa
- Kei Okada
Authors
- Shun Hasegawa
power_switching_tools_ros
ROS tools for power switching tools.
Supported tools are:
USB-Serial troubleshooter
Preparation
Udev setting
This is optional, but we recommend this setting because USB-Serial troubleshooter is sometimes suddenly disconnected and its device file changes.
rosrun power_switching_tools_ros setup_udev_for_usb_serial_troubleshooter <serial_number> <symlink_name>
# <serial_number> : The serial number of your USB-Serial troubleshooter (e.g., 001A02F2046C). You can check the serial number by "udevadm info --name=/dev/ttyACM* --attribute-walk"
# <symlink_name> : The name to create as a symbolic link in /dev (e.g., usb_serial_troubleshooter1)
Connecting USB-Serial troubleshooter
When inserting your USB-Serial troubleshooter to your PC, check if LED in the troubleshooter becomes blue after a few moments. If it remains red, the connection between the troubleshooter and the PC fails to be established. If you face this phenomenon, try the following:
- Reversing USB-C connector of USB hub/adapter/cable if you connect the troubleshooter to a USB hub/adapter/cable connected to a USB-C port of the PC
- Connecting the troubleshooter to a USB-A port of the PC directly (not via a USB hub)
- Connecting the troubleshooter to a USB-C port of the PC via an adapter/cable (example)
- Changing USB hub/adapter/cable
- Changing the insertion process. Our experience has shown that success is more likely to be achieved if the insertion is stopped at a shallow point and then immediately deepened
- Using USB 2.0 hub/adapter/cable. Note that you will be unable to use USB 3.0 features on the devices under the troubleshooter
Minimal usage: launching driver only
roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch port:=/dev/<symlink_name>
# <symlink_name> : The same as above
Arguments
Check them by roslaunch power_switching_tools_ros usb_serial_troubleshooter.launch --ros-args:
Required Arguments:
port: Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
Optional Arguments:
init_with_power_on (default "true"): Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
init_with_power_set (default "true"): Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
power_cycle_interval (default "1.0"): Interval [sec] in USB power cycle using USB-Serial troubleshooter
power_cycle_service (default "~power_cycle"): Name of service for USB power cycle
power_service (default "~power"): Name of service for USB power switching
serial_timeout (default "1"): Timeout [sec] of serial communication with USB-Serial troubleshooter
Services
-
usb_serial_troubleshooter_driver/power(std_srvs/SetBool)Power on/off USB.
-
usb_serial_troubleshooter_driver/power_cycle(std_srvs/Trigger)Execute power cycle of USB.
Advanced usage: automated power cycle of USB
roslaunch power_switching_tools_ros auto_power_cycle.launch troubleshooter_port:=/dev/<symlink_name> monitored_topic:=<monitored_topic> monitored_topic_expected_hz:=<monitored_topic_expected_hz> monitored_topic_respawn_delay:=<monitored_topic_respawn_delay>
# <symlink_name> : The same as above
# <monitored_topic> : Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
# <monitored_topic_expected_hz> : Expected Hz of monitored topic
# <monitored_topic_respawn_delay> : For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
#
# In default, this launch firstly executes power cycle once. If you want to change this behavior, set "init_with_power_cycle:=false"
USB PPPS hubs
“PPPS” stands for “Per-Port Power Switching” which is an advanced functionality of USB hubs. Hubs supporting PPPS (e.g., VirtualHere USB 3 4-Port Hub) are listed here.
- Advantages compared with USB-Serial troubleshooter:
- Having multiple ports
- Connection problem does not occur
- Disadvantages compared with USB-Serial troubleshooter:
- Power switching is slower
- Some devices show unexpected behavior after you command your hub to power off them
- Power comes back on after few seconds
- Power comes back on when the device is accessed. This behavior was observed when webcams were used on Ubuntu 20.04 (not observed on Ubuntu 24.04). This behavior is slightly different from the first behavior because the first behavior depends on no external access. The workarounds for the first behavior on Ubuntu 20.04 (i.e., Linux 5.x) mentioned in the document do not work for the second behavior
Preparation
Udev setting
This is required for running the driver node without sudo.
```bash rosrun power_switching_tools_ros setup_udev_for_usb_ppps_hub
Reboot your PC after this script finishes
File truncated at 100 lines see the full file
Dependant Packages
Launch files
- launch/auto_power_cycle.launch
-
- monitored_topic — Topic monitored for determining health of monitored communication. If this is not published for an unusually long period, power cycle of that communication occurs
- monitored_topic_expected_hz — Expected Hz of monitored topic
- monitored_topic_respawn_delay — For this duration [sec] after power cycle, new power cycle does not occur to wait for topic to be published
- launch_default_driver [default: true] — Launch driver of USB-Serial troubleshooter
- troubleshooter_port [default: /dev/ttyACM0] — Port connecting with USB-Serial troubleshooter
- troubleshooter_serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- troubleshooter_power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- troubleshooter_init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by troubleshooter_init_with_power_on
- troubleshooter_init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when troubleshooter_init_with_power_set is true
- monitored_topic_allowed_delay_cycles [default: 2.0] — If monitored topic is not published in the expected timing and is delayed for ((1 / monitored_topic_expected_hz) * monitored_topic_allowed_delay_cycles) [sec], power cycle occurs
- init_with_power_cycle [default: true] — Execute power cycle when auto_power_cycle node is initialized
- launch/usb_ppps_hub.launch
-
- hub_location — Location(s) of USB PPPS hub (e.g., '3-5', '[3-5, 2-2]', , '[3-5, 3-5]')
- hub_port — Port(s) of USB PPPS hub you want to power on/off (e.g., '1', '[1, 1]', '[1, 2]'). Must be the same length as hub_location and each element corresponds to the element at the same position in hub_location
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB PPPS hub
- init_with_power_set [default: true] — Set power state of USB when driver of USB PPPS hub is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB PPPS hub is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle
- uhubctl_executable [default: uhubctl] — Command to control USB PPPS hub. You can add supplementary options to uhubctl command (e.g., 'uhubctl -r 100'). In addition, you can specify the path to uhubctl command you installed on your own (e.g., '~/uhubctl/uhubctl')
- launch/usb_serial_troubleshooter.launch
-
- port — Port connecting with USB-Serial troubleshooter (e.g., '/dev/ttyACM0')
- serial_timeout [default: 1] — Timeout [sec] of serial communication with USB-Serial troubleshooter
- power_cycle_interval [default: 1.0] — Interval [sec] in USB power cycle using USB-Serial troubleshooter
- init_with_power_set [default: true] — Set power state of USB when driver of USB-Serial troubleshooter is initialized. Which state (ON or OFF) is set is defined by init_with_power_on
- init_with_power_on [default: true] — Power on USB when driver of USB-Serial troubleshooter is initialized. This argument is valid only when init_with_power_set is true
- power_service [default: ~power] — Name of service for USB power switching
- power_cycle_service [default: ~power_cycle] — Name of service for USB power cycle