Skip to content

cdelor02/robothand

Repository files navigation

Directed Study: Department of Computer Science, Tufts University

Repo for my directed study project, 2019-2020 academic year

Resources for using rosserial and rosserial_arduino:

Necessary materials:

Note for Ubuntu users : Before doing any of this work, you must run sudo chmod a+rw /dev/ttyACM0, which gives read/write access to the serial port to which the Arduino is connected. If there are issues, consult this Arduino forum.

Printing the CAD parts:

The pointer, middle, ring, and pinky fingers are all constructed with one print each of fingertip.stl, fingermiddle.stl, and fingerbase.stl. The thumb is composed of just two segments, fingertip.stl and fingerbase.stl. The palm is made from one piece, palm.stl. If the fingers have difficulty printing in large batches, try printing at most 3 segments at once on the print bed.

Installation and running the test publisher with the hand subscriber:

  1. Clone or download this repo into your ROS workspace
  2. Run catkin_make in your workspace, and properly source it
  3. Once that finishes, run roscore
  4. Open the Arduino file servocontrol.ino in the Arduino IDE
  5. Select your board under Tools > Board > your_board_here, and ensure it says "Arduino as ISP" under Tools > Programmer
  6. Connect the Arduino to the computer with a USB to mini-USB cable, and click "Upload" to compile and upload the code to the board
  7. While still in the catkin workspace directory, in a new terminal window run rosrun rosserial_python serial_node.py _baud:=<your_baud_rate> _port:=/dev/ttyACM0
  8. Open joint_publish_test.py and ensure that the values the fingers are being set to are your desired values, being sure to save them.
  9. When ready, ensure the Arduino is connected to the computer via USB, as well as to the servo driver (as shown here), and the driver is receiving power and is connected to all the servos.
  10. In a new terminal window, run python /path/to/this/package/robothand/jointpublish/scripts/joint_publish_test.py, and watch the hand move to your configuration! If the script does not run, it is possible it needs executable permissions, so type chmod +x joint_publish_test.py into the terminal and try again. **NOTE: it is possible to send angles to the hand that your particular servos are not able to reach. Configure the code to match the limits of your servos.

**OTHER NOTE: the rosserial_python node must be run with Python2.X (it will not work with Python3)

Other resources used:

Library for controlling multiple servos (with servo driver board)

Installing the Arduino IDE on Ubuntu:

Wiring for the PC9685 servo driver board for Arduino

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

About

Repo for directed study project, [2019] - 2020

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published