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).
Challenges
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.
Results
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
Live Demonstration Video
Animation of the Graphical Robot Interface
Conclusion
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.