-
 

phidgets_drivers repository

Repository Summary

Checkout URI https://github.com/ros-drivers/phidgets_drivers.git
VCS Type git
VCS Version humble
Last Updated 2024-05-02
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Phidgets drivers for ROS 2

Overview

Drivers for various Phidgets devices. This package includes:

Concerning Phidgets

Phidgets are typically plugged into USB on a host computer (though there are wireless ones, they will be ignored here). In the “old-style” Phidgets, there was one USB plug per device. So if you have a temperature Phidget, and an accelerometer Phidget, they take up 2 USB plugs on the computer. These “old-style” Phidgets are still around and still available for sale, but most of the new development and sensors are in “new-style” Phidgets. In “new-style” Phidgets, a VINT hub is connected to the host computer via USB, and then the other Phidgets connect to a port on the VINT hub. Most of the “old-style” Phidget functions (temperature, acclerometer, etc.) are also available as “new-style” Phidgets, and most new functionality is only available as VINT devices.

Identifying Phidgets devices

All Phidgets that plug directly into a USB port (including the VINT hub) have a unique serial number. This serial number is printed on the back of the device, and is also printed out by the phidgets drivers when they start up. The serial number can be specified as a parameter when the driver starts up; otherwise, the default is to connect to any Phidgets that are of the correct type at startup.

Uniquely identifying a “new-style” Phidget also requires one more piece of information, which is the VINT hub port it is connected to. This also must be provided as a parameter when starting up the driver.

Note that there are “smart” and “simple” VINT hub devices. “Smart” devices have their own microcontrollers on board and use a protocol to communicate with the VINT hub.

“Simple” VINT hub devices don’t have a microcontroller. They just provide or accept a voltage from the VINT hub port (which can act as a digital input, digital output, or analog inputs).

Whether the Phidget is “smart” or “simple” can be determined by looking at the “Connection and Compatibility” portion of the webpage for the individual sensor. If the device is “smart”, then “is_hub_port_device” must be set to “false” when launching a driver; if the device is “simple”, then “is_hub_port_device” must be set to “true”.

Installing

From packages

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Then run:

sudo apt-get install ros-<ros_distro>-phidgets-drivers

From source

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Also make sure you have git installed:

sudo apt-get install git-core

Change directory to the source folder of your colcon workspace. If, for instance, your workspace is ~/colcon_ws, make sure there is a src/ folder within it, then execute:

cd ~/colcon_ws/src

Clone the repository ( may be `dashing`, ...)

git clone -b <ros_distro> https://github.com/ros-drivers/phidgets_drivers.git

Install dependencies using rosdep:

rosdep install phidgets_drivers

Alternatively, if rosdep does not work, install the following packages:

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev

Compile your colcon workspace:

cd ~/colcon_ws
colcon build

Udev rules setup

Note: The following steps are only required when installing the package from source. When installing a binary debian package of phidgets_api >= 0.7.8, the udev rules are set up automatically.

Make sure your colcon workspace has been successfully compiled. To set up the udev rules for the Phidgets USB devices, run the following commands:

sudo cp ~/colcon_ws/src/phidgets_drivers/phidgets_api/debian/udev /etc/udev/rules.d/99-phidgets.rules
sudo udevadm control --reload-rules

Afterwards, disconnect the USB cable and plug it in again (or run sudo udevadm trigger).

Running

You may notice that there are no executables installed by the various phidgets packages. Instead, all functionality is available via ROS 2 components. The reason for this is that when using phidget VINT hubs, only one process at a time can access the hub. Since the hub may have multiple devices connected to it, we need to load multiple different phidgets drivers into the same process. We do that through loading multiple components into a single ROS 2 component container.

Luckily, to make things easier in the single device case, we have default launch files for running a single phidgets driver in a single process. For instance, you can run the phidgets_spatial node by running:

ros2 launch phidgets_spatial spatial-launch.py

See the README files in the individual packages above for exact usage of each launch file.

Developing

To check formatting after modifying source code:

python3 clang-check-style.py

To reformat source code:

find . -name '*.h' -or -name '*.hpp' -or -name '*.cpp' | xargs clang-format-6.0 -i -style=file $1

pre-commit Formatting Checks

This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use apt:

sudo apt install pre-commit

To run over all the files in the repo manually:

pre-commit run -a

To run pre-commit automatically before committing in the local repo, install the git hooks:

pre-commit install

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-drivers/phidgets_drivers.git
VCS Type git
VCS Version iron
Last Updated 2024-05-02
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Phidgets drivers for ROS 2

Overview

Drivers for various Phidgets devices. This package includes:

Concerning Phidgets

Phidgets are typically plugged into USB on a host computer (though there are wireless ones, they will be ignored here). In the “old-style” Phidgets, there was one USB plug per device. So if you have a temperature Phidget, and an accelerometer Phidget, they take up 2 USB plugs on the computer. These “old-style” Phidgets are still around and still available for sale, but most of the new development and sensors are in “new-style” Phidgets. In “new-style” Phidgets, a VINT hub is connected to the host computer via USB, and then the other Phidgets connect to a port on the VINT hub. Most of the “old-style” Phidget functions (temperature, acclerometer, etc.) are also available as “new-style” Phidgets, and most new functionality is only available as VINT devices.

Identifying Phidgets devices

All Phidgets that plug directly into a USB port (including the VINT hub) have a unique serial number. This serial number is printed on the back of the device, and is also printed out by the phidgets drivers when they start up. The serial number can be specified as a parameter when the driver starts up; otherwise, the default is to connect to any Phidgets that are of the correct type at startup.

Uniquely identifying a “new-style” Phidget also requires one more piece of information, which is the VINT hub port it is connected to. This also must be provided as a parameter when starting up the driver.

Note that there are “smart” and “simple” VINT hub devices. “Smart” devices have their own microcontrollers on board and use a protocol to communicate with the VINT hub.

“Simple” VINT hub devices don’t have a microcontroller. They just provide or accept a voltage from the VINT hub port (which can act as a digital input, digital output, or analog inputs).

Whether the Phidget is “smart” or “simple” can be determined by looking at the “Connection and Compatibility” portion of the webpage for the individual sensor. If the device is “smart”, then “is_hub_port_device” must be set to “false” when launching a driver; if the device is “simple”, then “is_hub_port_device” must be set to “true”.

Installing

From packages

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Then run:

sudo apt-get install ros-<ros_distro>-phidgets-drivers

From source

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Also make sure you have git installed:

sudo apt-get install git-core

Change directory to the source folder of your colcon workspace. If, for instance, your workspace is ~/colcon_ws, make sure there is a src/ folder within it, then execute:

cd ~/colcon_ws/src

Clone the repository ( may be `dashing`, ...)

git clone -b <ros_distro> https://github.com/ros-drivers/phidgets_drivers.git

Install dependencies using rosdep:

rosdep install phidgets_drivers

Alternatively, if rosdep does not work, install the following packages:

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev

Compile your colcon workspace:

cd ~/colcon_ws
colcon build

Udev rules setup

Note: The following steps are only required when installing the package from source. When installing a binary debian package of phidgets_api >= 0.7.8, the udev rules are set up automatically.

Make sure your colcon workspace has been successfully compiled. To set up the udev rules for the Phidgets USB devices, run the following commands:

sudo cp ~/colcon_ws/src/phidgets_drivers/phidgets_api/debian/udev /etc/udev/rules.d/99-phidgets.rules
sudo udevadm control --reload-rules

Afterwards, disconnect the USB cable and plug it in again (or run sudo udevadm trigger).

Running

You may notice that there are no executables installed by the various phidgets packages. Instead, all functionality is available via ROS 2 components. The reason for this is that when using phidget VINT hubs, only one process at a time can access the hub. Since the hub may have multiple devices connected to it, we need to load multiple different phidgets drivers into the same process. We do that through loading multiple components into a single ROS 2 component container.

Luckily, to make things easier in the single device case, we have default launch files for running a single phidgets driver in a single process. For instance, you can run the phidgets_spatial node by running:

ros2 launch phidgets_spatial spatial-launch.py

See the README files in the individual packages above for exact usage of each launch file.

Developing

To check formatting after modifying source code:

python3 clang-check-style.py

To reformat source code:

find . -name '*.h' -or -name '*.hpp' -or -name '*.cpp' | xargs clang-format-6.0 -i -style=file $1

pre-commit Formatting Checks

This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use apt:

sudo apt install pre-commit

To run over all the files in the repo manually:

pre-commit run -a

To run pre-commit automatically before committing in the local repo, install the git hooks:

pre-commit install

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-drivers/phidgets_drivers.git
VCS Type git
VCS Version rolling
Last Updated 2024-05-02
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Phidgets drivers for ROS 2

Overview

Drivers for various Phidgets devices. This package includes:

Concerning Phidgets

Phidgets are typically plugged into USB on a host computer (though there are wireless ones, they will be ignored here). In the “old-style” Phidgets, there was one USB plug per device. So if you have a temperature Phidget, and an accelerometer Phidget, they take up 2 USB plugs on the computer. These “old-style” Phidgets are still around and still available for sale, but most of the new development and sensors are in “new-style” Phidgets. In “new-style” Phidgets, a VINT hub is connected to the host computer via USB, and then the other Phidgets connect to a port on the VINT hub. Most of the “old-style” Phidget functions (temperature, acclerometer, etc.) are also available as “new-style” Phidgets, and most new functionality is only available as VINT devices.

Identifying Phidgets devices

All Phidgets that plug directly into a USB port (including the VINT hub) have a unique serial number. This serial number is printed on the back of the device, and is also printed out by the phidgets drivers when they start up. The serial number can be specified as a parameter when the driver starts up; otherwise, the default is to connect to any Phidgets that are of the correct type at startup.

Uniquely identifying a “new-style” Phidget also requires one more piece of information, which is the VINT hub port it is connected to. This also must be provided as a parameter when starting up the driver.

Note that there are “smart” and “simple” VINT hub devices. “Smart” devices have their own microcontrollers on board and use a protocol to communicate with the VINT hub.

“Simple” VINT hub devices don’t have a microcontroller. They just provide or accept a voltage from the VINT hub port (which can act as a digital input, digital output, or analog inputs).

Whether the Phidget is “smart” or “simple” can be determined by looking at the “Connection and Compatibility” portion of the webpage for the individual sensor. If the device is “smart”, then “is_hub_port_device” must be set to “false” when launching a driver; if the device is “simple”, then “is_hub_port_device” must be set to “true”.

Installing

From packages

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Then run:

sudo apt-get install ros-<ros_distro>-phidgets-drivers

From source

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Also make sure you have git installed:

sudo apt-get install git-core

Change directory to the source folder of your colcon workspace. If, for instance, your workspace is ~/colcon_ws, make sure there is a src/ folder within it, then execute:

cd ~/colcon_ws/src

Clone the repository ( may be `dashing`, ...)

git clone -b <ros_distro> https://github.com/ros-drivers/phidgets_drivers.git

Install dependencies using rosdep:

rosdep install phidgets_drivers

Alternatively, if rosdep does not work, install the following packages:

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev

Compile your colcon workspace:

cd ~/colcon_ws
colcon build

Udev rules setup

Note: The following steps are only required when installing the package from source. When installing a binary debian package of phidgets_api >= 0.7.8, the udev rules are set up automatically.

Make sure your colcon workspace has been successfully compiled. To set up the udev rules for the Phidgets USB devices, run the following commands:

sudo cp ~/colcon_ws/src/phidgets_drivers/phidgets_api/debian/udev /etc/udev/rules.d/99-phidgets.rules
sudo udevadm control --reload-rules

Afterwards, disconnect the USB cable and plug it in again (or run sudo udevadm trigger).

Running

You may notice that there are no executables installed by the various phidgets packages. Instead, all functionality is available via ROS 2 components. The reason for this is that when using phidget VINT hubs, only one process at a time can access the hub. Since the hub may have multiple devices connected to it, we need to load multiple different phidgets drivers into the same process. We do that through loading multiple components into a single ROS 2 component container.

Luckily, to make things easier in the single device case, we have default launch files for running a single phidgets driver in a single process. For instance, you can run the phidgets_spatial node by running:

ros2 launch phidgets_spatial spatial-launch.py

See the README files in the individual packages above for exact usage of each launch file.

Developing

To check formatting after modifying source code:

python3 clang-check-style.py

To reformat source code:

find . -name '*.h' -or -name '*.hpp' -or -name '*.cpp' | xargs clang-format-6.0 -i -style=file $1

pre-commit Formatting Checks

This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use apt:

sudo apt install pre-commit

To run over all the files in the repo manually:

pre-commit run -a

To run pre-commit automatically before committing in the local repo, install the git hooks:

pre-commit install

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-drivers/phidgets_drivers.git
VCS Type git
VCS Version rolling
Last Updated 2024-05-02
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Phidgets drivers for ROS 2

Overview

Drivers for various Phidgets devices. This package includes:

Concerning Phidgets

Phidgets are typically plugged into USB on a host computer (though there are wireless ones, they will be ignored here). In the “old-style” Phidgets, there was one USB plug per device. So if you have a temperature Phidget, and an accelerometer Phidget, they take up 2 USB plugs on the computer. These “old-style” Phidgets are still around and still available for sale, but most of the new development and sensors are in “new-style” Phidgets. In “new-style” Phidgets, a VINT hub is connected to the host computer via USB, and then the other Phidgets connect to a port on the VINT hub. Most of the “old-style” Phidget functions (temperature, acclerometer, etc.) are also available as “new-style” Phidgets, and most new functionality is only available as VINT devices.

Identifying Phidgets devices

All Phidgets that plug directly into a USB port (including the VINT hub) have a unique serial number. This serial number is printed on the back of the device, and is also printed out by the phidgets drivers when they start up. The serial number can be specified as a parameter when the driver starts up; otherwise, the default is to connect to any Phidgets that are of the correct type at startup.

Uniquely identifying a “new-style” Phidget also requires one more piece of information, which is the VINT hub port it is connected to. This also must be provided as a parameter when starting up the driver.

Note that there are “smart” and “simple” VINT hub devices. “Smart” devices have their own microcontrollers on board and use a protocol to communicate with the VINT hub.

“Simple” VINT hub devices don’t have a microcontroller. They just provide or accept a voltage from the VINT hub port (which can act as a digital input, digital output, or analog inputs).

Whether the Phidget is “smart” or “simple” can be determined by looking at the “Connection and Compatibility” portion of the webpage for the individual sensor. If the device is “smart”, then “is_hub_port_device” must be set to “false” when launching a driver; if the device is “simple”, then “is_hub_port_device” must be set to “true”.

Installing

From packages

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Then run:

sudo apt-get install ros-<ros_distro>-phidgets-drivers

From source

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Also make sure you have git installed:

sudo apt-get install git-core

Change directory to the source folder of your colcon workspace. If, for instance, your workspace is ~/colcon_ws, make sure there is a src/ folder within it, then execute:

cd ~/colcon_ws/src

Clone the repository ( may be `dashing`, ...)

git clone -b <ros_distro> https://github.com/ros-drivers/phidgets_drivers.git

Install dependencies using rosdep:

rosdep install phidgets_drivers

Alternatively, if rosdep does not work, install the following packages:

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev

Compile your colcon workspace:

cd ~/colcon_ws
colcon build

Udev rules setup

Note: The following steps are only required when installing the package from source. When installing a binary debian package of phidgets_api >= 0.7.8, the udev rules are set up automatically.

Make sure your colcon workspace has been successfully compiled. To set up the udev rules for the Phidgets USB devices, run the following commands:

sudo cp ~/colcon_ws/src/phidgets_drivers/phidgets_api/debian/udev /etc/udev/rules.d/99-phidgets.rules
sudo udevadm control --reload-rules

Afterwards, disconnect the USB cable and plug it in again (or run sudo udevadm trigger).

Running

You may notice that there are no executables installed by the various phidgets packages. Instead, all functionality is available via ROS 2 components. The reason for this is that when using phidget VINT hubs, only one process at a time can access the hub. Since the hub may have multiple devices connected to it, we need to load multiple different phidgets drivers into the same process. We do that through loading multiple components into a single ROS 2 component container.

Luckily, to make things easier in the single device case, we have default launch files for running a single phidgets driver in a single process. For instance, you can run the phidgets_spatial node by running:

ros2 launch phidgets_spatial spatial-launch.py

See the README files in the individual packages above for exact usage of each launch file.

Developing

To check formatting after modifying source code:

python3 clang-check-style.py

To reformat source code:

find . -name '*.h' -or -name '*.hpp' -or -name '*.cpp' | xargs clang-format-6.0 -i -style=file $1

pre-commit Formatting Checks

This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use apt:

sudo apt install pre-commit

To run over all the files in the repo manually:

pre-commit run -a

To run pre-commit automatically before committing in the local repo, install the git hooks:

pre-commit install

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-drivers/phidgets_drivers.git
VCS Type git
VCS Version noetic
Last Updated 2024-04-26
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Phidgets drivers for ROS

Overview

Drivers for various Phidgets devices. This Catkin metapackage includes:

Migrating from earlier versions

Prior to ROS Noetic, this library was based on the older libphidget21 library. While it is still supported by Phidgets, they no longer add new features to it and VINT hub style devices cannot be used with it. In ROS Noetic, this library was rewritten to use the libphidget22 library, which is the latest supported and contains all of the newest features. However, the new libphidget22 library is very different from the old libphidget21 library, and some of those differences leak through to the drivers themselves. The following is a list of things that may help in migrating to the new drivers.

General

  • All drivers now have nodelets.
  • No drivers have nodes anymore. While this makes debugging somewhat harder, nodelets are the only way to support devices on a VINT hub.
  • The “serial_number” parameter has been renamed to “serial”.

Specific nodes

IMU

  • The “imu” node was renamed to the “spatial” node.
  • Diagnostics have been removed from the spatial driver. They will be reinstated later.
  • The “period” parameter has been renamed to “data_interval_ms”.
  • The default “frame_id” has been changed from “imu” to “imu_link” to comply with REP-0145.

IK

  • The “ik” node is now just a launch file which composes an Analog Input, Digital Input, and Digital Output nodelet together.

Installing

From source

Make sure you have a working catkin workspace, as described at: http://www.ros.org/wiki/catkin/Tutorials/create_a_workspace

Also make sure you have git installed:

sudo apt-get install git-core

Change directory to the source folder of your catkin workspace. If, for instance, your workspace is ~/catkin_ws, make sure there is a src/ folder within it, then execute:

cd ~/catkin_ws/src

Download the metapackage from the github repository ( may be `groovy`, `hydro`, `indigo`...):

git clone -b <ros_distro> https://github.com/ros-drivers/phidgets_drivers.git

Install dependencies using rosdep:

rosdep install phidgets_drivers

Alternatively, if rosdep does not work, install the following packages:

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev

Compile your catkin workspace:

cd ~/catkin_ws
catkin_make

Udev rules setup

Note: The following steps are only required when installing the package from source. When installing a binary debian package of phidgets_api >= 0.7.8, the udev rules are set up automatically.

Make sure your catkin workspace has been successfully compiled. To set up the udev rules for the Phidgets USB devices, run the following commands:

roscd phidgets_api
sudo cp debian/udev /etc/udev/rules.d/99-phidgets.rules
sudo udevadm control --reload-rules

Afterwards, disconnect the USB cable and plug it in again (or run sudo udevadm trigger).

For documentation regarding nodes, topics, etc:

http://ros.org/wiki/phidgets_drivers

pre-commit Formatting Checks

This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:

pip3 install --user pre-commit

To run over all the files in the repo manually:

pre-commit run -a

To run pre-commit automatically before committing in the local repo, install the git hooks:

pre-commit install

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-drivers/phidgets_drivers.git
VCS Type git
VCS Version galactic
Last Updated 2022-04-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Phidgets drivers for ROS 2

Overview

Drivers for various Phidgets devices. This package includes:

Concerning Phidgets

Phidgets are typically plugged into USB on a host computer (though there are wireless ones, they will be ignored here). In the “old-style” Phidgets, there was one USB plug per device. So if you have a temperature Phidget, and an accelerometer Phidget, they take up 2 USB plugs on the computer. These “old-style” Phidgets are still around and still available for sale, but most of the new development and sensors are in “new-style” Phidgets. In “new-style” Phidgets, a VINT hub is connected to the host computer via USB, and then the other Phidgets connect to a port on the VINT hub. Most of the “old-style” Phidget functions (temperature, acclerometer, etc.) are also available as “new-style” Phidgets, and most new functionality is only available as VINT devices.

Identifying Phidgets devices

All Phidgets that plug directly into a USB port (including the VINT hub) have a unique serial number. This serial number is printed on the back of the device, and is also printed out by the phidgets drivers when they start up. The serial number can be specified as a parameter when the driver starts up; otherwise, the default is to connect to any Phidgets that are of the correct type at startup.

Uniquely identifying a “new-style” Phidget also requires one more piece of information, which is the VINT hub port it is connected to. This also must be provided as a parameter when starting up the driver.

Note that there are “smart” and “simple” VINT hub devices. “Smart” devices have their own microcontrollers on board and use a protocol to communicate with the VINT hub.

“Simple” VINT hub devices don’t have a microcontroller. They just provide or accept a voltage from the VINT hub port (which can act as a digital input, digital output, or analog inputs).

Whether the Phidget is “smart” or “simple” can be determined by looking at the “Connection and Compatibility” portion of the webpage for the individual sensor. If the device is “smart”, then “is_hub_port_device” must be set to “false” when launching a driver; if the device is “simple”, then “is_hub_port_device” must be set to “true”.

Installing

From packages

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Then run:

sudo apt-get install ros-<ros_distro>-phidgets-drivers

From source

Make sure you have ROS 2 Dashing or newer installed: https://docs.ros.org

Also make sure you have git installed:

sudo apt-get install git-core

Change directory to the source folder of your colcon workspace. If, for instance, your workspace is ~/colcon_ws, make sure there is a src/ folder within it, then execute:

cd ~/colcon_ws/src

Clone the repository ( may be `dashing`, ...)

git clone -b <ros_distro> https://github.com/ros-drivers/phidgets_drivers.git

Install dependencies using rosdep:

rosdep install phidgets_drivers

Alternatively, if rosdep does not work, install the following packages:

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev

Compile your colcon workspace:

cd ~/colcon_ws
colcon build

Udev rules setup

Note: The following steps are only required when installing the package from source. When installing a binary debian package of phidgets_api >= 0.7.8, the udev rules are set up automatically.

Make sure your colcon workspace has been successfully compiled. To set up the udev rules for the Phidgets USB devices, run the following commands:

sudo cp ~/colcon_ws/src/phidgets_drivers/phidgets_api/debian/udev /etc/udev/rules.d/99-phidgets.rules
sudo udevadm control --reload-rules

Afterwards, disconnect the USB cable and plug it in again (or run sudo udevadm trigger).

Running

You may notice that there are no executables installed by the various phidgets packages. Instead, all functionality is available via ROS 2 components. The reason for this is that when using phidget VINT hubs, only one process at a time can access the hub. Since the hub may have multiple devices connected to it, we need to load multiple different phidgets drivers into the same process. We do that through loading multiple components into a single ROS 2 component container.

Luckily, to make things easier in the single device case, we have default launch files for running a single phidgets driver in a single process. For instance, you can run the phidgets_spatial node by running:

ros2 launch phidgets_spatial spatial-launch.py

See the README files in the individual packages above for exact usage of each launch file.

Developing

To check formatting after modifying source code:

python3 clang-check-style.py

To reformat source code:

find . -name '*.h' -or -name '*.hpp' -or -name '*.cpp' | xargs clang-format-6.0 -i -style=file $1

pre-commit Formatting Checks

This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:

pip3 install --user pre-commit

To run over all the files in the repo manually:

pre-commit run -a

To run pre-commit automatically before committing in the local repo, install the git hooks:

pre-commit install

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/ros-drivers/phidgets_drivers.git
VCS Type git
VCS Version melodic
Last Updated 2021-04-14
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
libphidget21 0.7.11
phidgets_api 0.7.11
phidgets_drivers 0.7.11
phidgets_high_speed_encoder 0.7.11
phidgets_ik 0.7.11
phidgets_imu 0.7.11
phidgets_msgs 0.7.11

README

Phidgets drivers for ROS

Overview

Drivers for the Phidgets devices. This Catkin metapackage includes:

  • phidgets_api: a package which downloads and builds the Phidgets C API from phidgets.com (as an external project). It also implements a C++ wrapper for the C API, providing a base Phidget class and various inherited classes for different phidget devices.

  • ROS nodes exposing the functionality of specific phidgets devices using:

    • phidgets_imu
    • phidgets_high_speed_encoder
    • phidgets_ik

Installing

From source

Make sure you have a working catkin workspace, as described at: http://www.ros.org/wiki/catkin/Tutorials/create_a_workspace

Also make sure you have git installed:

sudo apt-get install git-core

Change directory to the source folder of your catkin workspace. If, for instance, your workspace is ~/catkin_ws, make sure there is a src/ folder within it, then execute:

cd ~/catkin_ws/src

Download the metapackage from the github repository ( may be `groovy`, `hydro`, `indigo`...):

git clone -b <ros_distro> https://github.com/ros-drivers/phidgets_drivers.git

Install dependencies using rosdep:

rosdep install phidgets_drivers

Alternatively, if rosdep does not work, install the following packages:

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev

Compile your catkin workspace:

cd ~/catkin_ws
catkin_make

Udev rules setup

Note: The following steps are only required when installing the package from source. When installing a binary debian package of phidgets_api >= 0.7.8, the udev rules are set up automatically.

Make sure your catkin workspace has been successfully compiled. To set up the udev rules for the Phidgets USB devices, run the following commands:

roscd phidgets_api
sudo cp debian/udev /etc/udev/rules.d/99-phidgets.rules
sudo udevadm control --reload-rules

Afterwards, disconnect the USB cable and plug it in again (or run sudo udevadm trigger).

For documentation regarding nodes, topics, etc:

http://ros.org/wiki/phidgets_drivers

CONTRIBUTING

No CONTRIBUTING.md found.