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) |
Packages
Name | Version |
---|---|
libphidget22 | 2.3.3 |
phidgets_accelerometer | 2.3.3 |
phidgets_analog_inputs | 2.3.3 |
phidgets_analog_outputs | 2.3.3 |
phidgets_api | 2.3.3 |
phidgets_digital_inputs | 2.3.3 |
phidgets_digital_outputs | 2.3.3 |
phidgets_drivers | 2.3.3 |
phidgets_gyroscope | 2.3.3 |
phidgets_high_speed_encoder | 2.3.3 |
phidgets_ik | 2.3.3 |
phidgets_magnetometer | 2.3.3 |
phidgets_motors | 2.3.3 |
phidgets_msgs | 2.3.3 |
phidgets_spatial | 2.3.3 |
phidgets_temperature | 2.3.3 |
README
Phidgets drivers for ROS 2
Overview
Drivers for various Phidgets devices. This package includes:
-
libphidget22
: a package which downloads and builds the Phidgets C API from phidgets.com as an external project. -
phidgets_api
: a package that implements a C++ wrapper for the libphidgets22 C API, providing some base Phidget helper functions and various classes for different phidget devices. -
phidgets_msgs
: a package that contains custom messages and services for interacting with the nodes. -
ROS 2 nodes exposing the functionality of specific phidgets devices:
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 (
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
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) |
Packages
Name | Version |
---|---|
libphidget22 | 2.3.3 |
phidgets_accelerometer | 2.3.3 |
phidgets_analog_inputs | 2.3.3 |
phidgets_analog_outputs | 2.3.3 |
phidgets_api | 2.3.3 |
phidgets_digital_inputs | 2.3.3 |
phidgets_digital_outputs | 2.3.3 |
phidgets_drivers | 2.3.3 |
phidgets_gyroscope | 2.3.3 |
phidgets_high_speed_encoder | 2.3.3 |
phidgets_ik | 2.3.3 |
phidgets_magnetometer | 2.3.3 |
phidgets_motors | 2.3.3 |
phidgets_msgs | 2.3.3 |
phidgets_spatial | 2.3.3 |
phidgets_temperature | 2.3.3 |
README
Phidgets drivers for ROS 2
Overview
Drivers for various Phidgets devices. This package includes:
-
libphidget22
: a package which downloads and builds the Phidgets C API from phidgets.com as an external project. -
phidgets_api
: a package that implements a C++ wrapper for the libphidgets22 C API, providing some base Phidget helper functions and various classes for different phidget devices. -
phidgets_msgs
: a package that contains custom messages and services for interacting with the nodes. -
ROS 2 nodes exposing the functionality of specific phidgets devices:
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 (
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
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) |
Packages
Name | Version |
---|---|
libphidget22 | 2.3.3 |
phidgets_accelerometer | 2.3.3 |
phidgets_analog_inputs | 2.3.3 |
phidgets_analog_outputs | 2.3.3 |
phidgets_api | 2.3.3 |
phidgets_digital_inputs | 2.3.3 |
phidgets_digital_outputs | 2.3.3 |
phidgets_drivers | 2.3.3 |
phidgets_gyroscope | 2.3.3 |
phidgets_high_speed_encoder | 2.3.3 |
phidgets_ik | 2.3.3 |
phidgets_magnetometer | 2.3.3 |
phidgets_motors | 2.3.3 |
phidgets_msgs | 2.3.3 |
phidgets_spatial | 2.3.3 |
phidgets_temperature | 2.3.3 |
README
Phidgets drivers for ROS 2
Overview
Drivers for various Phidgets devices. This package includes:
-
libphidget22
: a package which downloads and builds the Phidgets C API from phidgets.com as an external project. -
phidgets_api
: a package that implements a C++ wrapper for the libphidgets22 C API, providing some base Phidget helper functions and various classes for different phidget devices. -
phidgets_msgs
: a package that contains custom messages and services for interacting with the nodes. -
ROS 2 nodes exposing the functionality of specific phidgets devices:
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 (
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
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) |
Packages
Name | Version |
---|---|
libphidget22 | 2.3.3 |
phidgets_accelerometer | 2.3.3 |
phidgets_analog_inputs | 2.3.3 |
phidgets_analog_outputs | 2.3.3 |
phidgets_api | 2.3.3 |
phidgets_digital_inputs | 2.3.3 |
phidgets_digital_outputs | 2.3.3 |
phidgets_drivers | 2.3.3 |
phidgets_gyroscope | 2.3.3 |
phidgets_high_speed_encoder | 2.3.3 |
phidgets_ik | 2.3.3 |
phidgets_magnetometer | 2.3.3 |
phidgets_motors | 2.3.3 |
phidgets_msgs | 2.3.3 |
phidgets_spatial | 2.3.3 |
phidgets_temperature | 2.3.3 |
README
Phidgets drivers for ROS 2
Overview
Drivers for various Phidgets devices. This package includes:
-
libphidget22
: a package which downloads and builds the Phidgets C API from phidgets.com as an external project. -
phidgets_api
: a package that implements a C++ wrapper for the libphidgets22 C API, providing some base Phidget helper functions and various classes for different phidget devices. -
phidgets_msgs
: a package that contains custom messages and services for interacting with the nodes. -
ROS 2 nodes exposing the functionality of specific phidgets devices:
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 (
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
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) |
Packages
Name | Version |
---|---|
libphidget22 | 1.0.9 |
phidgets_accelerometer | 1.0.9 |
phidgets_analog_inputs | 1.0.9 |
phidgets_analog_outputs | 1.0.9 |
phidgets_api | 1.0.9 |
phidgets_digital_inputs | 1.0.9 |
phidgets_digital_outputs | 1.0.9 |
phidgets_drivers | 1.0.9 |
phidgets_gyroscope | 1.0.9 |
phidgets_high_speed_encoder | 1.0.9 |
phidgets_humidity | 1.0.9 |
phidgets_ik | 1.0.9 |
phidgets_magnetometer | 1.0.9 |
phidgets_motors | 1.0.9 |
phidgets_msgs | 1.0.9 |
phidgets_spatial | 1.0.9 |
phidgets_temperature | 1.0.9 |
README
Phidgets drivers for ROS
Overview
Drivers for various 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 some base Phidget helper functions and various classes for different phidget devices. -
ROS nodelets exposing the functionality of specific phidgets devices:
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 (
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
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) |
Packages
Name | Version |
---|---|
libphidget22 | 2.2.3 |
phidgets_accelerometer | 2.2.3 |
phidgets_analog_inputs | 2.2.3 |
phidgets_api | 2.2.3 |
phidgets_digital_inputs | 2.2.3 |
phidgets_digital_outputs | 2.2.3 |
phidgets_drivers | 2.2.3 |
phidgets_gyroscope | 2.2.3 |
phidgets_high_speed_encoder | 2.2.3 |
phidgets_ik | 2.2.3 |
phidgets_magnetometer | 2.2.3 |
phidgets_motors | 2.2.3 |
phidgets_msgs | 2.2.3 |
phidgets_spatial | 2.2.3 |
phidgets_temperature | 2.2.3 |
README
Phidgets drivers for ROS 2
Overview
Drivers for various Phidgets devices. This package includes:
-
libphidget22
: a package which downloads and builds the Phidgets C API from phidgets.com as an external project. -
phidgets_api
: a package that implements a C++ wrapper for the libphidgets22 C API, providing some base Phidget helper functions and various classes for different phidget devices. -
phidgets_msgs
: a package that contains custom messages and services for interacting with the nodes. -
ROS 2 nodes exposing the functionality of specific phidgets devices:
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 (
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
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 (
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