Most ROS development uses git as the Version Control System (VCS) of choice. There are well-established guidelines for developing typical ROS applications with git. However, I have not been able to find any with regard to the development of ABB robotics systems using robot studio.
Source code control, as we know it, does not seem to be standard practice in the industrial automation world. Traditional methods of full backing up the full system with a version or timestamps seem more common.
I suspect that I will need to develop custom RAPID scripts in addition to the provided abb driver. There are also system params and other configuration that might be useful to store in git.
Is the above repo the recommended way? Manage rapid files in git and then copy and paste those in and out of the git repo to the robotstudio/robot. Are there any best development practices for controlling industrial robotic code? Or any other example github repositories that demonstrate how to organize robotic code?
The following is my preferred way of developing applications, that are meant to be shared with others, for ABB IRC5 robot controllers.
I usually create RobotWare Add-Ins and they allow you to cover several aspects via a single component, including:
RAPID modules.
System configurations.
Installation scripts for customizing how and which RAPID modules and system configurations are loaded. Can for example depend on if a specific RobotWare option is present in the system or not.
Specifying dependencies on certain RobotWare options/robots.
Specifying conflicts with certain RobotWare options/robots.
Specifying sub options for the Add-In (can be considered in the installation script).
Specifying if the Add-In is open or if it requires a license.
Simplifying distribution and installation.
Documentation.
ABB Robotics provides a tool called Add-In Packing Tool for creating such Add-Ins, and it creates project folders which can for example be put in a git repository if you want.
In my opinion, then the main benefits of these Add-Ins are that they simplify the distribution and installation process, as well as that they give you control of how and what is installed in the robot controller system. The biggest drawback is that it might take some time to get used to working with them.
I played around with the tool a bit this morning. I can certainly see how this would be the proper solution for the distribution of your system once it has been developed. I will have to experiment with it during the development workflow to see how it fits in.
This is a bit late response, sorry about that, but I hope it can be of use for someone at least.
I have created a few RobotWare Add-Ins. For example, the StateMachine Add-In, which can be downloaded as a .rspak file.
This file can be unziped to get to the source code (i.e. in the RobotPackage/StateMachine subfolder, where there is another file to unzip ending in .rpk).
Hello. This may be a late response but the link you provided no longer works since the robotapps website has reached the end of its life this year. Is it possible to obtain the StateMachine add-in from another source? I would like to test it with ROS