Robotics Software User Guide
Robotics Software User Guide
USER MANUAL
Main Business:
Industrial Robot / Collaborative Robot / Electric Gripper / Intelligent
Actuator / Automatic Solutions
Make it easy
Release Instructions:
Edition
Publish Time Update Content Note
Number
I
Make it easy
II
Make it easy
III
Make it easy
IV
Make it easy
Table of Contents
I. Company Profile................................................................................................................................. 1
II. Software Framework Description......................................................................................................2
2.1 Software framework structure diagram............................................................................2
4.4.1 Initialization.........................................................................................................11
4.5.1 Condition............................................................................................................. 13
4.5.2 Position................................................................................................................15
4.5.4 Pallet....................................................................................................................19
4.5.7 Sub-process......................................................................................................... 24
4.5.8 Reset.................................................................................................................... 25
4.5.9 Client................................................................................................................... 26
V
Make it easy
4.5.11 Script................................................................................................................. 29
4.5.13 Pause..................................................................................................................32
4.5.14 Pipette................................................................................................................32
VI
Make it easy
6.3 The log reports over-current protection and needs to be powered off and restarted......44
6.4 The log reports collision, please reinitialize or power off and restart............................44
VII
Make it easy
I.Company Profile
Huiling-tech (HITBOT) Robotic Co., Ltd, one of Xiaomi ecological chain enterprises, is a
leading manufacturer of the lightweight collaborative robot arm and electric gripper in the robot
industry. Through nearly 10 years of R&D, Hibot has successfully lowered the threshold of
automation transformation for SMEs in terms of cost and applicability, and has provided leading
automation solution services in an efficient, cost-effective, and modular way.
Founded in 2015, Hitbot always takes automation redefining as its mission, aiming to create the
most cost-effective products, reduce the cost and operating threshold of the intelligent manufacturing
industry, and become a worldwide leading robot manufacturer and service provider. At present,
Hitbot's direct sales and agents have spread all over the world, and the robotic arm Z-Arm series and
electric gripper Z-EFG series have gained thousands of customers, including Huawei, Foxconn,
P&G, BGI, and other industry-leading companies.
Special Notice: Please turn off your anti virus software and firewall before you unzip or
run the HITBOT Studio Software.
1
Make it easy
2
Make it easy
As shown in the figures, double-click the setup.exe file of the installation package to open the
installation interface. Click the prompt to select the installation permission and directory, then click
"Next" to complete the installation. Click "Close" to exit the installation interface after the
installation is complete. Note that when upgrading the software version, you need to uninstall the old
version before you can install the new version of the software correctly. Please refer to the next
section "Software Uninstallation and Repair" for details.
3
Make it easy
This operation is required when a file is lost or the software needs to be upgraded. As shown in
the figures, double-click the "RemoveHitBotStudio.msi" file of the installation package to open the
repair and uninstall interface. After selecting the repair or uninstall operation as required, click
"Finish" to finish the repair or uninstall operation.
4
Make it easy
When opening the software for the first time to connect the robotic arm, you need to set up the
relevant environment, as shown in the figures.
Step 1: The network port connected to the mechanical arm is set as follows: IP address is set to
"192.169. 0.100" and the sub-net mask is set to "255.255. 255.0".
Step 2: Right-click the software icon, select "Property", "Compatibility" in turn, and check "Run
this program as administrator".
Step 3: Turn off the firewall or add the application by "Allow the application to pass through the
firewall."
5
Make it easy
6
Make it easy
Double-click the software icon to open the software and enter the main login interface. Click the
"background debugging" button and enter the default login password "hitbot" to enter the main
interface of the software to perform relevant operations (the password can be modified. After
entering the correct password, the password modification button will appear in the lower right corner
of the pop-up box).
7
Make it easy
After successful login, the main interface of the software will be entered, which is divided into
three main parts: function area, basic programming module list area and programming area.
8
Make it easy
Project management includes opening, creating, saving, combining and splitting engineering
files (used to split or combine the processes in project files and save them as new project files).
Process management includes process creation, process name modification, flowchart clearing
and process removal.
2. Process control
The buttons are initialized, single-step debugging, continuous operation, and stop of the robot
arm from left to right.
3. Additional function
From left to right are global speed regulation (module set speed x percentage), automatic
alignment, scaling options (100%, 75%, 50%).
9
Make it easy
4. Convenience tools
Convenient tools include virtual robot (id = 0), monitoring and communication tool, parameter
setting tool of robot (not for non professionals), I/O expansion board tool, default project file path
saving, one key boot. Among them, virtual robot is the most commonly used, which is convenient for
debugging process, and does not need to connect the solid robot, including the simulation of input
signal.
10
Make it easy
4.4.1 Initialization
Create or open an existing project, as shown in the figure below. After clicking the ID icon on
the left, configure the ID according to the online ID list. Note that the ID should be in the interval
[0255], Except 0 can be repeated, other ID cannot be reused. Click the "manipulator icon" button and
wait for the log to print out the "initialization success" message, which indicates that the connection
between the computer and the manipulator is established successfully, and subsequent control
operation can be carried out.
11
Make it easy
1. Z-EFG:press the button to control the clamping and opening of EFG-8 (NK) and EFG-20
(nm).
2. Zeroing: input the robot arm ID to return each joint to its initial zero position.
12
Make it easy
3. Switch: the left and right hand systems of the current robot can be switched.
4. Drag Teaching: after checking, users can directly drag the robotic arm in the horizontal
direction to complete the point teaching (Note: do not check frequently, it takes a period of time to
open and close).
4.5.1 Condition
Name Condition
1. Condition judgment
Function 2. Process branch
3. Attach the arrow line to connect the front and rear modules
Icon
13
Make it easy
Property
1. Click the corresponding module in the programming area with the left mouse
button to generate the rear connection line of the module.
2. Click the right mouse button and the operation menu will appear, you can
view the property edit box or delete the condition.
3. As shown in the figure above, select the required condition and click "add
condition". If there are multiple conditions juxtaposed, you can select the
condition "and / or" and then click "add parallel condition". After checking
"else", further branch of conditions can be realized in the programming area. At
present, conditional operation only supports the condition judgment of input
Configuration signal, self adding variable, robot coordinate value and output state.
4. When the process runs here, the configured conditions will be judged, and
different logic will be executed according to the true or false of the result.
5. Use the left mouse button to drag the green module at the end of the arrow to
the top of the module to be connected, and the arrow will automatically connect
the module.
6. Select the condition module, the line and end green modules are highlighted,
users can remove the arrow from the connected arrow and reconnect the target
module.
Example
14
Make it easy
The user can select a row in the signal table to add system input signals, such as
initialization, start, pause and stop. The system automatically detects the rising
edge signal and triggers the corresponding function to initialize the operation of
the robot or control process. Red represents high level.
4.5.2 Position
Icon
Property
15
Make it easy
1. Click the corresponding point module with the right mouse button to open the
point property edit box or delete the module.
2. In the property box, users can select the motion mode, motion parameters,
target point, continuous mode, point check, point compensation, decomposition
action and variable assignment and other properties to reach the target point.
3. There are two motion modes: non-linear (MoveJ) and linear mode (MoveL).
If there is no requirement for the motion trajectory, MoveJ is recommended.
4. The point is the target point that the robot arm will reach. Before specifying
the "point" property of the point module, the corresponding point must be added
to the point list. The user can successfully add a point by changing the point
name in the point list, and click the corresponding "teach point" to pick up the
current coordinates of the robotic arm as the coordinates of the point.
5. The settings of motion parameters include motion speed and acceleration of
each axis. The acceleration is a percentage. Users can adjust it according to their
needs. Pay attention to the size of the motion parameters, which has a certain
relationship with the motion distance, payload, and centroid position. The
stability of the robotic arm must be guaranteed. Increase the speed and
acceleration in advance, otherwise the mechanical arm will be damaged and
normal use will be affected.
6. When the continuous mode (smooth mode) and fast-passing mode are not
checked, move to the previous target point first, and the speed at the current
target point is 0, and then move to the new target point. If checked, when there
Configuration
is a new target point, it will pass at the maximum speed near the current target
point, but the passing point is farther from the current target point.
7. The function of point verification is to perform closed-loop verification of the
reaching position according to the value of the encoder when the robotic arm
reaches the target point, so as to ensure that the arm has indeed reached the
target point under the allowable slight deviation. If it is not in place, a log alarm
prompt will be printed and the process will be stopped.
8. The function of dynamic compensation of point coordinate value. Check
point compensation, click the "C" module that appears on the right side of the
point module with right button of the mouse, set the IP address and port number
of the server to be connected, then save and try to connect. After connection, the
communication can be performed normally according to the protocol, and the
coordinate compensation value can be obtained from the server. Get
compensation value message format:
Request: head (external identification of client module) + "," + robot ID number
+ "," + pointredress + ";"
Response: head (external identification of client module) + "," + robot ID
number + "," + pointredress + "," + x_ offset+“,”+y_ offset+“,”+z_
offset+“,”+r_ offset
9. The variable table can assign assignments, auto-increment and auto-
decrement operations to all the variables, and thees variables can be used for
conditional judgment.
Example
16
Make it easy
Note
17
Make it easy
Function Control the output port of robot to output high or low level signals
Icon
Property
1. Click the corresponding output signal module with the right mouse button to
open the property editing box or delete the module.
2. Here, users can choose to add one or more different level states of the output
signal. It should be noted that currently only related signals in the output signal
list are supported. Users can add and change output signals by filling in or
changing the information in the "Output Name" of the output signal list.
3. The function of delay is to stay in this module for a period of time and then
Configuration continue to execute the next module after setting the output, so as to ensure that
the equipment or tool controlled by the signal are executed. (In industrial
application scenarios, tools such as output control grippers, cylinders, suction
cups, etc. are commonly used, and their actions need a certain time to
complete.)
4. The variable table can assign assignments, auto-increment and auto-
decrement operations to all the variables, and thees variables can be used for
conditional judgment.
18
Make it easy
Example
Note
Users can select the row in the signal table to add system output signals, such as
initialization completion, fault, overrun signal, process operation status and
other system output signals. The system automatically detects and sets the
corresponding output signal to high level (red).
4.5.4 Pallet
Name Pallet
Icon
Property
19
Make it easy
1.Click the corresponding pallet module with the right mouse button to open the
property editing box or delete the module.
2.The pallet module is actually a point array, which can be a horizontal single-
layer or multi-layer rectangular array or an array in the vertical direction. It can
be achieved through attribute settings, including starting point designation
(Map), array point executable designation (Map), pallet, motion mode, motion
parameters, multi-layer settings, execution logic, descent rate, output signal,
electric gripper, customer terminal and variable settings.
3.The Map pop-up box lists all the array points, users can select the starting
point and the execution permission of the array point (to be executed or not to
be executed).
4.The pallet selection box is to select the configured pallet object from the pallet
Configuration table.
5.The setting of motion mode and motion parameters is the same as that of the
point module property setting.
6.In the multi-layer setting, users can set the offset height, number of layers,
starting layer, direction and whether to shield the offset.
7.The execution logic is divided into periodic increment and one-time
execution, which can be selected according to requirements. When periodic
increment is selected, each time the pallet module is passed, it will be
automatically shifted to the next point of the array to execute until all points are
executed and then restarted; when one-time execution is selected, each time the
pallet module is passed, all points in this pallet will be executed once, and then
the next module will be executed.
8.The descent rate is to set the speed from the top of the pallet array point
(offset height) to the array point (the pallet setting speed multiplied by the
descent rate) to achieve the effect of deceleration and descending.
9.The setting of output signal and electric gripper is the same as that of its
independent module, which will be executed when it reaches the pallet array
point.
10.The variable table can perform assignment, auto-increment or auto-
decrement operations to all the variables, and then use them for conditional
judgment.
11.Check the client, the point coordinate value to compensate and the function
specified by the tray array ID, right-click the "C" module that appears on the
right side of the pallet module, set the IP address and port number of the server
to be connected, save and try to connect. After connecting, users can
communicate normally according to the protocol, and obtain the coordinate
20
Make it easy
Example
Note
21
Make it easy
Control the opening and clamping of the Hitbot standard products EFG-8NK
Function
and EFG-20NM
Icon
Property
Example
Note
22
Make it easy
Icon
Property
Example
Note
23
Make it easy
4.5.7 Sub-process
Name Sub-process
Encapsulate the basic modules of the flowchart to make the flowchart more
Function
concise
Icon
Property
Note
Place the mouse on the template icon on the left sidebar, drag the template into
the design area, modify the name or delete the template.
24
Make it easy
4.5.8 Reset
Name Reset
When the last stop position of the robot is random, multiple reset sub-processes
can be customized after restart operation. After adding the reset module, the
Function module will compare the current stop position and the starting point of each
sub-process module (the coordinates of the first point module) to find the
nearest starting point and execute the current sub-process.
Icon
Property
The system input signal has a reset signal, which can trigger the reset module
Note
independently, and each process has at most one reset module.
25
Make it easy
4.5.9 Client
Name Client
Icon
Property
26
Make it easy
and hand system to execute the transfer coordinates. The message format is as
follows:
Request: head (external identification of client module) + "," + robot ID + "," +
pointcoordinates + ","+X + "," + y + "," + Z + ", + R +", + hand + "; (Note:
hand = 1 is right-handed, hand = - 1 is left-handed)
Response: head (external identification of client module) + "," + robot ID + ","
+ pointcoordinates + "," + X + "," + y + "," + Z + "," + R
6. For global variables, create the corresponding variable in the basic variable
table, fill in the initialization value, and you can see the corresponding variable
in the client property. If "request" is checked, the request for the corresponding
variable will be sent. It supports the simultaneous assignment of multiple
variables, and manual debugging. When the process is running automatically,
you can view the change of the variable value in the variable table monitoring
column (note that "#" connects the variable name and its value). The message
format is as follows:
Request: header (external identification of client module) + "," + robot ID + ","
+ globalvars + "," + variable name current value +...+ ";"
Response: header (external identification of client module) + "," + robot ID+ ","
+ globalvars + "," + variable name value +... "
Note
27
Make it easy
Icon
Property
1. Right-click the corresponding serial port module to open the property edit
box or delete the module.
2. Select the serial port and set the required baud rate, data bit, check bit, stop
bit and cycle.
3. Customize the data content to be sent. The string is encoded by UTF-8 and
Configuration converted to byte array and sent out.
4. Customize the content of the reply. The received data is converted into a
string and compared with itself. If it does not match, the log alarm prompts to
stop the process.
5. Manual debugging can be carried out to verify the correctness of data sending
and receiving.
Note
28
Make it easy
4.5.11 Script
Name Script
Based on embedded Python, embedded the module in the control interface of the robot
Function
arm, the logic can be realized by programming.
Icon
Editing
1. Right-click the corresponding script module to open the property edit box or delete
the module.
Configuration
2. After the initialization of the robot is completed, click Edit to enter the editor editing.
After programming, you can confirm to exit and click save.
After selecting the API function in the upper right text box, the function description and
Note
application example will be displayed in the lower right text box.
29
Make it easy
Editing
Editing
import socket,time,threading,sys,os,math
Instruction def main():
log.writestringlog("draw round")
30
Make it easy
#In polar coordinate system, the center of the circle is at the pole and
the equation of the circle with radius radius p=radius
radius=4.3#radius
height=-100#height
speed=30#speed
P0=[200,0] #center coordinates
UnitAngle = 1 / float(radius);#1mm angle corresponding to arc length
number = (int)(2 * math.pi * radius*(360.0/360.0)); #set the arc of the
circle to be drawn
log.writenumberlog(number)
x =[]
y= []
for i in range(0,number):#segmentation point (convert from polar
coordinate system to Cartesian coordinate system)
x.append(P0[0] + float(radius) * math.cos((i*float(UnitAngle))));
y.append(P0[1] + float(radius) * math.sin((i*float(UnitAngle))));
for k in range(0,number):#call the motion function cyclically
ret=robot.movel_xyz(x[k], y[k], height, 0, speed)
robot.wait_stop()#blocking function to ensure movement is completed
log.writestringlog("finished")
Editing
31
Make it easy
4.5.13 Pause
Name Pause
Icon
After the process is suspended, you can click the run button or the input signal of the
Note
operation system to resume operation.
4.5.14 Pipette
Name Pipette
Icon
Property
Configuration 1. Correctly select the COM port of the pipette gun (the port number connecting the
pipette gun and the USB to 485 communication line of the computer), and the I/O
32
Make it easy
completion signal interface (the pipette gun completion signal port connecting to the
I/O port number of the robotic arm).
Click the 0-7 button to add the corresponding execution item.
2. Click the Delete Last Item button to clear the last command.
3. Single command function:
(1) 0 : Initialization: set the robot arm to the initial state. (This command will empty the
liquid and return the Tip head)
(2) 1: Detect whether there is a Tip head: detect whether there is a Tip head on the
pipette. The results are output in log form.
(3) 2: First suction: before the first suction, execute this command.
(4) 3: Secondary suction: when there are large droplets on the tip of the pipette after
suction, execute this command.
(5) 4: Liquid detection (capacitive): detect whether there are droplets at the tip of the
gun.
(6) 5: Aspiration: aspirate the amount of liquid set in the text box. The unit is uL.
(7) 6: Discharge: discharge the amount of liquid set in the text box. The unit is uL.
(8) 7: Return the Tip head: Return the Tip head.
Example
Note
33
Make it easy
34
Make it easy
35
Make it easy
The setting of safety area includes x, y, z, r coordinate range and the current hand system of the
robot arm. The system will independently monitor whether it is within the limited area. If this
function is enabled, it will give an alarm, and there will be corresponding system output signal
36
Make it easy
(overrun signal) to inform other equipments. If "Out of Area stop immediately" is checked, the
process and robot will be stopped immediately.
In order to satisfy users who use multiple signals, the system is compatible with a mature I/O ex
pansion board (GECON) on the market. Through Ethernet communication control, Modbus TCP prot
ocol, the expansion board is a server. The default binding IP address is 192.168.1.75, port 502, a total
of 16 digital inputs and 16 transistor outputs. After connecting the power supply and communication
network cable, check "Expansion board". If the server is not connected successfully, you can try to c
onnect to the server manually. The use method is the same as the I/O of the mechanical arm body, w
hich can be configured in the signal table. Taobao link (note that just purchase the boards with Ether
net port configuration): https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-11584738786.13.6
1406eda7Jt2Ha&id=529001943100
37
Make it easy
The virtual robot provides four different types of arms. Except for the function of analog drag
teaching, other interfaces can be realized. There is a check box for analog digital input. Check the
input high level. with the movement of the control arm, the coordinates will change in real time, and
the output signal is also monitored and displayed.
Instruction:
1. Open the initialization module, click Safe Area, and the safe area setting box will pop up on
the left.
2. Click Add, set the values corresponding to X, Y, etc., click Save to save.
3. Click Add, multiple safe areas can be added. Select the number of the corresponding security
area in the drop-down box to set. Click Delete to delete the safe area.
4. When multiple safety areas are set, if the robot arm is within any safety area, it is regarded as
a safe state and the robot arm works normally. Otherwise the robot arm stops running, and the log
displays an error message.
38
Make it easy
Instruction:
1. Double-click the initialization control, find the Set Tool Coordinates button on the interface,
, click the button, and the following interface will pop up.
(2) Move the end of the robotic arm to the desired position, and click to set the positioning
point.
(3) After rotating the R-axis of the robotic arm by a certain angle, move the end of the robotic
arm to the position of the tool coordinate point 1 again through the X-axis and Y-axis, and click the
rotated positioning point.
(4) Click the Get Tool Length and Angle button. Confirm the deviation between the obtained
data and the actual data, which should be in line with expectation. Click the Save button to record the
data.
(5) Click the setting button to take effect. Click the Clear button to cancel the tool coordinate
setting.
39
Make it easy
Instruction:
After placing the mouse on the ID label on the upper left side, the above pop-up window will
pop up for setting.
(1) 3 Axis: Shield R-axis detection. (For compatible use, fourAxis must be checked to take
effect)
40
Make it easy
Instruction:
Add an input signal in the signal cell and click single-step debugging to add it. Add the
corresponding I/O signal to execute the single-step debugging function.
41
Make it easy
When the value is set to 1 or empty, when the stop button or the stop (normally closed) button is
triggered, the robot arm will clear the initialization status flag, and it needs to be re-initialized for
use.
When the value is set to 0 or other values, the enable is normal, and the robotic arm does not
need to be re-initialized.
When value is set to 1, the robot will update the value of the global variable while running the
script.
When the value is 0 or other values, the robot arm will not update the value of the global
variable until the end of running the script.
(When the key is 0, the value has changed inside the script, but when accessed externally, it is
still the value before running the script.)
When the value is set to 1, the robot will not change the value of the global variable when it
starts.
When the value is set to 0 or other values or empty, the robot arm will reset the value of the
global variable to the initial value when click to run.
When value is set to 0, the value of the variable will be the initial default value when the robot
starts.
When the value is set to 1 or other values, the value of the variable at the start of the robot armis
the value of the variable at the end of the last run of the software (used to restore software runtime
variables in case of power failure).
42
Make it easy
(1) Unzip the Dependency file and run the two unzipped files.
(2) Unzip the IE11_update file and run the exe file in the unzip file directory.
(3) Decompress the Microsoft Runtime Collection, run the decompressed exe file, and click
Next to install.
43
Make it easy
1. Set the static IP of local Ethernet to "192.168.0.100" (robot host IP), subnet mask:
255.255.255.0.
4. Make sure the green light of the computer network port is always on. If not, please check the
network cable and network card.
6. If you still cannot connect to the robotic arm using the above methods, please contact us in
time.
Open the communication monitoring tool, select the network card flow, pull down to select the
corresponding network card, and check the receiving rate. The rate of a single arm should always be
around 390kbits / s. If it is significantly lower than this value, it indicates that there is a problem with
the network card or switch, which leads to abnormal data transmission and reception. You can restart
the computer or replace the computer.
6.3 The log reports over-current protection and needs to be powered off and
restarted
Check the wiring and working conditions to see if there is greater resistance to the movement of
the robot, which causes the robot to work under the condition of overcoming large resistance,
resulting in an increase of current.
6.4 The log reports collision, please reinitialize or power off and restart
1. Check whether the arm body is impacted during the movement of the arm, resulting in
collision protection and joint loosening.
2. Whether the payload exceeds the maximum payload, causing the machine to run at a higher
44
Make it easy
speed. This increases the inertia of the machine, causing the assist function to be triggered when it
stops, resulting in a false collision.
During the process of turning on and off the drag teaching, the robot servo has a process of
power-off and power-on, please do not switch the teaching state frequently. In addition, after turning
on the drag teaching and completing the operation, if want to turn off the drag teaching, please wait
about 5s before performing the relevant operations. If this problem occurs, please try to turn off the
drag teaching and re-initialize the robot to see if it can be solved. Note that the drag teaching cannot
be enabled for the Z axis.
45
Make it easy
46