Category Archives: Software

hi 2016 (2 servo drawing robot arm, tripod gait 12 servo hexapod, visit to NASA, quadcopter tuning, etc.)

hm, haven’t updated in a while.

i built a lot of robots with parents over the winter break. i built a robot arm and refreshed on inverse kinematics; more specifically, make sure your servos are rotating as you expect: IK goes counterclockwise since angles increase that way, but your servos may increasing in a clockwise direction… a simple map(theta, 0, 180, 180, 0) will fix your problem if you catch it.

2016-01-01

processing takes in x,y coordinates drawn on the screen and spits them out to arduino over serial, which does the inverse kinematics and spits out the theta values to the servo

https://github.com/NarwhalEdu/CopyCat/blob/master/Code/basicsIK/basicsIK.ino

or for the one where it draws what you draw on the screen, https://gist.github.com/nouyang/b312b9ea5c67baa0c914

also tried to face.

it does not face well, in part i have derpy three year old code

face3

this processing code takes a lot of processing libraries. thresholds image, performs canny edge detection, then a walking algorithm (look at each black pixel by scanning image in x and y, see if neighbors are black as well, then walk along that pixel) to turn the edges into vectors. then output to robot, but robot is limited in resolution (arduino servo library) and cheap hobby servo overshoot.

below you can see preview in python.  (basic code, I basically copied the output from processing into a text file and  added some python code to that to plot the values)

is to check image is within the working envelope of the arm. IK is fixed with arm “up”.

face2

faceservo

problem of walking algorithm: adds a box around the image. irritating. need to rewrite code. looking into open cv.

i also rehashed my hexapod project with 12 servos and popsicle sticks

hexapod

basically this https://github.com/nouyang/18-servo-hexapod/blob/master/arduino_may13_2011.pde

but modified to work with the servo configuration on the rectangular robot, and added code to allow you to step through the gait with “j” and “k”: https://gist.github.com/nouyang/d9b6474e3ee412b9b05b

need to implement the other gaits; also, this moves so smoothly, envious, but they have lasercutter :3

worked on quad, now stuck at calibration stage 😡 because i have not built quad before, i could not push through this in a day or two unlike the drawing arm and hexapod.

quad

 

made from a sad clothes drying rack we took apart

 

 

 

transmittercable

we couldn’t find the original cable for the transmitter, so we connected the ports up with a FTDI -> USB cable as per http://psychoul.com/electronics/how-to-make-your-own-usb-cable-for-hk-t6a-calibration

zero

used http://www.sgr.info/usbradio/download.htm and calibrated my servos to zero… took a while to realize it *can* and *should* read the current values, guess my wires were loose, but the values because a lot easier to input. used the kk2 screen to fix some controls that were reversed from what the kk2 expected (left = left and not right, etc.). zeroed all the values on the kk2. turns out (minus the flipping controls) I could zero just as well on using the trim knobs on the controller itself.

went to visit NASA space museum in houston. they had little robot that made and served you froyo. adorable.

nasaicecream

also, some regal looking hexapods in the actual NASA workplace.

 

nasarobot

at MITERS I got a robot arm working with lots of help from MITERS / London Hackerspace / john from BUILDS. For robot arm competition. http://robotart.org/

i’m now robot art-ing. here is using Fengrave on a black and white image with appropriate offsets to produce gcode (well, limited to G0 and G1 commands)

fengrave

robotdrawing

face code still derp. (streaks are because i wrote gcode translator, and it goes to x,y,z position instead of x,y and then z). too many x,y points. draws slowly.

face

michael made crayon extruder (=metal tube + power resistor) and also pen mount. crayons = hard to control flow rate. started making square, then pooped out a lot of melted crayon. alas.

crayonextrusion

learned a lot of patience dealing with old manuals, 20 year old operating systems / controllers. main issue turned out to be a dumb calibration assumption (robot had arrows; should have ignored them and used indentations instead).

https://github.com/miters/gdmux gcode -> V+

also, i learned about oscilloscope rs232 decoder! had to invert to get it working properly (zeros are high in rs232?). scope ground, tx line. bam, now you can check whether you are actually transmitting all the carriage return and line feeds you need…

2016-01-13

currently: reading up on image processing. openCV. http://web.cs.ucdavis.edu/~ma/SIGGRAPH02/course23/notes/S02c23_3.pdf

terse update. more details available if questions exist.

many thanks to my parents for being excited and not jaded

Organizing an solid modelling CAD reading group (toward FOSS CAD)

I’m starting a new reading group!

The idea is to get a good background on parametric solid modelling CAD (think solidworks, proE, openSCAD).

(to be clear, NOT how to use the tools, but how to write new ones or contribute to FOSS implementations).

I think the first group meeting would simply be an overview of existing approaches and the pros/cons of existing FOSS CAD software (as well as introductions to each other).

Proposed time is 6pm EST Sundays over google hangouts (and possibly simultaneously in person in Camberville, MA), totally open to other times.

Sign up here: FORM

Restarting Cinnamon after freeze without losing session information

Whoo! For some reason, cinnamon freezes extremely often (multiple times a day) on my desktop, and I had been resorting to “ctrl-alt-f1” to get to a terminal and running “killall cinnamon-session”, which brings me back to login screen. Fortunately, there is a better solution, aka “ctrl-alt-esc”.

Here’s the relevant excerpt from the Cinnamon blog (http://segfault.linuxmint.com/2015/06/cinnamon-2-6/):

Desktop freezes

In case of a freeze or if you need to restart Cinnamon for any reason, you can now do so via a keyboard shortcut. The default key combination is Ctrl+Alt+Escape. Pressing this combination of keys restarts nemo and cinnamon-settings-daemon in case they had crashed, and launches a brand new instance of the Cinnamon desktop. Unlike Ctrl+Alt+Backspace which terminates your session and brings you back to the login screen, Ctrl+Alt+Escape simply restarts Cinnamon itself, which means your session is exactly as it was, you don’t lose any work and all your windows and applications remain open.