You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+100-8Lines changed: 100 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -9,17 +9,17 @@ The design was heavily inspired by these following projects:
9
9
10
10
[I made a DUMMY ROBOTIC ARM from scratch! (By pengzhihui)](https://www.youtube.com/watch?v=HMSLPefUVeE&ab_channel=JeremyFielding)
11
11
12
-
Props to them for sharing these amazing projects with all of us!
12
+
Props to them for sharing these amazing projects!
13
13
14
14

15
15
16
-
This robotic arm uses harmonic drives(CSF-11, CSF-8) as reducers and steppers(NEMA17, NEMA14) as motors.
16
+
This robotic arm uses harmonic drives as reducers(CSF-11, CSF-8) and steppers as motors(NEMA17, NEMA14).
17
17
18
18
Therefore, the overall precision of the robot is pretty decent for a 3D printed robot, but it is still no match for robotic arm that has fully CNC frames.
19
19
20
-
The filament I'm using is PLA+, it provides great stiffness and cheap price, but it still has some deformation when big load were apply in TCP, which is acceptable for me.
20
+
The filament I'm using is PLA+, it provides great stiffness and cheap price, but it still has some deformation when big loads were apply in TCP, which is acceptable for me.
21
21
22
-
The controller box has a [STM32F407VG](https://www.st.com/en/evaluation-tools/stm32f4discovery.html"link"), a 12V 100W PSU and a 12V to 5V converter, can be connected to computer via USB and the robotic arm will be identify as a USB device.
22
+
The control box of the robot has a [STM32F407VG](https://www.st.com/en/evaluation-tools/stm32f4discovery.html"link"), a 12V 100W PSU, a 12V to 5V converter and a sn65hvd230 CANBUS transceiver, it can be connected to computer via USB and the robotic arm will be identify as a USB device.
23
23
24
24

25
25
@@ -36,18 +36,110 @@ alto_6_axis.Alto_Operate()
36
36
37
37

38
38
39
+
The design of the robot is reference from generic industrial robot, such as [Yasakawa AR1440](https://www.motoman.com/en-us/products/robots/industrial/welding-cutting/ar-series/ar1440) or [Kuka KR CYBERTECH nano](https://www.kuka.com/en-de/products/robot-systems/industrial-robots/kr-cybertech-nano)
39
40
41
+
The first 3 joints of the robot used NEMA17 stepper motor and CSF-11 gearbox as their joint unit, and the 3 joints were also installed with crossed roller bearings to reduce to vibration and deformation.
40
42
41
-
All of the component that you need to build the robot is shown in the BOM(bill of material), including the part's name and quantity.
43
+
3 wrist joints used NEMA14 stepper motor and CSF-8 gearbox, which make the wrist joints lighter and more compact.
42
44
43
-
Some of the part were relatively more expensive then other, like harmonic drives.
45
+
Every joint also has its own limit switch, the limit switch is used as a way to calibrate joint's origin(0° of the joint)
46
+
47
+
The detail of each joint can be found in the table below.
All of the component that you need to build the robot is shown in the **BOM**(bill of material) in **hardware** folder, including the part's name and quantity.
59
+
60
+
Some of the parts were relatively more expensive, like harmonic drives.
44
61
45
62
But I've manage to found cheaper alternative in Aliexpress and Taobao, which is a lot cheaper then the original one.
46
63
47
-
By doing so
64
+
By doing so, I've significantly reduced my cost on the robot, I end up spent around 400USD in total.
65
+
66
+
Which is a pretty good deal in my opinion.
48
67
49
68
## Firmware
50
69
70
+
### Preparation
71
+
72
+
The code of the controll box ([STM32F407VG](https://www.st.com/en/evaluation-tools/stm32f4discovery.html"link")) can be found in the **firmware** folder.
73
+
74
+
[STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html) is needed to open the **.project** file.
75
+
76
+
Once **.project** is opened, all the code, peripheral setting etc... will be shown inside STM32CubeIDE.
77
+
78
+
The code can also be uploaded or modified in STM32CubeIDE.
79
+
80
+
### Source Code
81
+
82
+
The firmware source code can be break down into following sections :
83
+
|Section name |Functionality|
84
+
|:- |:- |
85
+
|alto_config |Robot configuration|
86
+
|command |Processing user command|
87
+
|Emm_can |Stepper driver CANBUS library|
88
+
|FK |Forward kinematics|
89
+
|IK |Inverse kinematics|
90
+
|main |STM32 main function|
91
+
|matmul |matrix calculation library|
92
+
|robot_behavior|Robot system core|
93
+
|transform |Basic robotic mathematics library|
94
+
95
+
Further details can be found inside the src files.
96
+
51
97
## API
52
98
53
-
## result
99
+
### Serial Command
100
+
Robot can be connected to computer via USB, so any serial communication tool like [hterm](https://www.der-hammer.info/pages/terminal.html) can be used to control the robot.
101
+
102
+
The command reference file **alto_command.xlsx** is located inside **software** folder.
103
+
104
+
### Python API
105
+
106
+
There is also a Python API module in **software** folder named **alto.py**, which is a much easier way to control the robot.
107
+
108
+
Simply declare a **Alto** class object with correct COM port, then you can use the object's bulid-in method to operate the robot.
109
+
110
+
```python
111
+
import alto
112
+
113
+
alto_6_axis = alto.Alto(6, com_port="COM10")
114
+
alto_6_axis.Alto_Operate()
115
+
alto_6_axis.Alto_Stop()
116
+
alto_6_axis.Alto_Set_Speed(100)
117
+
alto_6_axis.Alto_Set_Acc(80)
118
+
alto_6_axis.Alto_Set_Mov(alto.Joint)
119
+
alto_6_axis.Alto_Set_Joint_Angle(1, 0)
120
+
alto_6_axis.Alto_Set_Joint_Angle(2, 0)
121
+
alto_6_axis.Alto_Set_Joint_Angle(3, 0)
122
+
alto_6_axis.Alto_Set_Joint_Angle(4, 0)
123
+
alto_6_axis.Alto_Set_Joint_Angle(5, 0)
124
+
alto_6_axis.Alto_Set_Joint_Angle(6, 0)
125
+
alto_6_axis.Alto_Start()
126
+
```
127
+
128
+
## result
129
+
130
+
### Videos
131
+
132
+
[IK Test Demo](https://www.youtube.com/watch?v=VYk2PS6qSJA&ab_channel=%E7%A8%8B)
0 commit comments