Cross-platform application designed to communicate with and control the Dobot Magician robotic arm. The operation of the robotic arm, is also assisted by a 3D model fully reflecting the position and alignment in real time of the physical model.
Technologies used
In the fast-evolving sectors of Industrial Automation and IoT, Scythe Studio has made significant strides with our cutting-edge Digital Twin app. This case study delves into the development and capabilities of our cross-platform application, designed for precision control of the Dobot Magician robotic arm—showcasing our expertise in Qt and C++ development.
The idea originated from our desire to offer a tangible demonstration that could captivate potential clients in the Industrial and IoT industries. Constructing an entire industrial hall in our office being impractical, we opted for a more portable yet impressive demonstration: a robotic arm. Our choice, the Dobot Magician, was ideal due to its excellent documentation and accessible control API.
If you find the project interesting, feel free to explore our HMI development services.
Our main goal was to develop a “Digital Twin” of the robotic arm that allows users to manipulate and monitor the arm’s operations digitally. This project highlights our commitment to providing rapid prototyping and access to niche technical skills, including embedded systems, various communication protocols, and advanced programming in C++ and Qt.
This project stands as a testament to our commitment to innovation, integrating sophisticated software engineering with practical robotic functionality. Take a look at what features are exactly included in the Digital Twin demo.
The centerpiece of our Digital Twin software is the 3D model, designed to operate in perfect harmony with the physical robotic arm. By getting real-time sensor data, our software mirrors the physical movements of the robot within a virtual environment, achieving a 1:1 representation.
This dynamic digital version allows operators to visualize and interact with the robotic arm’s movements in real-time, enhancing understanding and control over the physical object. This mirroring between the virtual model and the physical world is not just a feature; it’s a pivotal step towards creating seamless, interactive mirror worlds where every change in the physical is instantly reflected over sensors in the digital.
One of the key The control panel is the user’s gateway to mastering the Digital Twin’s functionalities. Operators can manipulate the X, Y, and Z coordinates of the arm, as well as the R parameter that controls the rotation angle of the arm’s gripper. Switching between the Cartesian coordinate system and the Joints system is effortlessly handled through an intuitive UI, which allows precise control over each joint of the robotic arm:
At trade shows and other events, our Digital Twin project demonstrates its practical utility uniquely by using the robotic arm to distribute business cards! This functionality was developed to showcase the integration of digital commands with physical actions.
By either pressing a large physical green button or selecting a digital button on the screen, the robot engages a specifically designed mechanism to hand out business cards. This feature not only showcases the robot’s ability to interact with physical objects but also highlights our in-house expertise in C programming and electronics, which allows for such innovative integrations.
Efficiency and precision in robotic operations are paramount. Our Digital Twin software enhances this by storing a list of favorite positions as coordinates within a local database. Users can effortlessly manage these positions — selecting a saved position from the list commands the robotic arm to move accurately to that point.
The inclusion of a “home position” at the top of the list ensures that users can quickly reset the arm to its start position, optimizing workflow and demonstrating the practical application of managing virtual models and physical objects within one system.
The safety of operators and machinery is a crucial aspect of any industrial application. Our Digital Twin software incorporates a robust “safety stop” button, a critical feature designed to halt all operations of the robotic arm immediately in case of an emergency, such as a short circuit or unexpected movements. This feature underscores the importance of integrating reliable safety measures in digital systems that control physical operations, ensuring a secure environment for users and equipment alike.
Scythe Studio leverages Qt, a powerful C++ framework, for the development of most of the projects. This choice is grounded in Qt’s robustness and versatility, particularly suited for complex projects that demand high performance and cross-platform functionality.
The visual aspects of our Digital Twin software are crafted using QML, high-level declarative language, which supports 3D integrations seamlessly. This section highlights the advantages of using Qt and our expertise in maximizing its potential to deliver superior digital twin solutions.
Qt’s cross-platform nature has been instrumental in the flexible development and deployment of our Digital Twin technology. During the development phase, we utilized a Windows tablet for initial tests due to its user-friendly interface and widespread availability.
However, the true strength of Qt was showcased when we successfully deployed our project on more constrained platforms such as the MCU devices from the STM32 family and Raspberry Pi 4. These deployments underline Qt’s adaptability and our capability to tailor solutions that run efficiently across various hardware, ensuring that our digital twin software can operate flawlessly in diverse industrial environments.
At the core of Qt is C++, a powerful low-level programming language known for its performance efficiency. This foundational aspect allows us to use the full potential of hardware capabilities, ensuring that our Digital Twin applications run with optimal performance.
The direct manipulation of hardware resources, facilitated by C++, enables our applications to handle real-time data processing and complex 3D model rendering without lag, making it ideal for high-stakes industrial applications where precision and reliability are paramount.
Another benefit of C++ as the core technology to use is that it can be easily integrated with C code which is typically used in embedded projects. That’s a huge advantage, especially for older projects that plan to take a step towards modern technologies.
QML, a component of the Qt framework, revolutionizes the way user interfaces are developed. Known for its rapid prototyping capabilities, QML allows developers to create rich, interactive UIs in a fraction of the time it takes with other technologies.
One of the standout features of QML is its compatibility with Figma, a popular UI design tool. This compatibility allows UI designers to convert Figma projects directly into runnable QML code, drastically reducing development time and allowing engineers to focus their efforts on enhancing core functionalities. By utilizing QML, Scythe Studio not only accelerates the development process but also cuts costs, passing on these savings to our clients while delivering high-fidelity, robust digital twin interfaces.
As the project was largely hardware-based, the first thing we did was to investigate in depth the possibilities provided by the robot frame. This allowed us to clearly define the tasks to be performed. We then planned all the work for the team according to the Scrum methodology and set to work.
Jakub Wincenciak – our Chief Operating Officer, said:
“I had an opportunity to personally work and supervise the project and I must admit that the thing I love about our work is getting real things done. Digital Twin may be just a virtual replica of the robot, but it’s what companies from heavy industries need. They have to visualize the entire manufacturing process or other types of operation being done. Projects on the intersection of programming and hardware are more than satisfying.“
We have a unique opportunity to work on various projects from different sectors. It’s not only industrial automation or robotics but also medical, automotive, and many more.
At Scythe Studio, we leverage our specialized skills in C++ and Qt to develop advanced solutions that propel our clients ahead of the curve in automation and robotics. This project underscores our ability to transform a simple idea into a sophisticated tool that delivers tangible benefits to our customers.
Recent projects
The patient vital signs monitor features a pulse oximeter and heart rate sensor. It consists of a sensor and a microcontroller. It communicates with the sensor, gets data from it and sends it via a USB cable to a computer.
Application that works on embedded device and it purpose is to simulate the operation of a medical laser. The user can select one of the pre-prepared operations, or create their own with pre-set parameters. The application simulates the course of the procedure.
Medical application used to present a 3D model of the human brain and display information about its specific parts. We wanted the design to be pleasing to the user's eye and allow to easily interact with interface.