9

If you're only using proportional force, then at some point it will be balanced by the force of gravity -- your error will converge on that balance, not zero. To compensate for the mass of the arm, you'll need to add an integral force term. This will increase over time to counterbalance the constant force of gravity. See also: this answer on the integral ...


8

Disclaimer! I will try to solve your problem but it may or may not solve the problem with your code! TL;DR: Two possible mistake in your code. In your pseudo-code, you are using transpose of jacobian instead of pseudo-inverse of jacobian (as suggested in your referenced slide). The other possible mistake is in the calculation of cross product in your ...


7

I would like to use P (proportional) controller for now. Just a proportional controller will never make your error stay at 0. Your system is not damped and a proportional controller acts like an undamped spring. Look at the controller equation that you wrote: τ=−K(θ−θd) and compare it to a spring equation: F=Kx or F=K(x1-x2) Your controller is acting ...


6

Writing the equations by hand and deriving them is certainly the best way to understand what is happening "in the background". Generating the equations and deriving them using a syombolics engine, like @SteveO suggested is essentially the same process but someone else, in this case a symbolic engine, is doing the work for you. There are however different ...


6

Yes, the Jacobian relates the joint velocities to end-effector velocity through this equation: $$ \mathbf{v}_e = \mathbf{J}(\mathbf{q}) \dot{\mathbf{q}} $$ Where $\mathbf{q}$ is the joint angles, $\dot{\mathbf{q}}$ is the joint velocities, and $\mathbf{v}_e$ is the end-effector velocity. As you can see, the Jacobian, $\mathbf{J}$, is configuration ...


5

Condition number and manipulability are measured at a specific joint configuration, not end-effector location. You already understand it correctly that the values change according to the robot configuration as they are computed from the Jacobian. You may also want to check out Yoshikawa's original paper on manipulability.


5

I think this is a matter of notations. In the given formula for $D(q)$, the matrices $J_{vi}$ and $J_{\omega i}$ are not simply the direct extraction of columns of the Jacobian of the system. $J_i$ is the matrix that relates $\dot{q}$ to the velocity (of the center of mass) of the link $i$. That is, if we write $v_1$ to denote the linear velocity of the ...


5

The workspace of a manipulator is strictly determined by its kinematics. Since kinematics only consider the geometry of motion, without regard to forces and torques needed to accomplish tasks, you need the dynamics (and controls) to determine what motion profiles are achievable within the workspace. But those dynamics do nothing to determine the workspace ...


5

A hint towards what the answer is given in the paper. Namely, one can use the generalized eigenvalue decomposition, which in this case can be formulated as finding eigenvalues $\lambda \in \mathbb{R}$ and eigenvectors $v \in \mathbb{R}^n$ such that $$ (\lambda\,\Lambda - K_d)\,v = 0. \tag{1} $$ Consider two distinct solutions $(\lambda_i,v_i)$ and $(\...


5

You essentially want to find the time derivative of a linear interpolation between two rotations. The easiest way to obtain this would probably to convert the rotation matrix between the two orientations to a axis-angle representation and the angular velocity would simply be the axis times the angle divided by $T$.


4

Welcome to Robotics.SE! This is not exactly my area of expertise, but let me give you a few pointers. A very common approach for controlling manipulators is to first design good joint velocity controllers, in the "multiple SISO" approach you mention. You would then use inverse kinematics to determine at each point in time what the joint velocities should be ...


4

You are tackling two non trivial problem at the same time 1. Inverse kinematics of an overactuated manipulator 2. Obstacle avoidance using the null space By definition of the null-space projection the solution you want will only be able to avoid obstacles which are not on the desired Cartesian trajectory to be followed during the task. Think about sliding ...


4

The Jacobian in that equation is from the joint velocity to the "spatial velocity" of the end effector. The spatial velocity of an object is a somewhat unintuitive concept: it is the velocity of a frame rigidly attached to the end effector but currently coincident with the origin frame. It may help to think of the rigid body as extending to cover the whole ...


4

Controllers type A more mathematical approach to the error. Suppose you have a close loop system like above. The equation is: $\hspace{2.5em}$ $Y(s) = \frac{G(s)C(s)}{1+G(s)C(s)} R(s)$ The error equation is: $\hspace{2.5em}$ $E(s) = R(s) - Y(s)$ $\hspace{2.5em}$ $E(s) = \frac{1}{1+G(s)C(s)} R(s)$ $\hspace{2.5em}[1]$ The final value theorem states ...


4

(EDITED TO CLARIFY PARENTHETICAL ABOUT CARTESIAN MANIPULATORS) Your equation is true in general only for those manipulators in which $J_a$ is independent of $\theta$ (such as with Cartesian manipulators). Otherwise, the expression is only true in the small (the region of $\theta$ close to $\theta_{t=0}$. The equation is not true in general because ...


4

The original manipulators referred to in that article were through-the-wall pantographs which moved radioactive materials without the human operator having direct contact with those materials. The end effectors of those manipulators did have direct contact with the materials - just not the human. Although the article is not specific about this, it seems ...


4

So it sounds like you have an external camera system to track the end effector position and orientation? In that case I would use QR codes or april tags. Stick a couple of these on your end effector, and make sure that you put enough of them that 1 is always visible from your camera. The apriltags library provides the ability to extract position and ...


4

The term "singularity" characterizes those configurations in the joint space where the Jacobian matrix loses rank and thus it is not directly invertible. The Jacobian, in turn, is used to remap a trajectory from the Cartesian space to the joint space. Therefore, if you plan the trajectory straight in the joint space, then you are not going to use the ...


3

The way you are describing it, DOM is the number of independent dimensions in $\vec q$. DOF is the number of independent dimensions in $\vec x$. In practice, a robotics engineer will use DOF to represent the number of independent actuators of the robot, which you are calling DOM. Better notation would be to call DOM the mobility of the system, as ...


3

The dynamics of robotic arms are fairly complex, especially when there are more than three joints to consider. The problem is that the movement of each joint moves all the links beyond it, which can induce torques at other joints. You have to consider how the movement of all links affects each individual joint. There is software that can automatically ...


3

I believe kinematic decoupling used to be the standard procedure for 6 DOF arms. (6R with spherical wrist). Where you would solve the 3 DOF position IK first, then 3 DOF orientation IK. If you have a spherical wrist, I don't think there is any reason why you can't decouple your problem like this. However, I assume you now have a 4 DOF arm to reach a 3D ...


3

We find this recent paper by Andrea Del Prete, Nicolas Mansard, Oscar Efrain Ramos Ponce, Olivier Stasse, Francesco Nori quite interesting: Implementing Torque Control with High-Ratio Gear Boxes and without Joint-Torque Sensors The authors presented a framework for implementing joint-torque control on position controlled robots.


3

Hopefully you still have only 4 rows in your DH matrix, not 8 as you said. I think you mean that your Jacobian matrix has 8 $\require{enclose} \enclose{horizontalstrike}{\text{rows}}$ columns. Your approach is close to correct, but it has one flaw. The flaw is when you make the transformation that you are calling the "first joint." Instead of letting ...


3

If you are already using Qt, then Q3 3D would be an obviuos choice for 3D representations. Gaming engines like Unity (C#/JavaScript) or the Unreal Engine (C++) are also a suitable choice for representing robots in 3D. You will find plenty of exmples like this. Using directly OpenGL is also an option, but if you want anything else then just simple 3D ...


3

Actually I wish to implement my own algorithm (like some variation of RRT) without MoveIt!/OMPL hence it is important for me to know all the details. I am really confused about this. Any explanations or links where I can find the details and understand them would be really helpful. OMPL and MoveIt have a ton of features that are already ...


3

The interpretation of error for a robot manipulator pose is subjective in terms of what is the error being used for. A robot manipulator pose is combination of both position (x, y, z) and the orientation (quaternions or euler angles) and thus, designing the error could partially or completely include all terms. Your representation of error is essentially ...


3

When you apply torque to the first joint, it makes the first link rotate. This means that the far end of the first link translates. Because the second joint pins the near end of the second link to the far end of the first link, this means that the near end of the second link must also move. In order for the second link to move, the pin in the second joint ...


3

There is not one correct DH Frame assignment, but there are many. Even if you do not get the same results, you might still have a correct frame assignment. The first, base frame at the root of the robot, sometimes called robroot frame is the reference frame, relative to this are the TCP coordinates defined, this is why it is needed. A this is a frame ...


3

Your problem statement is: using a bang-coast-bang acceleration profile with symmetric acceleration and deceleration phases, each of duration $T_s=\frac{T}{4}$. So, right off, you know the time spent in acceleration is $T/4$. The peak velocity is not $T/4$. I'll agree that your professor's notation is hard to read (for me at least), but it looks like ...


3

As you already have the Jacobian vector, I assume you also solved the inverse kinematics problem. I will refer to the IK problem as $f^{-1}$ In order to get the joint space equivalent of the Cartesian pose A (position and orientation, denoted as $X_A$) you can use the inverse kinematics: $$Q_A = f^{-1}(X_A) $$ similarly $$Q_B = f^{-1}(X_B) $$ (Please note ...


Only top voted, non community-wiki answers of a minimum length are eligible