# Tag Info

6

Many control strategegies (PID is not neceserily one of these) are computing some of their parameters from your system. If you do not want to model your system yourself (or play around with it until you identify its charecteristics) you can use Matlab to identify your system model using the system identification toolbox. The System Identification Toolbox ...

6

There are very few problems having both toolboxes installed. The biggest gotcha is the function angdiff() which is provided by both toolboxes but defined differently. If you want to stick with MATLAB 2014b you should use RTB9.10.

5

the Simulink diagram is straightforward. It is a matter of connecting blocks. For the differential equations provided in your post, the simulink is For $u_1$ and $u_2$, I've chosen the unit step. You can change that of course. For $L$, I've set it to 0.5 since you didn't provide the actual value. The result of the position of the vehicle is shown below:

5

Welcome to Robotics, PaoloH! This is a fantastic question for Robotics - It has some Matlab/Simulink, some control theory, some spatial (quaternion) representations, etc. Robotics is the place to come when your question spans multiple fields! In looking at your question, the thing that I noticed is that your reference quaternion is $[0; 1; 0; 1]$. It is not ...

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

As extension to this answer, I'd like to share with the community a Simulink model implementing the system described above. It does not represent a solution for the code reported by CroCo but it may give a better insight and, as such, it might be helpful. The system is depicted below: In red we have the blocks running at $1\,\text{KHz}$, which deal with ...

4

You can use the 'simplify' command , e.g : a=simplify(A*B) .This command is calculating some trigonometric functions thus making your expression shorter .

4

The MATLAB tutorial doesnt cover this aspect well about when you have matlab and gazebo running on the same linux machine with no virtual box. Change your linux ethernet interface ip address statically using: sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0 assign to ros master the same ip address using: export ROS_MASTER_URI=http://192.168.1....

4

There are quite a few things wrong here. I'll split them into two sections: technical errors, and coding warnings. Technical Errors: You are not calculating your angles from accelerometer readings correctly. Consider the arguments in general - they are the normalized accelerometer readings on each axis. You then take the inverse cosine of these. So, if ...

4

Ideal solution can be defined in many ways. The simplest way to choose one is to compare which of the 8 solutions is closest to your current pose in joint space. This is usually a good idea if you are moving along a line (or similar defined trajectores). In practics some robot manufactruers have solved this using the status and turn variables. These ...

4

Both state space representations are equivalent. For example the eigenvalues of the two closed-loop system matrices should be the same. However when implementing LQG you only have access to the outputs and the variables you introduced yourself, so either $\hat{x}$ or $\tilde{x}$. But you are still limited by the given dynamics of the states of the system you ...

4

The prediction step generates a new set of states from the old set of states. The motion model of the system is used to make this best estimate of what we think the new state might be. The motion model basically uses the information about the previous state and the current control input to determine the new state. Some noise is also added for stochasticity. ...

3

Matlab has a package called Simscape that you can use for modeling physical systems in general. I would just caution you up front that Simscape is almost more like a plugin manager in that it enables other modules and doesn't offer a terrific amount of content on its own. This means you get to buy Simscape, then buy whatever other toolboxes you want that ...

3

I use CAD software to generate 3D models, convert those 3D models to an STL format, then load those STL files to Matlab with the following script: function [points,success] = LoadSTL(path) % LoadSTL loads an ASCII STL file with units in [mm]. % The output is a structure array where each element in the array is % a vertex. % % [points , success] = LoadSTL(...

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

It really doesn't sound very unexpected for your equations to become this long. Something that might help a little, is using assumptions for defining symbolic variables. x = sym('x','real'); y = sym('y','positive'); z = sym('z','integer'); t = sym('t','rational');

3

So I'll point out what might be some problems, at-a-glance, but wow this is one of the longest questions I've seen here. I'm pretty swamped with real-life stuff at the moment, so I'll just point these few issues out, you try them, update the question with the results (please don't respond with new information in comments on this answer), and then if it's ...

3

Brief process for pole placement in Matlab: Check that the system is actually controllable. . nStates = size(A,1); R = zeros(nStates,0); for n = 1:nStates R(:,n) = (A^(n-1))*B; end if rank(R) == nStates disp('Controllable'); else disp('Not controllable'); end Find the open-loop poles. Get their natural frequencies. . olPoles = eig(A); wns ...

3

You appear to be using a third-party toolbox, the Robotics Toolbox. If it's not running in Simulink, then it might not run in Simulink. If you want something that does, try the official toolbox. Mathworks generally offers trials of all their toolboxes. Your first error, "Simulink does not have enough information to determine the output size of this block," ...

3

The MATLAB function block in Simulink has some limitations. The fact that Link.m is referred to as a function not a class is a worry. I recreated your Simulink model and get similar error messages, basically Simulink can't convert these classes into C code which it needs to do in order to run the simulation. You could try putting all your code into a ...

3

It looks like you're doing this in a very round-about manner. You said, The matlab function in sumlink is supposed to read the received ASCII characters and add them to a variable until it reaches the end character '>'. It looks like you are thinking the "signed numbers" are coming in as a string that you'll read one digit at a time, where the entire ...

3

Torque is pretty easy to calculate for a single static arm configuration. Torque is just the length of the moment arm * the perpendicular force. And it is easy to decompose the problem into X and Y components, then sum. So in your example you would have the torque about joint 1 to be: $$T_1 = a * F_y + b * F_x$$ (Assuming $F_x$ and $F_y$ are in the ...

3

This is really a lot to look at, but the most glaring issue I noticed off the bat is your definition of the control signal $u(t)$. What is the input to your controller? What should be the input to your controller? What is the output of the controller? State feedback controllers (and LQR controllers) attempt to drive the system states to zero. The control ...

3

If you understand how relative pose estimation works in theory, it should be quite trivial to translate it into OpenCV code. First, you can pick any feature detection/description approach you like (say SIFT and brute force matching) and obtain a list of matches. But here, you need to be absolutely sure there is overlap between the images: because without ...

3

:EDIT: Your numbers must be integers POSITIVE INTEGERS. (link) This is probably the root of the trouble you're having. Interesting that the paper didn't mention anything about this. I'm not sure how they arrived at the encrypted control parameters but, as I mentioned below, it's not my field so I haven't "digested" the paper. In any event, RSA ...

3

I changed the code and now it works properly. rob.Xtree{1} = rotx(1.57) * xlt([0 0 0]); rob.Xtree{2} = roty(1.57) * xlt([0.15,0,0]); rob.Xtree{3} = xlt([0.34 0 0]);

2

When working with robotic matrices, such as transforms or dynamics, long-long-long equations are usually expected when everything is numerical. Using a symbolic platform such as MuPad or Maple will allow you to easily simplify the matrices symbolically (usually by using trigonometric identities). Cheers,

2

Have you tried the line() function, which plots a straight line on a figure? You do something like imshow(myImage); hold on line(X, Y); Check help line for details.

2

The information matrix is the inverse of the covariance matrix. In this case, the covariance is over the variables (x,y,z,qx,qy,qz). It is assumed that your quaternion is normalized to be unit magnitude. You should be able to get an estimate of the information matrix from the ICP. Edit: In general the covariance estimate can be found by the following ...

2

Long formulas are to be expected. I actually have derived such equations of motion for a planar RRRR manipulator. I assumed real symbolic variables assume(A, 'real') and run simplify(). Generating code with MATLAB also creates intermediate variables. For the code output (in C) of a lower-triangular column-major order D(q) matrix, I got the following (after ...

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