Why did I created this robotic arm?
It was 2014, when I was a junior three student. That's my first time to watch the Iron Man. I was attracted by a scene in the movie.
From then on, I always dream about create my own robotic arm.
I know it sounds silly, and I totally have not ideas about how to make at that time.
The story about this project.
Design the mechanical structure.
When I was in high school in 2017, I began trying to design my first robotic arm. I have design about 10 versions of mechanical structure. But they were still not good enough for production.
I didn't design the first version of the robotic arm drawing for production until March 2018.
I used 5 mm nylon board to make the body of my robotic arm, and designed a bottom for it. Most of the bottom parts are 3d printing parts.
In order to reduce the weight of robotic arm body, I designed a synchronization wheel reducer system for it. The synchronization wheels I used is 2GT synchronization wheel. 2GT synchronization wheel usually used in 3d printer.
Design the electronic circuit.
After finished the mechanical structure, I began designing the electronic circuit and cost me about 2 days.
The whole robot system is consist of upper computer or upper computer software and lower computer system. I used PC as the upper computer. The lower computer system consist of 5 stm32 micro-controllers. And I used stm32f103c8t6 to be the main controller of my Lower computer control system.Controllers use CAN bus to communicate and work in master-slave mode. There are one master and 4 slaves.
The electronic circuit of master and slaves are totally same. The only different between them are their program.
I use usb port to connect the CAN bus, so I also designed a usb hub to connect all the PCB broads.
Design the program.
You can get all the code from my github repositories.
- Program of stm32:
Master using serial port to communicate with the upper computer or upper computer software. All the motion information is come from the upper computer or upper computer software. While Master receive valid motion information it will distribute the information to slaves by CAN bus immediately.
Slaves using CAN bus to communicate with the Master, every Slave have its distinctive ID, Master send information to all the Slave in the form of broadcasting. Slaves use its ID to filter out the useful information for itself. Then Slave use the information to control Abot's joint by driving the stepper motor.
IDE-Version: uVision V220.127.116.11
- stm32 with Medium Capacity
- At least having one CAN (you can reference the official website of stm32)
- CAN transceiver(like tja1050)
- Program of ROS:
I used my PC to be the upper computer which runs inverse kinematics solution and trajectory planning.
To finish that job, ROS will be a big help！
Using MoveIt in ROS, you can finish inverse kinematics solution and trajectory planning without a great number programming works.
- Program of Qt:
For more convenient debugging, I make a PC upper computer software using c++ and Qt. Having this upper computer software you can connect to the robotic arm using your USB port and control the robotic arm by operate the GUI.
The version 0.1 of this upper computer software can only control the angle of joints. I planning to develop the version 1.0 to achieve the function of trajectory tracking.
Design the control cabinet.
When I finish the above parts, I must make a control cabinet and put all the controller electronic circuit into it.
So I created this guy.
After assembled the control cabinet and put all the electronic circuit into it, I realize that it may too small to put more expanding circuit into it. So maybe I will design a bigger cabinet next time.