The primary goal of the liftkit project we worked on with our client was to bridge the gap between robots' limitations in vertical reach and the ever-increasing demands of automation. More precisely, this integration project enhanced the range of motion and functionality of the FANUC CRX cobot. In this case study we will reflect on the liftkit project, its objectives, challenges, and the impact it has had on the world of robotics and automation.
The project we worked on aimed to integrate our client's linear actuator, the liftkit, with FANUC CRX collaborative robot systems, developing a user-friendly interface that allowed customers to operate the liftkit effortlessly, utilizing the FANUC Tablet Teach Pendant, which is essentially a tablet device with an application for robot control.
The main business requirements were:
The technical requirements were:
One key aspect that sets this liftkit apart from other similar solutions is its use of Universal Integration Platform. This platform simplifies the integration process, as it only requires support for TCP/IP communication protocol and an Ethernet port, both of which are commonly available on many robot systems. This adaptability enhances the accessibility and applicability of the liftkit across different robotic platforms, significantly reducing time-to-market.
The user interface (UI) design for lifkit was thoughtful and intuitive. The UI features buttons that, when held, initiate the movement of the liftkit in specific directions—up or down.
An interesting design choice here is that releasing the buttons instantly halts the liftkit's movement, enhancing user experience and safety.
One of the most crucial considerations in UI design is user-friendliness. In this case, the UI was designed to integrate smoothly with the existing FANUC Smart Pendant system, ensuring that users who are already familiar with FANUC applications can transition to using the liftkit without a learning curve.
Labeling the buttons as "Extend" and "Retract" makes it easier for users to understand and control the liftkit, regardless of its orientation. The system also enhances user-friendliness by retrieving real-time data from the liftkit and automatically disabling buttons when it's not ready to move further.
While the UI design itself provides a user-friendly experience, additional UX enhancements include real-time feedback on the liftkit's current state and height. Such features ensure users are well-informed and can operate the liftkit more efficiently.
A significant advantage of the liftkit project is its use of the TCP/IP protocol for communication. This protocol is widely supported and common among robot systems, making it accessible and compatible. The TCP/IP protocol is utilized as a transportation layer. On top of it, the Universal Integration Platform provides a text-based protocol with a well-defined set of commands for manipulating and getting feedback from the liftkit.
The project encountered technical difficulties related to communication. It was crucial to synchronize the commands properly to ensure precise movements. Additionally, handling sequential steps and making changes to the liftkit's configurations required careful attention. These challenges demanded a high level of detail-oriented work to guarantee correct order and system functionality.
The KAREL programming language played a crucial role in this project, simplifying programming and enhancing control over robotic actions. KAREL allows manipulation of various aspects, including robot memory, program execution, and sending commands to the liftkit. It also provides global conditional handlers for monitoring critical data points within the system.
KAREL's global conditional handlers are invaluable for managing time-related conditions within program operations. They provide a way to keep track of set time limits, which helps improve efficiency when dealing with tasks that require timely completion.
The ease of sending and receiving socket messages using KAREL's READ and WRITE functions simplifies communication and provides status responses.
These functions not only facilitate communication but also provide a status response, offering valuable feedback in the event of a read or write failure, along with the reason behind it.
This built-in feedback mechanism enhances the reliability of socket communication in KAREL programs.
As previously mentioned, global conditional handlers serve as a method to continuously monitor specific data while the KAREL program is in execution.
In this project, we utilized this approach to monitor whether a timer exceeds predefined time limits, providing a way to manage time-related conditions within the program's operation.
We could also observe how straightforward it is to establish a connection with the Universal Integration Platform service in KAREL. This was accomplished by initially sending a PING command to verify the availability of the Universal Integration Platform. Subsequently, the program disconnects and reconnects to the service, followed by opening a socket connection with read-write permissions (Rw).
The choice of technologies for projects of this nature is dependent on cobot environment's requirements. The objective was to establish a TCP/IP connection between the robot controller and the Universal Integration Platform, enabling the control of liftkit.
We utilized the ROBOGUIDE virtual environment for development, allowing us to simulate the robot hand's movements in real-time. When the customer operated liftkit to move it up or down, the virtual robot on the screen mirrored these actions accordingly.
One significant lesson from the liftkit project we worked on with our client is the importance of understanding the ecosystem of robot providers.
Familiarity with their approaches and logical frameworks for teaching robots is invaluable and can be applied to various robot platforms.
Effective communication with clients or support teams is paramount for project success. Ongoing collaboration and guidance from FANUC support played a pivotal role in achieving the desired results.