yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
myCobot 320 Arm📖
1.Product Feature
  • 1.Functional Parameters
  • 2.Controller Parameters
  • 3.Structural Parameters
  • 4.Electronic Parameters
  • 5.Coordinate System
  • 6.Introduction of Adaptive Gripper
  • 7.Introduction of force-controlled gripper
2.Common Problem
  • 1.how to ask
  • 2.driver
  • 3.software
  • 4.hardware
3.First Install and Use
  • 1.Product Standard List
  • 2.Product Unboxing Guide
  • 3.Power-on Test Guide
4.Basic Application
1. miniRoboFLow
  • 1. miniRoboFLow
  • 2. Drag & Play
  • 3. Joint Calibration
  • 4. Computer Connect
  • 5. Robot Information
2.1 myblockly
  • 1. What is myBlockly
  • 2. Preparations before using myBlockly
  • 3. myBlockly download and install
  • 4. myBlockly interface display and use of basic functions
  • 5. Control RGB light panel
  • 6. Control the robotic arm to return to the origin
  • 7. Control single joint movement
  • 8. Control multiple joints
  • 9. Use of adaptive grippers
  • 10. Use of force-controlled grippers
  • 11. Q&A
  • 12. API
3. Firmware Description
  • 1.Firmware Description
  • 2.Burn Firmware
2.2 myStudio
  • 1. myStudio
  • 2. myStudio environment setup
  • 3. Install driver
  • 4. Burn and update firmware
5.Mobile APP control
  • Mobile APP control
6.SDK Development
1.Development Environment Construction
  • 1.Development Environment Construction
2.Python
  • 1.What is Python
  • 2.Environment Building
  • 3.Python API usage instaructions
  • 4.TCP IP
  • 5.Drag to teach
  • 6.Use Cases
  • 7.Use of adaptive grippers
  • 8.Use of force-controlled grippers
3.ROS1
  • 1.ROS
  • 2.Environment Building
  • 3.ROS basics
  • 4.Rviz use
  • 5.Basic function case
  • 6.Use of adaptive grippers
  • 7.Use of force-controlled grippers
4.ROS2
  • 1.ROS2 introduction
  • 2.Environment Building
  • 3.ROS2 basics
  • 4.Rviz2 use
  • 5.Basic function case
5.C Sharp(C#)
  • 1.C#
  • 2.Environmental construction
  • 3.Mechanical control
  • 4.myCobot API
  • 5.Use Cases
  • 6.Use of adaptive grippers
6.c plus plus (C++)
  • 1.C++
  • 2.CPlus Download
  • 3.build
  • 4.API
  • 5.example
7.Arduino
  • 1.Arduino
  • 2.Arduino Download
  • 3.API
  • 4.example
  • 5.Use of adaptive grippers
8.Serial communication
  • 1.Serial communication
  • 2.Use of force-controlled grippers
7.Documents Download
  • 1.Product Brochure
  • 2.Software and Source Code
  • 3.System lnformation
Download
  • 3D_Model_File
  • Android Mobile APP
  • Manual
Download ZIP

Welcome to myCobot 320 Arm repository

1.Serial communication

Communication and Message Commands

Notice: It is not necessary to download the ATOM firmware before use, but when switching from Arduino to python programming, it is necessary to re-download the minirobot firmware "Transponder".

img-1Please read the interface protocol document in detail and proceed with your program development after testing.

1 Settings of USB Communication

*Make sure the following settings are prepared:*

  • Interface of mainline: USB Type-C connection PC and Basic

  • Port ratio: 115200

  • Data bit: 8

  • Parity bit: none

  • Stop bit: 1

2 Introduction to Command Frame & Sole Instruction

The main PC transmit data via M5Stakc-basic to peripheral PC. The peripheral PC decodes the data like commands with return values and then send the results back to the main PC within 500ms.

3 Formats of Message Commands' Sending and Receiving

Both sending and receiving should be represented in hexadecimal. Each command should contain 5 parts as shown below. Part 3 and 4 can be left a blank.

  • 1 Pin of command: 0xFE 0xFE

    • Invariable

    • Indispensable

  • 2 Effective lengthen:

    • Aggregated length including pin, serial number, functional codes and end

    • Indispensable

  • 3 Serial number: 00 ~ 8F

    • Corresponding number of developed commands

    • You may leave it blank.

  • 4 Functional codes:

    • Purpose-oriented

    • You may leave it blank.

  • 5 End: 0XFA

    • Invariable

    • Indispensable

4 Explanation for Commands

The main PC transmit data via M5Stakc-basic to peripheral PC. The peripheral PC decodes the data like commands with return values and then send the results back to the main PC within 500ms.

TypeDataLengthFunction
Command Framestart bit: 01Head frame identification, 0XFE
 start bit: 11Head frame identification, 0XFE
 bit of data length1Different commands correspond to different data length
 command bit1depending on different commands
Command Framedata0-16commands with data, depending on different commands
End Frameend bit1stop bit, 0XFA

5 Explanation for Sole-Instruction Commands

Powering up

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X10
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 10 FA

no return value


Power Decreasing and Connection Breaking up

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X11
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 11 FA

no return value


Checking the Status of Atom

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X12
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 12 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X12
Data[4]power on/off0X01/0X00
Data[5]end frame0XFA

Example:

Given that Atom is powered on:

port return: FE FE 03 12 01 FA


Power Decreasing

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X13
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 13 FA

no return value

Robot System Checking: Normal

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X14
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 14 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X14
Data[4]connection/connection breaking up0X01/0X00
Data[5]end frame0XFA

Example:

Given that Atom is successfully connected:

port return: FE FE 03 14 01 FA


Command Updating Mode (Interpolation Setting/Motion Mode Updating)

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X16
Data[4]connection/connection breaking up0X01/0X00
Data[5]end frame0XFA

Example:

  1. Setting updating motion mode:

    Port transmission: FE FE 03 16 01 FA

  2. Setting interpolation motion mode:

    Port transmission: FE FE 03 16 00 FA


Free Mode (switch off torsion output)

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X1A
Data[4]turn on/off01/00
Data[5]end frame0XFA

Example:

Setting free motion mode:

Port transmission: FE FE 03 1A 01 FA

Checking whether free mode is set

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X1B
Data[5]end frame0XFA

Example:

Port return: FE FE 02 1B FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X03
Data[3]command frame0X1B
Data[4]turn on/off0X01/0X00
Data[5]end frame0XFA

Example:

Given that Atom is in free mode:

port return: FE FE 03 1B 01 FA


Reading Angles (blocking information)

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X20
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 20 FA

Return value: data structure

DomainExplanationData
Data[0]return value: head frame0XFE
Data[1]return value: head frame0XFE
Data[2]return value: data-length frame0X0E
Data[3]return value: command frame0X20
Data[4]high angle of No.1 steering gearAngle1_high
Data[5]low angle of No.1 steering gearAngle1_low
Data[6]high angle of No.2 steering gearAngle2_high
Data[7]low angle of No.2 steering gearAngle2_low
Data[8]high angle of No.3 steering gearAngle3_high
Data[9]low angle of No.3 steering gearAngle3_low
Data[10]high angle of No.4 steering gearAngle4_high
Data[11]low angle of No.4 steering gearAngle4_low
Data[12]high angle of No.5 steering gearAngle5_high
Data[13]low angle of No.5 steering gearAngle5_low
Data[14]high angle of No.6 steering gearAngle6_high
Data[15]low angle of No.6 steering gearAngle6_low
Data[16]end frame0XFA

Example:

Return value of port: FE FE 0E 20 00 8C 00 3D FF E6 FF 3F 00 AF FF 51 FA

How to get the angle of joint 1:

temp = angle1_low+angle1_high*256

Angle1=(temp \ 33000 ?(temp – 65536) : temp)/100

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 100; if temp is less than 33000, then temp is divided by 100 directly.

Other joint angles are counted in a similar way.

Sending Sole Angle

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X06
Data[3]command frame0X21
Data[4]serial number of steering gearjoint_no
Data[5]high angleangle_high
Data[6]low angleangle_low
Data[7]specified speedsp
Data[8]end frame0XFA

Example:

Let the No.1 steering gear move to zero position

Port transmission: FE FE 06 21 01 00 00 14 FA

joint number: 1-6

angle_high: byte

counting method: angle value is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

angle_low: byte

counting method: angle value is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

no return value


Sending Entire Angles

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0F
Data[3]command frame0X22
Data[4]high angle of No.1 steering gearAngle1_high
Data[5]low angle of No.1 steering gearAngle1_low
Data[6]high angle of No.2 steering gearAngle2_high
Data[7]low angle of No.2 steering gearAngle2_low
Data[8]high angle of No.3 steering gearAngle3_high
Data[9]low angle of No.3 steering gearAngle3_low
Data[10]high angle of No.4 steering gearAngle4_high
Data[11]low angle of No.4 steering gearAngle4_low
Data[12]high angle of No.5 steering gearAngle5_high
Data[13]low angle of No.5 steering gearAngle5_low
Data[14]high angle of No.6 steering gearAngle6_high
Data[15]low angle of No.6 steering gearAngle6_low
Data[16]specified speedSp
Data[17]end frame0XFA

Example:

Send 0 angle to entire joint, and let the steering gear move to zero position.

Port transmission: FE FE 0F 22 00 00 00 00 00 00 00 00 00 00 00 00 1E FA

angle1_high: byte

counting method: angle value is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

angle1_low: byte

counting method: angle value is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

Other angles are counted in a similar way.

no return value


Reading the Entire Coordinates

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X23
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 23 FA

Return value: data structure

DomainExplanationData
Data[0]return value: head frame0XFE
Data[1]return value: head frame0XFE
Data[2]return value: data-length frame0X0E
Data[3]return value: command frame0X23
Data[4]specify high status of x coordinatex_high
Data[5]specify low status of x coordinatex_low
Data[6]specify high status of y coordinatey_high
Data[7]specify high status of z coordinatez_high
Data[8]specify low status of z coordinatez_low
Data[9]low angle of No.3 steering gearAngle3_low
Data[10]high angle of No.4 steering gearAngle4_high
Data[11]low angle of No.4 steering gearAngle4_low
Data[12]high angle of No.5 steering gearAngle5_high
Data[13]low angle of No.5 steering gearAngle5_low
Data[14]high angle of No.6 steering gearAngle6_high
Data[15]low angle of No.6 steering gearAngle6_low
Data[16]end frame0XFA

Example:

Port return value: FE FE 0E 23 01 BC FD A0 10 15 DC 66 FF 54 DE 21 FA

How to get x coordinate:

temp = x_low + x_high*256

x coordinate =(temp\33000 ?(temp – 65536) : temp)/10

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 10; if temp is less than 33000, then temp is divided by 10 directly.

y coordinate is counted in a similar way.

How to get rx coordinate:

temp = rx_low + rx_high*256

x coordinate =(temp \ 33000 ?(temp – 65536) : temp)/100

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 100; if temp is less than 33000, then temp is divided by 100 directly.

y coordinate is counted in a similar way.


Sending Parameters of Sole Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X06
Data[3]command frame0X24
Data[4]axisx/y/z/rx/ry/rz
Data[5]specify high status of the parameters of xyz/rxryrzxyz/ rxryrz_high
Data[6]specify low status of the parameters of xyz/rxryrzxyz/rxryrz_low
Data[7]specified speedSp
Data[8]end frame0XFA

Example:

Given that the x coordinate is 200 and target speed is 20,

port transmission: FE FE 06 24 01 07 D0 14 FA

specified axis coordinate: byte

range: 1-6

data type of xyz_high: byte

counting method: value of x/y/z coordinate is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of xyz_low: byte

counting method: value of x/y/z coordinate is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

data type of rxryrz_high: byte

counting method: value of rx/ry/rz coordinate is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of rxryrz_low: byte

counting method: value of rx/ry/rz coordinate is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

no Return Value


Sending Parameters of Entire Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X10
Data[3]command frame0X25
Data[4]specify high status of x coordinatex_high
Data[5]specify low status of x coordinatex_low
Data[6]specify high status of y coordinatey_high
Data[7]specify low status of y coordinatey_low
Data[8]specify high status of z coordinatez_high
Data[9]specify low status of z coordinatez_low
Data[10]specify high status of rx coordinaterx_high
Data[11]specify low status of rx coordinaterx_low
Data[12]specify high status of ry coordinatery_high
Data[13]specify low status of ry coordinatery_low
Data[14]specify high status of rz coordinaterz_high
Data[15]specify low status of rz coordinaterz_low
Data[16]specifyd speedSp
Data[17]mode0X01
Data[17]end frame0XFA

Example:

Given that the coordinate of the end of robotic arm is (150.3,-68.7,101.8,10.18,0,-90), and speed is 10,

port transmission: FE FE 10 25 05 DF FD 51 03 FA BC 30 00 00 DC D8 0A 01 FA

data type of x_high: byte

counting method: value of x coordinate is multiplied by 10 and get the hexadecimal highbyte

data type of x_low: byte

counting method: value of x coordinate is multiplied by 10 and get the hexadecimal highbyte

y coordinate is counted in a similar way.

data type of rx_high: byte

counting method: value of rx coordinate is multiplied by 10 and get the hexadecimal highbyte

data type of rx_low: byte

counting method: value of rx coordinate is multiplied by 100 and get the hexadecimal highbyte

ry coordinate is counted in a similar way.

no return value


DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X26
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 26 FA

no return value


Judging Whether Program Stops

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X27
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 27 FA

Return value: data structure

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X27
Data[4]suspend/not suspend0X01/0X00
Data[5]end frame0XFA

Example:

Given that program suspends,

port return value: FE FE 03 27 01 FA


Program Restoration

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X28
Data[4]suspend/not suspend0X01/0X00
Data[5]end frame0XFA

Example:

Port transmission: FE FE 02 28 FA

no return value


Program Stops

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X29
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 29 FA

no return value

Whether Reaching Specified Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0E/0X0F
Data[3]command frame0X2A
Data[4]high status of x coordinate/highbyte of angle of No.1 steering gearx_high/Angle1_high
Data[5]low status of x coordinate/lowbyte of angle of No.1 steering gearx_low/Angle1_low
Data[6]high status of y coordinate/highbyte of angle of No.2 steering geary_high/Angle2_high
Data[7]low status of y coordinate/lowbyte of angle of No.2 steering geary_low/Angle2_low
Data[8]high status of y coordinate/highbyte of angle of No.3 steering gearz_high/Angle3_high
Data[9]low status of z coordinate/lowbyte of angle of No.3 steering gearz_low/Angle3_low
Data[10]high status of rx coordinate/highbyte of angle of No.4 steering gearrx_high/Angle4_high
Data[11]low status of rx coordinate/lowbyte of angle of No.4 steering gearrx_low/Angle4_low
Data[12]high status of ry coordinate/highbyte of angle of No.5 steering gearry_high/Angle5_high
Data[13]low status of ry coordinate/lowbyte of angle of No.5 steering gearry_low/Angle5_low
Data[14]high status of rz coordinate/highbyte of angle of No.6 steering gearrz_high/Angle6_high
Data[15]low status of rz coordinate/lowbyte of angle of No.6 steering gearrz_low/Angle6_low
Data[16]coordinate/angle0X01/0X00
Data[17]end frame0XFA

Example:

Judging whether robotic arm move to zero position:

port transmission: FE FE 0F 2A 00 00 00 00 00 00 00 00 00 00 00 00 00 FA

data type of x_high: byte

counting method: value of x coordinate is multiplied by 10 and converted into integral form to get the hexadecimal highbyte

data type of x_low: byte

counting method: value of x coordinate is multiplied by 10 and converted into integral form to get the hexadecimal lowbyte

y coordinate is counted in a similar way.

data type of rx_high: byte

counting method: value of rx coordinate is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of rx_low: byte

counting method: value of rx coordinate is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

ry coordinate is counted in a similar way.

data type of angle_high: byte

counting method: value angle is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of angle_low: byte

counting method: value of angle is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

Type: byte (temporarily unavailable)

Return Value: data structure

DomainExplanationData
Data[0]return value: head frame0XFE
Data[1]return value: head frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X2A
Data[4]reaching the point/not reaching the point0X01/0X00
Data[5]end frame0XFA

Example:

Given that the robotic arm doesn't reach the point:

port return value: FE FE 03 2A 00 FA


Movement Check

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X2B
Data[4]end frame0XFA

Example:

port transmission: FE FE 02 2B FA

Return Value: data structure

DomainExplanationData
Data[0]return value: head frame0XFE
Data[1]return value: head frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X2B
Data[4]in motion/not in motion0X01/0X00
Data[5]end frame0XFA

Example:

Given that the program is running:

port return value: FE FE 03 2B 01 FA


jog-Joint-Oriented Movement

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X05
Data[3]command frame0X30
Data[4]serial number of steering gearJoint
Data[5]direction of steering geardirection
Data[6]specified speedsp
Data[7]end frame0XFA

Example:

Given that NO.1 steering gear is revolving clockwise at the speed of 20%:

port return value: FE FE 05 30 01 01 14 FA

range of serial number of joint: 1-6

di: data type of byte, either 0 or 1

sp: data type of byte, ranging from 0 to 100

no return value.


jod-Absolute Control

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X06
Data[3]command frame0X31
Data[4]serial number of steering gearJoint
Data[5]highbyte of angle of steering gearAngle_high
Data[6]lowbyte of angle of steering gearAngle_low
Data[7]specified speedsp
Data[8]end frame0XFA

Example:

Given that No.1 steering gear moves to 45° at the speed of 20%

port transmission: FE FE 06 31 01 11 94 14 FA

range of serial number of joint: 1-6

data type of Angle_high: byte

counting method: value of Angle_high is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of Angle_low: byte

counting method: value of Angle_low is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

sp: data type of byte, ranging from 0 to 100

no return value

jog-Coordinate-Oriented Movement

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X05
Data[3]command frame0X32
Data[4]specified coordinateaxis
Data[5]direction of steering geardi
Data[6]specified speedsp
Data[7]end frame0XFA

Example:

Given that robotic arm moves towards x coordinate at the speed of 20

port transmission: FE FE 05 32 01 01 14 FA

axis ranges from 1 to 6, representing x, y, z,rx, ry, rz

di: data type of byte, either 0 or 1

sp: data type of byte, ranging from 0 to 100

no return value

jog-Stepper Model

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X06
Data[3]command frame0X33
Data[4]serial number of steering gearJoint
Data[5]highbyte of angle of steering gearAngle_high
Data[6]lowbyte of angle of steering gearAngle_low
Data[7]specified speedsp
Data[8]end frame0XFA

Example:

Given that the angle of No.1 steering expand by 45° and revolves at the speed of 20

port transmission: FE FE 06 33 01 11 94 14 FA

serial number of joint ranges from 1 to 6

data type of angle_high: byte

counting method: value angle is multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of angle_low: byte

counting method: value of angle is multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

sp: data type of byte, ranging from 0 to 100

no return value


jog-Stop

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X34
Data[4]end frame0XFA

Example:

Stop moving

port transmission: FE FE 02 34 FA

no return value


Sending Potential

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X05
Data[3]command frame0X3A
Data[4]serial number of steering gearJoint
Data[5]high status of potentialEncoder_high
Data[6]low status of potentialEncoder_low
Data[7]end frame0XFA

Example:

Given that No.5 joint is set to 2048

port transmission: FE FE 05 3A 05 08 00 FA

serial number of joint ranges from 0 to 5

data type of Joint: byte

data type of Encoder_high: byte

counting method: get the high status of potential (in hexadecimal form)

data type of Encoder_low: byte

counting method: get the low status of potential (in hexadecimal form)

no return value


Get the Potential

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X3B
Data[4]serial number of jointjoint
Data[5]end frame0XFA

Example:FE FE 03 3B 02 FA

get the potential of NO.2 steering gear

serial number of joint ranges from 1 to 6

Return Value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X04
Data[3]return value: command frame0X3B
Data[4]high status of potentialEncoder_high
Data[5]low status of potentialEncoders_low
Data[6]end frame0XFA

Example:

port transmission: FE FE 04 3B 08 07 FA

How potentials are counted:

potential = low status of potential + high status of potential * 256


Sending Potential of Six Steering Gears

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0E/0X0F
Data[3]command frame0X3C
Data[4]highbyte of No.1 steering gearencoder_1_high
Data[5]lowbyte of No.1 steering gearencoder_1_low
Data[6]highbyte of No.2 steering gearencoder_2_high
Data[7]lowbyte of No.2 steering gearencoder_2_low
Data[8]highbyte of No.3 steering gearencoder_3_high
Data[9]lowbyte of No.3 steering gearencoder_3_low
Data[10]highbyte of No.4 steering gearencoder_4_high
Data[11]lowbyte of No.4 steering gearencoder_4_low
Data[12]highbyte of No.5 steering gearencoder_5_high
Data[13]lowbyte of No.5 steering gearencoder_5_low
Data[14]highbyte of No.6 steering gearencoder_6_high
Data[15]lowbyte of No.6 steering gearencoder_6_low
Data[16]specified speedSp
Data[17]end frame0XFA

Example:

Given that the potential of all is 2048, and the speed is 20

port transmission: FE FE 0F 3C 08 00 08 00 08 00 08 00 08 00 08 00 14 FA

Refer to the chart above for each potential.

data type of encoder_1_high: byte

counting method: convert the potential of No.1 steering gear into integral form and get the highbyte hexadecimal

data type of encoder_1_low: byte

counting method: convert the potential of No.1 steering gear into integral form and get the lowbyte hexadecimal

sp: data type of byte, ranging from 0 to 100

no return value


DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X3D
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 3D FA

Return value: data structure

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0E
Data[3]command frame0X3D
Data[4]highbyte of No.1 steering gearencoder_1_high
Data[5]lowbyte of No.1 steering gearencoder_1_low
Data[6]highbyte of No.2 steering gearencoder_2_high
Data[7]lowbyte of No.2 steering gearencoder_2_low
Data[8]highbyte of No.3 steering gearencoder_3_high
Data[9]lowbyte of No.3 steering gearencoder_3_low
Data[10]highbyte of No.4 steering gearencoder_4_high
Data[11]lowbyte of No.4 steering gearencoder_4_low
Data[12]highbyte of No.5 steering gearencoder_5_high
Data[13]lowbyte of No.5 steering gearencoder_5_low
Data[14]highbyte of No.6 steering gearencoder_6_high
Data[15]lowbyte of No.6 steering gearencoder_6_low
Data[17]end frame0XFA

Example:

Given that all robotic arms are set in zero position,

port return value: FE FE 0E 3D 08 00 08 00 08 00 08 00 08 00 08 00 FA

How to count potential

How potentials are counted:

potential = low status of potential + high status of potential * 256


Reading Potential of Six Steering Gears

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X3D
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 3D FA

Return value: data structure

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0E
Data[3]command frame0X3D
Data[4]highbyte of No.1 steering gearencoder_1_high
Data[5]lowbyte of No.1 steering gearencoder_1_low
Data[6]highbyte of No.2 steering gearencoder_2_high
Data[7]lowbyte of No.2 steering gearencoder_2_low
Data[8]highbyte of No.3 steering gearencoder_3_high
Data[9]lowbyte of No.3 steering gearencoder_3_low
Data[10]highbyte of No.4 steering gearencoder_4_high
Data[11]lowbyte of No.4 steering gearencoder_4_low
Data[12]highbyte of No.5 steering gearencoder_5_high
Data[13]lowbyte of No.5 steering gearencoder_5_low
Data[14]highbyte of No.6 steering gearencoder_6_high
Data[15]lowbyte of No.6 steering gearencoder_6_low
Data[17]end frame0XFA

Example:

Given that all robotic arms are set in zero position,

port return value: FE FE 0E 3D 00 00 00 00 00 00 00 00 00 00 00 00 FA

How potentials are counted:

potential = low status of potential + high status of potential * 256


Reading Speed

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X40
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 40 FA

Return value: data structure

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X40
Data[4]specified speedSp
Data[5]end frame0XFA

Example:

Given that the speed is 50%

port return value: FE FE 03 40 32 FA


Setting Speed

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X41
Data[4]specified speedSp
Data[5]end frame0XFA

Sp: data type of byte, ranging from 0 to 100

Example:

Given that the speed is 50%

port return value: FE FE 03 41 32 FA


Reading the Smallest Angle

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X4A
Data[4]serial number of steering gearJoint_number
Data[5]end frame0XFA

Example:

Reading the smallest angle of joint 2

Port transmission: FE FE 03 4A 02 FA

serial number of joint ranges from 1 to 6

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X05
Data[3]return value: command frame0X4A
Data[4]serial number of jointJoint_number
Data[5]high angle of steering gearAngle_high
Data[6]low angle of steering gearAngle_low
Data[7]end frame0XFA

Example:

port return value: FE FE 05 4A 02 F9 F2 FA

How smallest angles are counted:

temp = angle1_low+angle1_high*256

Angle1=(temp \ 33000 ?(temp – 65536) : temp)/10

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 10; if temp is less than 33000, then temp is divided by 10 directly.


Reading the Smallest Angle

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X4A
Data[4]serial number of steering gearJoint_number
Data[5]end frame0XFA

Serial number of joint ranges from 1 to 6

Example:

Reading the largest angle of joint 2

Port transmission: FE FE 03 4B 02 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X05
Data[3]return value: command frame0X4B
Data[4]serial number of jointJoint_number
Data[5]high angle of steering gearAngle_high
Data[6]low angle of steering gearAngle_low
Data[7]end frame0XFA

Example:

port return value: FE FE 05 4B 02 F9 F2 FA

How the largest angles are counted:

temp = angle1_low+angle1_high*256

Angle1=(temp \ 33000 ?(temp – 65536) : temp)/10

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 10; if temp is less than 33000, then temp is divided by 10 directly.


Setting the Smallest Angle

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X05
Data[3]return value: command frame0X4C
Data[4]serial number of jointJoint_number
Data[5]high angle of steering gearAngle_high
Data[6]low angle of steering gearAngle_low
Data[7]end frame0XFA

Example:

Given that the smallest angle of joint 2 is 0

Serial number of joint ranges from 1 to 6

port return value: FE FE 03 4C 32 FA

data type of angle1_high: byte

counting method: angleis multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of angle1_low: byte

counting method: angleis multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

Port transmission: FE FE 05 4C 02 00 00 FA

no return value


Setting the Largest Angle

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X05
Data[3]command frame0X4D
Data[4]serial number of jointJoint_number
Data[5]highbyte of steering gearAngle_high
Data[6]lowbyte of steering gearAngle_low
Data[7]end frame0XFA

Example:

Given that the largest angle of joint 2 is 45

Serial number of joint ranges from 1 to 6

port return value: FE FE 03 4D 32 FA

data type of angle1_high: byte

counting method: angleis multiplied by 100 and converted into integral form to get the hexadecimal highbyte

data type of angle1_low: byte

counting method: angleis multiplied by 100 and converted into integral form to get the hexadecimal lowbyte

Port transmission: FE FE 05 4D 02 11 94 FA

no return value


Checking Connection

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X50
Data[4]serial number of steering gearJoint_number
Data[5]end frame0XFA

Serial number of joint ranges from 1 to 6

Example:

Checking whether No.1 steering gear is connected

Port transmission: FE FE 03 50 01 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X04
Data[3]command frame0X50
Data[4]serial number of jointJoint_number
Data[5]connected/not connected0X01/0X00
Data[6]end frame0XFA

Example:

No.1 steering gear is connected

Port return value: FE FE 04 50 01 01 FA

Checking Whether All Steering Gears Are Powered On

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X51
Data[5]end frame0XFA

Example:

Port transmission: FE FE 02 51 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X51
Data[4]power on/off0X01/0X00
Data[5]end frame0XFA

Example:

Not all steering gears are powered on

Port transmission: FE FE 03 51 01 FA


Reading Servo Parameters

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X04
Data[3]command frame0X53
Data[4]serial number of jointJoint_number
Data[5]data addressdata_id
Data[6]end frame0XFA

Example:

Reading ratio parameter of P position of No.1 steering gear

Port transmission: FE FE 03 53 01 FA

Serial number of joint ranges from 1 to 6

Data_id: data type byte, referring to the chart below for specific value:

AddressFunctionRangeInitial ValueExplanation
20LED siren0-25401\0: turn on/off LED siren
21position loop P0-25410control the ratio coefficient
22position loop I0-2540control the differential coefficient
23position loop D0-2541control the integral-action coefficient
24minimum starting force0-10000set the smallest torque output capability 1000 = 100%

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X53
Data[4]return value: datadata
Data[5]end frame0XFA

Setting Servo Parameters

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X05
Data[3]command frame0X52
Data[4]serial number of jointJoint_no
Data[5]data addressdata_id
Data[6]parameterview the table below
Data[7]end frame0XFA

Example:

Reading ratio parameter of P position of No.1 steering gear

Port transmission: FE FE 04 52 01 15 01 FA

Serial number of joint ranges from 1 to 6

no return value

Data_id: data type byte, referring to the chart below for specific value:

AddressFunctionRangeInitial ValueExplanation
20LED siren0-25401\0: turn on/off LED siren
21position loop P0-25410control the ratio coefficient
22position loop I0-2540control the differential coefficient
23position loop D0-2541control the integral-action coefficient
24minimum starting force0-10000set the smallest torque output capability 1000 = 100%

Setting Zero Position of Steering Gear

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X54
Data[4]serial number of jointJoint_no
Data[6]end frame0XFA

Example:

Reading zero position of No.1 steering gear

Port transmission: FE FE 03 54 01 FA

Serial number of joint ranges from 1 to 6

no return value


Braking Single Motor

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X55
Data[4]serial number of jointJoint_no
Data[5]end frame0XFA

Example:

Serial number of joint ranges from 1 to 6

Braking No.1 steering gear,

Port transmission: FE FE 03 55 01 FA

no return value


Power Failure of Single Motor

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X56
Data[4]serial number of steering gearServo_no
Data[5]end frame0XFA

Example:

Let No.3 steering gear reducing power

Serial number of servo ranges from 1 to 6

no return value


Powering On a Single Motor

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X57
Data[4]serial number of steering gearServo_no
Data[5]end frame0XFA

Example:

power on No.1 steering gear

Port transmission: FE FE 03 57 01 FA

Serial number of servo ranges from 1 to 6

no return value


Setting Mode of Atom

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X04
Data[3]command frame0X60
Data[4]serial number of pinpin_no
Data[5]input/output00X00/00X01
Data[6]end frame0XFA

Example:

setting atom pin22 as input mode

Port transmission: FE FE 04 60 16 00 FA

Pin_no: data type byte

Pin_mode:0/1

no return value


Setting Atom IO (setDigitalOutput)

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X04
Data[3]command frame0X61
Data[4]serial number of pinpin_no
Data[5]signal of electrical level00X00/00X01
Data[6]end frame0XFA

Example:

setting atom pin23 as high electrical level

Port transmission: FE FE 04 61 17 01 FA

no return value


Reading Atom IO(getDigitalInput)

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X62
Data[4]serial number of pinpin_no
Data[5]end frame0XFA

Example:

reading signal of electrical level of pin23

Port transmission: FE FE 03 62 16 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X04
Data[3]return value: command frame0X62
Data[4]pin numberpin_no
Data[5]signal of electrical level0X00/0X01
Data[6]end frame0XFA

Example:

Given that pin 22 is of high electrical level

Port return value: FE FE 04 62 16 01 FA


Reading the Angle of Gripper

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X65
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 65 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X65
Data[4]span of gripper's openingvalue
Data[5]end frame0XFA

value:0-100%

Example:

Given that gripper is completely opening

Port return value: FE FE 03 65 64 FA

value: 6 * 16 + 4 = 100


Setting the Mode of Gripper

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X04
Data[3]command frame0X66
Data[4]gripper opening/closing0X00/0X01
Data[5]speedSp
Data[6]end frame0XFA

Example:

making gripper open at the speed of 50

Port transmission: FE FE 04 66 00 32 FA

no return value


Setting Angles of Gripper

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X04
Data[3]command frame0X67
Data[4]span of gripper's opening/closingvalue
Data[5]speedSp
Data[6]end frame0XFA

Example:

Given that gripper opens by 50% at the speed of 20

Port transmission: FE FE 04 67 32 14 FA

The value can be converted into hexadecimal

no return value


Setting the Gripper to Zero Position

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X68
Data[4]end frame0XFA

Example:

Setting the Gripper to Zero Position

Port transmission: FE FE 02 68 FA

Checking Whether the Gripper is Moving

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X69
Data[4]end frame0XFA

Port transmission: FE FE 02 69 FA

Return value: data structure

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X69
Data[4]stop/move00/01
Data[6]end frame0XFA

Given that gripper stops working

Port transmission: FE FE 03 69 00 FA


Setting RGB of Atom

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X05
Data[3]command frame0X6A
Data[4]R0X00/0XFF
Data[5]G0X00/0XFF
Data[6]B0X00/0XFF
Data[7]end frame0XFA

Example:

Setting RGB color as blue

Port transmission: FE FE 05 6A 00 00 FF FA

no return value


Setting IO Output

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X04
Data[3]command frame0XA0
Data[4]pin numberPin_no
Data[5]signal of electrical level0X00/0X01
Data[4]end frame0XFA

Example:

Setting high electrical level of pin 2

Port transmission: FE FE 04 A0 02 01 FA


Reading IO Output

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0Xa1
Data[4]pin numberPin_no
Data[4]end frame0XFA

Port transmission: FE FE 04 a1 02 01 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X04
Data[3]return value: command frame0Xa1
Data[4]pin numberPin_no
Data[5]signal of electrical level0X00/0X01
Data[6]end frame0XFA

Example:

Given that pin 2 has high electrical level

Port return value: FE FE 04 a1 02 01 FA


Acquirng WiFi Account & Password

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0Xb1
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 b1 FA

port return value: ssid: MyCobotWiFi2.4G password: mycobot123

ssid: WiFi account

password: WiFi password


Setting Port Number

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X04
Data[3]command frame0Xb2
Data[4]highbyte of portport_high
Data[5]lowbyte of portport_low
Data[6]end frame0XFA

Example:

Given that port number is 7000

Port transmission: FE FE 04 b2 1b 58 FA

port_high: highbyte of hexadecimal port number

port_low: lowbyte of hexadecimal port number

No return value


Setting Tool Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0E
Data[3]command frame0X81
Data[4]specify high status of x coordinatex_high
Data[5]specify low status of x coordinatex_low
Data[6]specify high status of y coordinatey_high
Data[7]specify low status of y coordinatey_low
Data[8]specify high status of z coordinatez_high
Data[9]specify low status of z coordinatez_low
Data[10]specify high status of rx coordinaterx_high
Data[11]specify low status of rx coordinaterx_low
Data[12]specify high status of ry coordinatery_high
Data[13]specify low status of ry coordinatery_low
Data[14]specify high status of rz coordinaterz_high
Data[15]specify low status of rz coordinaterz_low
Data[16]end frame0XFA

Example:

Given that (0,0,50,0,0,0)is tool coordinate,

Port transmission: FE FE 0E 81 00 00 00 00 13 88 00 00 00 00 00 00 FA

no return value


Acquiring Tool Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X82
Data[4]end frame0XFA

Example:

Port transmission: FE FE 02 82 FA

Return value: data structure

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0E
Data[3]command frame0X82
Data[4]specify high status of x coordinatex_high
Data[5]specify low status of x coordinatex_low
Data[6]specify high status of y coordinatey_high
Data[7]specify low status of y coordinatey_low
Data[8]specify high status of z coordinatez_high
Data[9]specify low status of z coordinatez_low
Data[10]specify high status of rx coordinaterx_high
Data[11]specify low status of rx coordinaterx_low
Data[12]specify high status of ry coordinatery_high
Data[13]specify low status of ry coordinatery_low
Data[14]specify high status of rz coordinaterz_high
Data[15]specify low status of rz coordinaterz_low
Data[16]end frame0XFA

Port return value: FE FE 0E 82 00 00 00 00 13 88 00 00 00 00 00 00 FA

How to get x coordinate:

temp = x_low + x_high*256

x coordinate =(temp\33000 ?(temp – 65536) : temp)/10

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 10; if temp is less than 33000, then temp is divided by 10 directly.

y coordinate is counted in a similar way.

How to get rx coordinate:

temp = rx_low + rx_high*256

x coordinate =(temp \ 33000 ?(temp – 65536) : temp)/100

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 100; if temp is less than 33000, then temp is divided by 100 directly.

ry coordinate is counted in a similar way.


Setting World Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X0E
Data[3]command frame0X81
Data[4]specify high status of x coordinatex_high
Data[5]specify low status of x coordinatex_low
Data[6]specify high status of y coordinatey_high
Data[7]specify low status of y coordinatey_low
Data[8]specify high status of z coordinatez_high
Data[9]specify low status of z coordinatez_low
Data[10]specify high status of rx coordinaterx_high
Data[11]specify low status of rx coordinaterx_low
Data[12]specify high status of ry coordinatery_high
Data[13]specify low status of ry coordinatery_low
Data[14]specify high status of rz coordinaterz_high
Data[15]specify low status of rz coordinaterz_low
Data[16]end frame0XFA

Port return value: FE FE 0E 84 00 00 00 00 13 88 00 00 00 00 00 00 FA

How to get x coordinate:

temp = x_low + x_high*256

x coordinate =(temp\33000 ?(temp – 65536) : temp)/10

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 10; if temp is less than 33000, then temp is divided by 10 directly.

y coordinate is counted in a similar way.

How to get rx coordinate:

temp = rx_low + rx_high*256

x coordinate =(temp \ 33000 ?(temp – 65536) : temp)/100

Explanation: if temp is greater than 33000, temp minus 65536, and then is divided by 100; if temp is less than 33000, then temp is divided by 100 directly.

ry coordinate is counted in a similar way.


Setting Base Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X85
Data[4]base coordinate/world coordiante00/01
Data[5]end frame0XFA

Example:

Given that the coordinate should be set as world coordinate

port transmission: FE FE 03 85 01 FA

no return value


Acquiring Base Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X86
Data[4]end frame0XFA

Example:

port transmission: FE FE 02 86 FA

Return value: data structure

DomainExplanationData
Data[0]return value: identification frame0XFE
Data[1]return value: identification frame0XFE
Data[2]return value: data-length frame0X03
Data[3]return value: command frame0X86
Data[4]base coordinate/world coordiante00/01
Data[5]end frame0XFA

Example:

port transmission: FE FE 03 86 01 FA


Setting End Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X89
Data[4]flange00/01
Data[5]end frame0XFA

Example:

Given that end coordinate are set as tool

port transmission: FE FE 03 89 01 FA

no return value


Acquiring End Coordinate

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X02
Data[3]command frame0X8a
Data[4]end frame0XFA

Example:

port transmission: FE FE 02 8a FA

Return value: data structure

DomainExplanationData
Data[0]identification frame0XFE
Data[1]identification frame0XFE
Data[2]data-length frame0X03
Data[3]command frame0X8a
Data[4]flange00/01
Data[5]end frame0XFA

Example:

port return value: FE FE 03 8A 01 FA

Appendix

The specific method of adding coordinate-exchanging programs from Atom repository and sports repository are listed as following.

  1. Change end coordinate.

  2. Set end coordinate by setEndType and getEndType.

    FLANGE: Setting EndType as FLANG; TOOL: Setting EndType as TOOL End.

  3. Read tool coordinate via setToolReference and getToolReference. (FLANGE serves as relative coordinate and information about tool end is relevant to FLANGE coordinate.)

  4. After setting EndType as FLANGE, GetCoords and WriteCoords are counted depending on FLANG's position.

  5. After setting EndType as TOOL, GetCoords and WriteCoords are counted depending on end's position.

  6. Change base coordinate.

  7. Set base coordinate by setReferenceFrame.

    RFType: Base means setting robotic pedestal as base coordinate; RFType:WORLD means make world coordinate as base coordinate; getReferenceFrame serves to read the type of base coordinate.

  8. setWorldReference and getWorldReference works to read information about base coordinate. World coordinate serves as relative coordinate to type pedestal information of robots that is relevant to world coordinate.

  9. If base coordinate acts as pedestal, GetCoords and WriteCoords take base coordinate as reference coordinate.

  10. If world coordinate acts as pedestal, GetCoords and WriteCoords take world coordinate as reference coordinate.

Information Updating About Communication

These are newly-added functions: setting and reading of end coordinate, world coordinate, present coordinate, type of end, as well as moving method, and sending and receiving of information on robotic arms.

The communication is temporarily set as from 0x80 to 0x8A.

The roboticMessages space is specially added in ParameterList.h for more communication information. Now only No Analytical Solution signal has been added, while more will be added later.

The outline of MOVEL are listed as follows:

First, count the Euclidean Distance between starting point and target point. Second, interpolation points are inserted every 10mm, based on the Euclidean Distance. If interpolation points do not have analytical solution, then search for plus or minus PI/30 from three unchangeable direction for analytical solution. Avoid singular value and some distinctive position that cannot get analytical solution.

Change the interval between MOVEL and JOG into dynamic time. And then, count the time spend moving through the maximum joint. And then, minus the moving time by specific period to take it as interval.

Use of adaptive grippers
Use of force-controlled grippers

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文