Skip to content
Published on

OpenTAP in Education: Controlling Cobots at U.C. Santa Cruz


Every year for the last three Keysight has collaborated with faculty at the University of California Santa Cruz (UCSC) Baskin Engineering School to sponsor one or more senior projects in test automation. This year, that project focused on utilizing OpenTAP and OpenTAP plugins to control a collaborative industrial robot arm (cobot).


The UCSC team faced a range of educational, logistical and technical challenges and met each with intelligence and aplomb:


  • Learning Curves: success in the project depended on team members mastering the particulars of multiple pieces of software and hardware: OpenTAP architecture and OpenTAP plugin development; Microsoft .NET; the ROS2 robotics operating systems; and the command set and protocol for the chosen cobot.

  • Functionality on Linux (vs. Windows): OpenTAP, while portable and already ported to Linux, got its start on Windows and offers more functionality on that OS.

  • Hardware Availability: The project originally targeted the Universal Robotics UR3e used in previous demos by the OpenTAP team. After initial study and integration with that device, the UCSC students found themself needing to migrate to the FANUC CRX-20iA/L cobot and its comparable but different communications protocols and capabilities.

  • ROS2 Integration: to abstract the robot physical interface and enable use of a wider range of cobots, the team integrated the ROS2 robotics "operating system", which required greater familiarity not only with the ROS2 platform but of the open source project that created and maintains it.

Key Decisions

In every project, participants are faced with important decisions that can determine the fate of the entire effort:

Develop in Python: OpenTAP plugins are commonly developed in either natively in C# or with the OpenTAP Python plugin. The UCSC chose to develop a plugin in Python due to familiarity with the programming language and the abundance of OpenTAP Python documentation.

Deploy with Docker: Docker allows developers to run the OpenTAP plugin on any operating system by virtualizing software and hardware running in a portable container.

Integrate ROS2: Including ROS2 (robot operating system) in the project, enabled the team and also future developers to interact with the cobot and other robots programmatically using available open APIs.


The project ultimately delivered the desired results, enabling the UCSC team to

  • Command the cobot to move across its entire range of motion

  • Abstracted cobot movement with on-screen user interface buttons

  • Aggregate cobot commands in a file to describe the "choreography" of complete action sequences

  • Collect motion data and other telemetry from the cobot

  • Run the cobot control code on any operating system (Windows, Linux and beyond - anywhere Docker is supported)

  • Provide a programmatic interface (API set) leveraging ROS2

More About the Project

Project Participants

The team included seven undergraduate seniors, with majors in Computer Science and Computer Engineering.

U.C. Santa Cruz Faculty Advisors

The project looked to two faculty advisors and one PhD. candidate mentor.

Project Code Repositories

Click here to visit the project on GitHub.

Project repositories include code for a general cobot plugin and one targeted at FANUC hardware.

Project Overview Video

Project Overview Video

Live Demonstration Video

UCSC Team Demonstrating the FANUC cobot

Animation of the Graphical Robot Interface

UI Animation


The UCSC cobot project exemplifies the usefulness of OpenTAP in education and highlights Keysight's commitment to helping the next generation of software and hardware engineers. It is also a tribute to the ingenuity, resourcefulness and discipline of the UCSC students involved and to the commitment by their advising faculty.