The Telehaptics Ros Python package allows users to drive the right arm of a Baxter or Sawyer research robot using the stylus of a Geomagic Touch (formerly the Phantom Omni). If external force is applied to the end effector, the Geomagic Touch will remotely generate the same forces on the user's hand - creating a closed-loop biofeedback interface.
PS3 Node Network
Geomagic Touch Node Network
Launch Files
PS3 Controls
Set-up Instructions
Current Status
joystick_reference_targets.py
This node generates target poses using the position values published by joy_node
. As a safety precaution, it also ensures that Baxter will not move unless the L1 trigger on a PS3 console is held down.
velocity_control.py
This node finds and uses the body Jacobian and twists of Baxter's right arm to compute the angular velocities needed to move Baxter's right arm from its current pose to a target pose. It employs the naive damped least-squares method to eliminate jerky movements near singularities.
(Sawyer equivalent: sawyer_velocity_control.py
)
gripper_control.py
This node closes Baxter's right gripper when the R1 trigger on a PS3 console is held down.
(Sawyer equivalent: sawyer_gripper_control.py
)
omni_reference_targets2.py
This node generates target poses by scaling and mapping the transform between the Touch's stylus frame and its base frame. A subscriber to omni1_joint_states
also associates rotations about the x-axis of the stylus frame to rotations about the z-axis of the target frame.
velocity_control.py
The velocity control script used to control Baxter via the Touch is the same as that which was used to control the robot via the PS3 controller.
omni_gripper_control.py
This node closes Baxter's right gripper when the white button on the Touch's stylus is held down.
simstate.launch
: starts up a basic rviz simulation of Baxter which displays individual joint angles that can be manipulated using slider bars
basicsys.launch
: starts up a basic velocity controller which tells Baxter to move to hardcoded poses
joysys.launch
: starts up the PS3 Baxter controller demo
sawyer_joysys.launch
: starts up the PS3 Sawyer controller demo
omnisys.launch
: starts up the Touch Baxter controller demo
L1 button : Hold down to enable robot movement
R1 button : Hold down to close robot end-effector
Left stick (L/R) : Horizontal movement along the Y-axis
Left stick (U/D) : Vertical movement along the Z-axis
Right stick (U/D) : Horizontal movement towards or away from user along the X-axis
Right stick (L/R) : Rotates the gripper clockwise or counterclockwise
After cloning baxter_telehaptics
into a catkin workspace, please install the following auxiliary packages:
joy
hrl-kdl
sawyer_robot
baxter_interface
- PS3 Controller UI - done
- Velocity controller - done
- Geomagic Touch UI - done
- Force feedback node - WIP