New TinkerKit Braccio Robot Library

A couple of weeks back, we were using the Braccio Robot for an innovation-day project at work. The project was a moderate success, partly due to the limited time. I was a bit annoyed at how much work we had to spend to do basic things with the robot, so I decided to put some of the result of our experiences into the public domain to help other project using the robot.

I have written a new library for the robot, which allows better control of the movements and is easier to use. Among other things, it allows configuration of the initial position, handles acceleration and can power the servos on and off. It also includes an example with a serial port API to control the robot from a computer and a simple python program that uses that API which can be used for basic movements controlled from the keyboard.

The library is currently at: https://github.com/stefangs/arduino-library-braccio-robot.

I think this library might be useful for others as well, so I wonder who to contact to get it forked to the Arduino.org project at GitHub (If they think it is good enough)?

hi,
is this lib providing forward and reverse kinematics do determine

  • the end of the 6D spatial gripper position and gripper orientation (x,y,z,yaw,pitch,roll) by given angles of all joints (FK),
    and
  • the required angles of all joins (base,shoulder,elbow,wrist, gripperrot,gripper) to move to an arbitrary 6D spatial gripper pos/orientation (x,y,z,yaw,pitch,roll) (RK)
    :?:

Unfortunately, the library does not provide such features (yet at least). It has a separate class representing a position, where one or all of the angles can be set.

What would be needed is a special setter method which would take x, y, z, pitch and roll as parameters, and that method should do the needed FK calculations to set the angles of the position. I am not skilled enough in robot kinematicts calculations to implement this though.

It would also be possible to implement a getter, which would return x, y, z, pitch and roll from a given position. This is easier to implement but has a bit less value I guess.

By the way, I do not think there is any point in specifying the yaw, since that is actually implicitly defined by x, y, z as the arm has no way of "bending" sideways.

thank you for your reply!
I generally agree about yaw angles for the Braccio - yaw might be taken as a constant, but for later enhancements and adjustments to similar robot arms feat rotations for sideways movements that could be implemented later optionally then, e.g. for the model I am currently using (as shown here: Kinematics and reverse kinematics lib for 6-7 DOF robot arms - #20 by dsyleixa - Robotics - Arduino Forum) .

Thanks for sharing your work nethome!

nethome:
I think this library might be useful for others as well, so I wonder who to contact to get it forked to the Arduino.org project at GitHub (If they think it is good enough)?

The company behind arduino.org no longer exists. They merged back into arduino.cc. Unfortunately, their GitHub repositories never were moved over to the arduino organization and there is no sign of any maintenance on those repositories. Instead, the library has been copied from the arduino-org organization to Arduino's repository:
GitHub - arduino-libraries/Braccio: Arduino Braccio Library
Where there has been further development. This is the source of the library you can install via the Arduino IDE's Library Manager (Sketch > Include Library > Manage Libraries...).

If you have some ideas for improvements to that library, you are welcome to submit pull requests.

To make your library more accessible to Arduino users, you have the option of submitting it for inclusion in the Arduino Library Manager index:

Your library already meets all the requirements so you only need to open an issue here with the request:

Thank you Pert, this was exactly the information I was looking for. I have now submitted a request.

Thanks for the request! I have reviewed it and everything looks to be in order. The next step will be for one of the Arduino developers, cmaglie, to add your library to the Library Manager index. They let the requests build up for some days, then go through and do them all at once. There is a bit of a pile now so I suspect this will happen pretty soon.