A workspace for the integration of the SenseGlove into ROS Noetic. This workspace makes use of ros_control for automatically initiating publisher and subscriber nodes for the state of the senseglove.
ROS Noetic | ROS 2 | |
---|---|---|
DK1 | β v1.0.0 | β |
Nova 1 | β v2.2.0 | π |
Nova 2 | β v2.2.0 | π |
β
Supportedβ
Not supported by the latest release and might be lacking featuresβ
Not supported at allβ
Unknown/untestedsrc
βββ hardware_interface
| βββ senseglove_hardware # Communicates w/ SenseGlove Hardware
| βββ senseglove_hardware_builder # Builds the device in ROS
| βββ senseglove_hardware_interface # The bridge b/w ros_control & SenseGlove hardware
|
βββ senseglove
| βββ senseglove_description # Provides the URDFs & .rviz files
| βββ senseglove_finger_distance # Provides distance between finger-tips
| βββ senseglove_haptics # Haptic Implementation (Python API)
| βββ senseglove_launch # Launch files & Bluetooth scripts
| | βββ bluetooth_scripts
| βββ senseglove_shared_resources # Custome messages
|
βββ SenseGlove_API # SG-Backend
git clone https://github.com/Adjuvo/senseglove_ros_ws.git
sudo apt-get install ros-noetic-ros-control
sudo apt-get install ros-noetic-joint-trajectory-controller
sudo apt-get update
rosdep update
sudo apt-get upgrade
catkin build
or catkin_make
source devel/setup.bash
The sensegloves are connected either through USB or Bluetooth, depending on the product. Senseglove Nova connects only through bluetooth, while DK1 connects only through USB.
The workspace also consists of the bash scripts for you to connect & disconnect your Nova device via bluetooth. Kindly navigate to senseglove->senseglove_launch->bluetooth_scripts to find these scripts.
For a detailed procedure on connecting a Nova or Nova 2 glove in linux, kindly refer to SenseGlove Docs - Connecting Devices, under Pairing SenseGlove Nova or Wireless Kit -> Linux.
NOTE: The main launch file: senseglove.launch
has args to specify which standalone glove you are about to use. The current implementation allows you to use either of these standalone gloves. Future updates can include simultaneous use of gloves.
Source your workspace
Make sure your sensegloves are connected through usb or bluetooth
In the senseglove.launch
script, make sure you specify the devices being used:
use_dk
use_nova
use_nova2
Finally, make sure you specify the handedness arguments:
use_left
= trueuse_right
= trueRun: roslaunch senseglove_launch senseglove.launch
after saving.
NOTE:
The bash waits for the user input to confirm whether the gloves are connected in SenseCom. Though the whole infrastructure of this codebase was built upon the use with infinitely many sensegloves, our example launch file only accepts two gloves. Moreover, due to our integration into ros-control we require the user to know what type of gloves are connected to the PC. As such, the user has to define which glove is connected to the system.
Find out if you are dealing with a left or right-handed senseglove.
In the senseglove.launch
script, make sure you specify the devices being used:
use_dk
use_nova
use_nova2
Finally and most importantly, give proper bool value to glove you are using:
use_left
use_right
Run: roslaunch senseglove_launch senseglove.launch
after saving.
This repository is meant to present a solid foundation for using the senseglove in ROS Noetic. The senseglove_hardware_interface nodes which are called by these launch files do nothing more than using the senseglove API in a ROS /ros_control "sanctioned" manner.
Users are advised to develop their own applications outside this package and make use of the provided topics. If users do find the need to write additions to this package, beware that this repository is still subject to changes and pulling this repo again might override your own code.
If you, as a user, find a bug or have an issue with getting the workspace up and running, we suggest you leave this as an issue on this repository. This practice will allow others to troubleshoot their own problems quicker.
hardware_interface/senseglove_hardware_interface/config
, refer to the joints & controllers assigned for each senseglove product.senseglove/senseglove_haptics
, there are python scripts for haptic implementation. I suggest trying haptics_node_dynamic.py
in-conjuction with the dynamic_reconfigure in rqt to test the haptics of the device. NOTE:
For NOVA 2, the vibration feedback on the Index & Thumb tip are Enabled. The vibration on the palm is disabled.The finger distance package is meant to publish the distance between the fingertips through a rosnode as a means to control robotic grippers. This package also provides a calibration class that provides a service server. The service is easily called from the rqt_service_caller plugin. Instructions for the calibration are printed on your terminal. This is currently implemented/validated for only the DK1 gloves.