Getting Started
Getting Started Guide for Different Secondary Development Approaches
The iNexBot software platform provides multiple secondary development approaches designed to meet users' varying needs for controllers, teach pendants, host computers, and master stations. Based on different application scenarios, users can choose the appropriate development approach for feature customization. This guide will help users select the right development approach based on their needs and briefly explain the relevant development knowledge requirements.
1. Controller Secondary Development
Application Scenarios: Proprietary process development, special model support, interpolation algorithm replacement, etc.
Development Approach:
Required Knowledge:
- Operating System: Linux
- Programming Language: C++
- Main Functions: Develop low-level controller algorithms and specific hardware support, such as replacing interpolation algorithms, customizing hardware interfaces, etc.
- Development Content: This development approach requires users to have a strong understanding of low-level hardware and algorithms. It is typically suitable for core functionality customization of robot controllers, such as adjusting path planning, real-time control optimization, etc.
Suitable Users: Controller hardware and algorithm developers with strong programming skills, capable of interacting with hardware and optimizing robot control processes.
2. Teach Pendant Secondary Development
Application Scenarios: Customize proprietary user interfaces (UI/UE) and features, implement collaborative work with the controller.
Development Approach:
- C++ Programming: Requires familiarity with C++ language, mastery of object-oriented programming and data structures.
- Linux System Programming: Basic understanding of Linux system operations (such as process management, memory management, etc.).
- Robot Control Theory: Understanding robot control algorithms (such as kinematics, dynamics, interpolation algorithms, etc.) helps comprehend key issues in controller development.
Required Knowledge:
- Operating System: Linux
- Programming Language: Qt / C++
- Main Functions: Customized user interface design, combined with controller secondary development to implement proprietary features. For example, designing control panels, manual operation interfaces, and coordinating customized actions and command inputs with the controller.
- Development Content: Requires implementing graphical interface development through the Qt framework and integrating with controller functionality.
Suitable Users: UI/UE developers, engineers with frontend development experience who want to provide custom operation interfaces for users.
3. Host Computer Development
Application Scenarios: Achieve direct robot control via API, breaking free from teach pendant constraints for more flexible control.
Development Approach:
Qt Framework: Familiarity with Qt UI design and development, ability to use Qt Designer and QML tools for interface design.
C++ Programming: Mastery of C++ language, understanding Qt's signal and slot mechanism, event handling, etc.
Linux System Development: Basic Linux system operations, especially for parts involving interaction with the controller.
Operating System:
Windows: VC++ / C# / VB / Python / Qt
Linux: C++ / Qt / Python
Required Knowledge:
- Main Functions: Directly control robots through APIs, enabling higher-level control and monitoring on the host computer. Supports diverse programming languages, allowing flexible selection of development languages and tools based on project requirements.
- Development Content: Interact with the controller through network interfaces or serial ports, sending commands and receiving feedback. This development approach does not depend on the teach pendant and is suitable for complex remote control and data processing of robots.
Suitable Users: Developers who need high-level robot control, automated operations, or system integration.
4. Master Station Development
Application Scenarios: Downgrade the controller to function as an industrial PC, providing real-time system and EtherCAT master station functionality to meet custom requirements.
Development Approach:
- Programming Language Selection: Learning required based on operating system and language. For Windows, users need to understand C#, VC++, or Python; for Linux, users need to be familiar with C++, Qt, or Python.
- API Calls: Understanding how to interact with the robot controller through APIs.
- Network Programming: Mastering basic network programming knowledge, especially communication between devices in distributed systems.
Required Knowledge:
- Operating System: Linux
- Programming Language: C / C++
- Main Functions: Achieve EtherCAT master-slave device communication through master station functionality, meeting users' real-time robot control requirements. Real-time control systems and industrial network communication protocols can be developed on this platform.
- Development Content: Writing real-time tasks, developing EtherCAT master station protocols, communicating with the controller and other devices.
Suitable Users: Industrial automation and embedded system developers, especially engineers who need to customize real-time control systems and network communication protocols.
5. JSON Protocol Development
Application Scenarios: Communicate with the iNexBot controller by following the JSON protocol for remote control and data exchange.
Development Approach:
C/C++ Programming: Deep understanding of C/C++ programming languages, especially real-time programming and concurrency control.
Real-Time Operating System (RTOS): Master real-time system development, understand real-time task scheduling, system performance, etc.
EtherCAT Protocol: Understand the EtherCAT protocol and industrial network communication, capable of implementing real-time efficient communication between devices.
Operating System:
Windows: VC++ / C# / VB / Python / Qt
Linux: C++ / Qt / Python
Required Knowledge:
- Main Functions: Develop communication interfaces between the system and the robot based on the JSON protocol, enabling convenient remote control and data interaction.
- Development Content: Interact with the robot controller through JSON-formatted messages, sending control commands and receiving execution results.
Suitable Users: Developers who need to integrate with or remotely control robots through standardized protocols.
6. ROS Development
Application Scenarios: Develop and control iNexBot controllers based on the ROS protocol for more flexible robot control and debugging.
Development Approach:
- JSON Format: Understand JSON data structures, capable of writing JSON messages for controller communication.
- Programming Languages: Choose appropriate programming languages based on the system platform for development.
- Network Communication: Master network communication methods based on HTTP, TCP/IP, and other protocols.
Required Knowledge:
- Operating System: Linux
- Programming Language: C++ / Python
- Main Functions: Control iNexBot controllers through ROS (Robot Operating System), enabling integration into ROS networks and supporting real-time monitoring and control of robot systems.
- Development Content: Develop ROS nodes, collaborate with other ROS nodes, and implement robot control and data processing.
Suitable Users: ROS developers, especially engineers already familiar with the ROS environment who want to integrate iNexBot controllers into ROS systems.
Summary:
- ROS Framework: Familiarity with ROS basic concepts, nodes, topics, services, etc.
- C++ / Python Programming: Mastery of C++ or Python programming, capable of developing ROS nodes and interacting with controllers.
- Robot Control: Understanding of common control methods and tools in ROS (such as MoveIt, RViz, etc.).
Development Approaches for Different Target Audiences
The iNexBot system provides a flexible development platform for different types of users, meeting needs from beginners to professional researchers. Based on different target audiences, we recommend the following development approaches to help you get started and achieve your goals more quickly.
1. Robot Manufacturers
Target Needs: Rapidly customize control systems, build proprietary robot brains, and enhance brand recognition.
Recommended Development Approach:
Choose Development Form: Based on your needs (such as algorithm customization, UI customization, controller integration, etc.), select the appropriate secondary development approach.
Required Skills: Different development approaches require different technology stacks. After selecting the development approach, thoroughly learn the corresponding programming language and platform.
Controller Secondary Development:
Robot manufacturers typically need customized control algorithms to adapt to their hardware, enhancing product uniqueness and market competitiveness. Controller secondary development allows deep customization of low-level control, providing substantial performance optimization space.
Through controller secondary development, you can adjust robot motion control, interpolation algorithms, etc., to implement specific functions and ensure robot precision and efficiency.
Teach Pendant Secondary Development:
Technical Requirements:
- If robot manufacturers need to create a proprietary user interface and improve the operating experience, teach pendant secondary development is an excellent choice.
- Interface design can be customized according to brand requirements, customizing graphical interfaces to improve user experience and enhance brand recognition.
2. System Integrators
Target Needs: Develop proprietary processes, protect proprietary industry knowledge, and build product moats.
Recommended Development Approach:
Deep understanding of hardware, familiarity with C++ programming and control algorithms.
Host Computer Development:
System integrators typically need efficient communication and control between multiple devices, and need to integrate their proprietary processes and technologies. Host computer development helps integrators perform complex control on PCs or host computers and deeply integrate with controllers.
Using host computer development, you can control robots through APIs while collecting and processing data from robots, facilitating optimization of proprietary processes.
JSON Protocol Development:
Technical Requirements:
- The JSON protocol is a lightweight communication method suitable for cross-platform, cross-system application scenarios. System integrators can use the JSON protocol for standardized data transmission, protecting proprietary process data and preventing external leakage.
- Through standardized protocols, system integrators can achieve compatibility with multiple different systems, enhancing product scalability.
3. Research Users
Target Needs: Focus on high-precision motion control algorithm research, explore the limits of robot performance, and reach new technological heights.
Recommended Development Approach:
Familiarity with network protocols and data exchange, capable of system integration and efficient data transmission.
Controller Secondary Development:
Research users need in-depth research and customization of control algorithms. Controller secondary development provides a powerful platform for adjusting and optimizing control systems according to research needs.
You can deeply customize motion control and algorithms, conduct high-precision control strategy testing, and explore robot performance at extreme limits.
ROS Development:
Technical Requirements:
- ROS (Robot Operating System) is a commonly used development framework in the research field, suitable for users who need complex algorithms and system integration. Research users can conduct high-level research and experimentation on robot motion planning, sensor data processing, etc., through the ROS system.
- ROS development supports multi-robot collaborative work, providing research users with rich tool libraries and development support, helping them achieve innovation in the robotics field.
4. Education Users
Target Needs: Cultivate students who can not only use robots but also independently design and build robots.
Recommended Development Approach:
High-level technical R&D capabilities, familiarity with control algorithms, ROS development, and high-precision motion control.
Teach Pendant Secondary Development:
Education users can customize simple and easy-to-use operation interfaces through teach pendant secondary development, allowing students to better understand robot control and programming processes.
Example programs and easy-to-understand graphical interfaces will help students get started quickly while providing basic programming tasks to enhance their hands-on abilities.
JSON Protocol Development:
Technical Requirements:
- For educational needs, the simplicity and ease of use of the JSON protocol can help students quickly grasp the basic concepts of data transmission and robot control. Through simplified data exchange processes, students can understand the interaction between robots and other systems in a relatively short time.
- Meanwhile, the JSON protocol also provides students with cross-platform development experience, enabling them to better interface with different hardware platforms.
Summary: Choose the Appropriate Development Approach Based on Different Needs
| Target Audience | Recommended Development Approach | Development Focus |
|---|---|---|
| Robot Manufacturers | Controller Secondary Development, Teach Pendant Secondary Development | Deep customization of control systems and user interfaces |
| System Integrators | Host Computer Development, JSON Protocol Development | Efficient communication and proprietary process protection |
| Research Users | Controller Secondary Development, ROS Development | Precise control and complex algorithm research |
| Education Users | Teach Pendant Secondary Development, JSON Protocol Development | Ease of use and cross-platform data transmission |
Getting Started Tips:
- Basic understanding of robot operation, familiarity with graphical interface development and basic programming languages.
Based on your needs and technical background, choose an appropriate development path and gradually delve deeper according to project requirements. This will help you achieve your goals in a shorter time and obtain a better development experience.
- Learning Materials: Each development approach provides rich documentation and example code. It is recommended to read through relevant documentation before starting to understand the basics of the development platform.
- Community Support: For research and education users, ROS and JSON protocols have extensive community support. You can better understand and use the platform through online forums, tutorials, and resource sharing.
- Flexible Application: For different target audiences, it is recommended to choose flexible and easily extensible development approaches. Especially in the early stages, keeping the development path open facilitates rapid iteration in later stages.