Inspiration

I was very interested in QNX, because apparently it is used in robotics all the time, and I wanted to do something to learn more about it.

What it does

It's a 2-degree of freedom arm that is capable of 2d-cartesian movement. Servo angles are controlled by inverse kinematics, so both joints move together to produce the desired trajectory rather than controlling each joint individually.

How we built it

The arm itself was made with hot glue, paperclips, cardboard, and toothpicks (I'm in CS, not mech). It is controlled with inverse kinematics on a raspberry pi running QNX, with the program itself written in C.

Challenges I ran into

The biggest challenge was probably time, to be honest. I had a test Saturday morning, so I really only started working on it after that. I also had zero prior QNX or hackathon experience, for the matter, so half the time was spent setting up QNX, and configuring the Wifi settings. Also, I made the incorrect assumption that QNX was like a Jettson, where you SSH in and start installing whatever libraries you please. Setting up the library and learning the SDE environment took a little bit of time too. And of course, there was the wiring. I had to find GPIO pins that had PWM enabled to control the servo, and I had to remember how to do external pullup resistors.

Accomplishments that I'm proud of

Getting something scrapped together within 36 hours in a wildly unfamiliar environment.

What I learned

A lot about QNX, and embedded packages in general. Reminds me a little of Arduino, where you compile the executable on your computer then flash it onto the microcontroller, except a raspberry pi running QNX is significantly more powerful.

What's next for QNX Inverse Kinematics Servo arm

Maybe I'll add a third degree of freedom so that it can reach everywhere in 3d space within its working envelope.

Built With

  • c
  • qnx
  • rpi
Share this project:

Updates