rt_drivebot - drive a graphical robot[view code]
This function pops up a window with one slider for each joint. Operation of the sliders will drive the graphical robot on the screen. Very useful for gaining and understanding of joint limits and robot workspace.
The joint coordinate state is kept with the graphical robot and can be obtained using the rt_plot function. If q is specified it is used as the initial joint angle, otherwise the initial value of joint coordinates is taken from the graphical robot.
// following code could be used to drive a Puma 560 robot. exec <PATH>/models/rt_puma560.sce; // define the robot h0 = scf(0); a0 = h0.children; a0.tight_limits = "on"; a0.rotation_angles = [77, -50]; rt_plot(p560, qz); // draw it rt_drivebot(p560); // now drive it! // The following example shows how certain configurations may lead to // infinitely many solutions for the Inverse Kinematic Problem (IKP) p560_2 = rt_robot(p560); p560_2.name = "Puma 560 (2)"; // robot copy L = p560_2.links; L(3).A = 0; // Puma 560 without.. L(3).D = 0; // ..shoulder offset // It is known that when the wrist's frame origin lies on the axis of // the first revolute joint, we can actuate the joint itself with any // arbitrary value but the origin of the wrist frame won't move. q = [0, 0.3926991, %pi/4, 0, 0.2, 1]; // shoulder-singular config. rt_drivebot(p560_2, q); // changes to value of the // slider1 only, don't move // the wrist's frame origin
rt_ikine560paul, robot/rt_plot, rt_robot,
Corke, P.I. "A Robotics Toolbox for MATLAB", IEEE Robotics and Automation Magazine, Volume 3(1), March 1996, pp. 24-32