Showing posts with label tutorial. Show all posts
Showing posts with label tutorial. Show all posts
Tutorial: Build the LittleArm
Here is a tutorial outlining the different steps taken to assembly the LittleArm robot kit.
Installing and Running Python on Windows
For those that use Windows.
In order to run the python programs on this website for the LittleArm (3D Printed Robot Arm) you will need Python installed. And if you want to use it from the command line you will need to add it to your environmental variables
Here is a tutorial on how to install Python and then run it from the command line.
For those that do not like to read, here is a video of the process.
Instead of running our programs from the command line, you may also simple start up Python IDLE and then open and run the python programs from this website. That is a more intuitive and graphical method.
Here is our own video on installing python and running the programs in IDLE
Here is our own video on installing python and running the programs in IDLE
Tutorial: Training the Robot Arm using the Python Gui
We have had the capability to train the robot for a while now. Here is the code used in this tutorial.
The interface is already pretty intuitive, but some of the application may not be clear. Soon we will make a video of how to launch the GUI and get it working on windows.
In the meantime have fun training the robot. And please share what you make it do on the forum
There are two tutorials, the long version and the short. Use the one you need.
The interface is already pretty intuitive, but some of the application may not be clear. Soon we will make a video of how to launch the GUI and get it working on windows.
In the meantime have fun training the robot. And please share what you make it do on the forum
There are two tutorials, the long version and the short. Use the one you need.
Long Version
Short Version
Parallel Execution of Joint Motions
Normally when you make a robot, you don't want it to move one joint at a time. Usually you want something more fluid where several joints are moving in tandem.
While it is impossible to have parallel execution on the arduino, the illusion of parallel execution can be achieved.
It is done by moving each joint only a few degrees and then moving the next joint a few degrees. Since the delays between the movements are milliseconds it appears as if all the joints are moving at once.
This code was tested using the Training Program created in the last post. The user control the arm to some position they want it to be at and then records that position. Then when there are several positions the arm will move directly to each point.
For those familiar with engineering, what we have created is a very basic PD controller.
What is great about this parallel movement is that while before when we did training we may have had to record single joint movements to ensure that the arm didn't collide with the table. Now that is not as much of a worry since all the joints can move to their desired positions simultaneously.
Code for this post for Parallel Joint Movement
//Primary Function for Simultaneous Servo Motion
int servoParallelControl (int thePos, Servo theServo ){
int startPos = theServo.read(); //read the current pos
int newPos = startPos;
int theSpeed = 9;
//define where the pos is with respect to the command
// if the current position is less that the actual move up
if (startPos < (thePos-5)){
newPos = newPos + 1;
theServo.write(newPos);
delay(theSpeed);
return 0;
}
else if (newPos > (thePos + 5)){
newPos = newPos - 1;
theServo.write(newPos);
delay(theSpeed);
return 0;
}
else {
return 1;
}
}
While it is impossible to have parallel execution on the arduino, the illusion of parallel execution can be achieved.
It is done by moving each joint only a few degrees and then moving the next joint a few degrees. Since the delays between the movements are milliseconds it appears as if all the joints are moving at once.
This code was tested using the Training Program created in the last post. The user control the arm to some position they want it to be at and then records that position. Then when there are several positions the arm will move directly to each point.
For those familiar with engineering, what we have created is a very basic PD controller.
What is great about this parallel movement is that while before when we did training we may have had to record single joint movements to ensure that the arm didn't collide with the table. Now that is not as much of a worry since all the joints can move to their desired positions simultaneously.
Code for this post for Parallel Joint Movement
//Primary Function for Simultaneous Servo Motion
int servoParallelControl (int thePos, Servo theServo ){
int startPos = theServo.read(); //read the current pos
int newPos = startPos;
int theSpeed = 9;
//define where the pos is with respect to the command
// if the current position is less that the actual move up
if (startPos < (thePos-5)){
newPos = newPos + 1;
theServo.write(newPos);
delay(theSpeed);
return 0;
}
else if (newPos > (thePos + 5)){
newPos = newPos - 1;
theServo.write(newPos);
delay(theSpeed);
return 0;
}
else {
return 1;
}
}
Wiring Diagram: Arduino 3DOF Arm
Here is a basic wiring diagram for the 3DOF arduino robot arm. All the parts for the diagram can be found on the Project Links Page
Arm Demo: Prototype Videos
An initial prototype for the arm was completed recently. Here are a couple of videos.
Operated from Keyboard
Servo Sequence
Subscribe to:
Posts (Atom)