News

Sixi Robot Gripper Design Adventures

I thought that the hard part would be making the Six robot arm. Turns out making a two finger gripper is also pretty challenging! I would love to see students take on this challenge to make their own gripper. There’s so many ways to tackle the challenge.

Gripper requirements

The gripper must:

  • Attach to the ISO 9409-50-1-M6 hand
  • Have two fingers
  • Weigh under 1kg
  • Be able to pick up at least 1kg and turn it arbitrarily without dropping it
  • Not crush soft objects like grapes, eggs, or empty cans
  • Have a minimum stroke (movement distance) of 30mm.
  • Run at 12v (max 2a) for motor power.
  • Run at 5v (max 500ma) for logic.
  • Have replaceable fingers that can be customized to different tasks

It would be nice if

  • The gripper would use ModBus (RS485) to communicate with the Sixi robot.
  • The gripping strength could be controlled by the robot.
  • The robot could tell the state of the gripper: position, activity right now, etc.

More to follow as this adventure unfolds! Wish us luck.

Discuss this post in the forums.

News

How to draw a rectangle in Gcode

So you’ve played with the Makelangelo‘s generated Gcode and now you want to experiment on your own. Cool! Here’s a simple rectangle to get you started.

Now let’s give some values to these parameters:

A20
B40
C10
D30

My method is to lift the pen, drive to a corner, put the pen down, and then trace the rectangle. That means going to five points because we have to come back to the start.

G0 Z90; # pen up
G0 X-10 Y20;  # p1 
G0 Z40; # pen down 
G0 X30 Y20;  # p2
G0 X30 Y-40;  # p3 
G0 X-10 Y-40;  # p4 
G0 X-10 Y20;  # p1 again
G0 Z90; # pen up

And voila! I’ve deliberately done this with the origin away from the center so the numbers are more obvious. I hope you see that in a cartesian system the origin could be anywhere. For example, if it were below and to the left of P4 all the X and Y values would be positive.

News

Sixi Calibration Tool

The Sixi Calibration Tool helps anyone using a Sixi robot make sure that the robot’s mental and physical states match.

They have to match or else.

If they do not match then the move you expect is not the move you will get. This could very quickly lead to an accident.

Ok, what do we do about it?

There has to be a way to synchronize the mental model and the physical model. The calibration tool is made to fit in one place and attach to the arm in only one way. This forces all the robot joints to move to known angles. Those angles are measured in the mental model in Robot Overlord and then copied to the physical model in the robot’s brain.

https://www.thingiverse.com/thing:4565863

Sixi robot joint angles at calibration

JointAngle (degrees)
0 (x)0.0
1 (y)-41.3
2 (z)74.5
3 (u)0.0
4 (v)-33.5
5 (w)0.0
News Robot Arm

Sixi robot ROS package

Sixi robot now has a URDF description and can be found on the ROS wiki.

ROS (Robot Operating System) was first developed by Willow Garage, a Boston robotics company. Though Willow Garage no longer exists, the ROS has been so successful that it has outlived its creator.

Since ROS is such a popular tool, I hired sachinkumar1235 on Fiverr who built the URDF package. It includes decimated STL files created by Andre.

You can now find Sixi robot on the ROS wiki, or grab the package directly from the Sixi robot github project.

News

Moving your CNC with Bresenham’s algorithm

Programming stepper motors to move together correctly for CNC machining can be a challenge and I’m here to help. To move one motor on it’s own is easy enough. Moving several is not too hard, either. What if all those motors are supposed to move in concert and finish their moves at the same time, perfectly, every time? The solution is today’s topic.

A single stepper motor isn’t too hard. Most stepper motors are driven through a dual H-bridge stepper adapter like the A4988, the TMC2130, or the classic L293D. You, the programmer, set the enable pin (turn on the motor), the direction pin, and then flip the step pin high and low for the desired number of steps. Easy enough…

When it’s time to move two motors, I can (of course) move each the full distance.

I could use an Adafruit Stepper Motor Shield, set the target steps and position, and then say “go”. It will move them both one step at a time. One of the motors will be done first. This is sometimes called the hockey stick.

But what we want is both to arrive at the same time.

Notice that I’m using line drawings to describe these movements. The solution to moving these motors is the same one used to draw lines on a screen – Brenseham’s line algorithm.

Now that I’ve described what the issue is and the name of the solution, Here’s the wikipedia entry on Brenseham’s line algorithm. It has pseudo-code and lots more examples to help you out. If that’s not enough, post to our forums with your questions!

One final note: an especially nice feature of Brenseham’s line algorithm is that it does all the math with whole numbers only, which are much faster to calculate in a microchip AND won’t have any rounding errors that can happen in said microchips. So perfect results every time.

Brenseham’s line algorithm is used in Makelangelo-firmware, Marlin, and probably several other CNC firmwares.