Fencing Robot with Sawyer

Some Robot Kinematics with Sawyer and the HTC Vive.



The goal of this project is to interact with the Sawyer robot in a fun way via fencing. A side goal of this project was to explore the feasibility of using the HTC Vive tracker System with ROS as a means to interact with the Sawyer robot. This goal was accomplished using a ROS package called vive_ros. The system comprises of the Sawyer robot, a HTC Vive wireless tracker, and a lighthouse. When an opponent attacks within a given distance to the robot, the robot attempts to block the attack. In the current setup,the robot takes a defensive stance and performs limited attacks. The code and README for the project can be found on github here


The SteamVR application must be run in the background. SteamVR appears to be glitchy and makes it difficult to pair multiple trackers with the wireless adapter and hence the ROS system. The ability to pair multiple trackers would provide the ability to track both the sword and the individual wielding it. I made an attempt to use AR tags from the ar_track_alvar. However, they did not prove robust for this application as with the user moving, the tag detection was not reliable. While April Tags did prove to be more robust. On the other hand, ROS seemed to drop messages regarding the pose of the tracker which results in jerky arm motions.

Future Work

While the HTC Vive system works most of the time, a fully functional application would need to make use of Cameras and Computer Vision techniques. In addition, work can be done in developing a ROS package for the HTC Vive tracker that does not make any use of Steam and the SteamVR application.

Project Info

  • Category : Robot Kinematics
  • Tags : ROS, Python, C++, Git