Difference between revisions of "Disk-on-Disk Rolling Manipulation Project"

From Mech
Jump to navigationJump to search
Line 10: Line 10:
==Publication==
==Publication==
The initial version of this work which only deals with the balancing problem was presented at the 2012 ICRA.
The initial version of this work which only deals with the balancing problem was presented at the 2012 ICRA.
* J. Ryu, F. Ruggiero, and K. M. Lynch, "[http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6225044&tag=1 Control of nonprehensile rolling manipulation: Balancing a disk on a disk]", 2012 IEEE International Conference on Robotics and Automation (ICRA), pp. 3232–3237, 2012.
* J. Ryu, F. Ruggiero, and K. M. Lynch, "[http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6225044 Control of nonprehensile rolling manipulation: Balancing a disk on a disk]", 2012 IEEE International Conference on Robotics and Automation (ICRA), pp. 3232–3237, 2012.
The completed version of the two advanced tasks is being published in IEEE TRO (online version available).
The completed version of the two advanced tasks is being published in IEEE TRO (online version available).
* J. Ryu, F. Ruggiero, and K. M. Lynch, "[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6522171&sortType%3Dasc_p_Sequence%26filter%3DAND%28p_IS_Number%3A4359257%29 Control of nonprehensile rolling manipulation: Balancing a disk on a disk]", IEEE Transactions on Robotics, 2013.
* J. Ryu, F. Ruggiero, and K. M. Lynch, "[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6522171&sortType%3Dasc_p_Sequence%26filter%3DAND%28p_IS_Number%3A4359257%29 Control of nonprehensile rolling manipulation: Balancing a disk on a disk]", IEEE Transactions on Robotics, 2013.


==Experimental Set-up==
==Experimental Set-up==
While the details of the experimental set-up procedure are written in the manual here, we briefly present it here as follows. The hand is the lower disk, actuated by a harmonic drive DC motor (Harmonic Drive RH-8D 6006) equipped with a 50:1 harmonic drive gearhead and a 500 ppr quadrature encoder giving 100,000 counts per revolution at the output shaft. The commanded current input to the motor is provided through a motor amplifier (Copley Controls Junus 800-1468). The disk-on-disk system is mounted on an air table that provides frictionless support in a plane tilted 79.0 degrees with respect to horizontal (98.2 % of full gravity). Both hand and object are made of 1/4-inch thick acrylic and the object is encircled by a rubber band to increase friction.
'''While the detail of the experimental set-up procedure is written in the manual here, we briefly present it here as follows.''' The hand is the lower disk, actuated by a harmonic drive DC motor (Harmonic Drive RH-8D 6006) equipped with a 50:1 harmonic drive gearhead and a 500 ppr quadrature encoder giving 100,000 counts per revolution at the output shaft. The commanded current input to the motor is provided through a motor amplifier (Copley Controls Junus 800-1468). The disk-on-disk system is mounted on an air table that provides frictionless support in a plane tilted 79.0 degrees with respect to horizontal (98.2 % of full gravity). Both hand and object are made of 1/4-inch thick acrylic and the object is encircled by a rubber band to increase friction.


The hand control algorithm runs on a PC104 stack with a QNX real-time operating system (RTOS). In addition to the angular position data from the encoder of the hand, the controller utilizes the state of the object disk, which is determined using a high-speed vision system. The vision system, consisting of a PhotonFocus TrackCam camera, a Microenable III frame grabber, and a Windows PC, tracks two markers on the disk at 800 Hz, allowing estimation of the position and orientation of the disk at 800 Hz. The vision program, written in C++, sends the orientation of the disk to the controller PC104 stack via TCP/IP. The tracking markers may be high contrast passive markers (e.g., black on white) or active markers (LEDs in the current implementation).
The hand control algorithm runs on a PC104 stack with a QNX real-time operating system (RTOS). In addition to the angular position data from the encoder of the hand, the controller utilizes the state of the object disk, which is determined using a high-speed vision system. The vision system, consisting of a PhotonFocus TrackCam camera, a Microenable III frame grabber, and a Windows PC, tracks two markers on the disk at 800 Hz, allowing estimation of the position and orientation of the disk at 800 Hz. The vision program, written in C++, sends the orientation of the disk to the controller PC104 stack via TCP/IP. The tracking markers may be high contrast passive markers (e.g., black on white) or active markers (LEDs in the current implementation).


===Amplifier Set-up===
===Amplifier Set-up===
<ol>
<li>Connect the output of a DC power supply of 48 V to +HV and GND terminals of the amp using the following diagram. (Junus amp data sheets: "[http://www.copleycontrols.com/motion/pdf/Junus.pdf Junus.pdf])</li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>


===QNX (PC104) System===
===QNX (PC104) System===

Revision as of 11:31, 30 July 2013

Overview

Nonprehensile manipulation primitives such as rolling, sliding, pushing, and throwing are commonly used by humans but are often avoided by robots, who generally use grasping. Dynamic nonprehensile manipulation raises challenges in high-speed sensing and control, as the manipulated object is not in static equilibrium throughout the process which would be the case with standard grasping. An advantage, however, is that dynamics can be exploited to help the robot control object motions that would otherwise be impossible. Our long-term goal is to develop a unified framework for planning and control of dynamic robotic manipulation. A typical manipulation plan consists of a sequence of manipulation primitives chosen from a library of primitives, with each primitive equipped with its own feedback controller. Problems of interest include planning the motion of the manipulator to achieve the desired motion of the object and feedback control to stabilize the desired trajectory. As a first step to understand the nature of dynamic nonprehensile manipulation, we study feedback stabilization of a canonical rolling problem: balancing a disk-shaped object on top of a disk-shaped manipulator (referred to as the hand) in a vertical plane.

Tasks Accomplished

The balancing task of stabilization at the upright position is extended to more difficult problems when having the hand or object

  • rotate to a specific orientation, or
  • spin at a constant velocity.

We constrain the motion of the circular hand to rotation about its center. We derive control laws that stabilize the object to the balanced position under the kinematic assumption of rolling at all times. The basin of attraction is reduced when the contact is modeled using Coulomb friction, but it is still large with large friction coefficients. This work is successfully implemented using high-speed vision feedback.

Publication

The initial version of this work which only deals with the balancing problem was presented at the 2012 ICRA.

The completed version of the two advanced tasks is being published in IEEE TRO (online version available).

Experimental Set-up

While the detail of the experimental set-up procedure is written in the manual here, we briefly present it here as follows. The hand is the lower disk, actuated by a harmonic drive DC motor (Harmonic Drive RH-8D 6006) equipped with a 50:1 harmonic drive gearhead and a 500 ppr quadrature encoder giving 100,000 counts per revolution at the output shaft. The commanded current input to the motor is provided through a motor amplifier (Copley Controls Junus 800-1468). The disk-on-disk system is mounted on an air table that provides frictionless support in a plane tilted 79.0 degrees with respect to horizontal (98.2 % of full gravity). Both hand and object are made of 1/4-inch thick acrylic and the object is encircled by a rubber band to increase friction.

The hand control algorithm runs on a PC104 stack with a QNX real-time operating system (RTOS). In addition to the angular position data from the encoder of the hand, the controller utilizes the state of the object disk, which is determined using a high-speed vision system. The vision system, consisting of a PhotonFocus TrackCam camera, a Microenable III frame grabber, and a Windows PC, tracks two markers on the disk at 800 Hz, allowing estimation of the position and orientation of the disk at 800 Hz. The vision program, written in C++, sends the orientation of the disk to the controller PC104 stack via TCP/IP. The tracking markers may be high contrast passive markers (e.g., black on white) or active markers (LEDs in the current implementation).

Amplifier Set-up

  1. Connect the output of a DC power supply of 48 V to +HV and GND terminals of the amp using the following diagram. (Junus amp data sheets: "Junus.pdf)

QNX (PC104) System

Running the Program

  1. After mounting a camera, you must do the calibration. Due to the way the program is coded, you also need to find the center position of the upper disk at the upright position.
  2. Run the qnx program by typing ./qnxkit
  3. Qnxkit cmd.jpg
  4. Run the vision program [QNX Tracking.sln] on the vision computer. Run F5 on [qnx tracking.cpp].
  5. Then, click the two dots to track and press 'q'.
  6. On the qnx interface, type 'c'. Then it starts to calculate the control command (but, no current command is sent to the motor yet).
  7. By pressing 'm', the motor will now be enabled and start to run the control action.
  8. If something goes wrong with the motor, press 'q' to quit the program.