Hi Abigail POP,
Let me answer your 1st question,
In Robotics Toolbox, there are many robot models predefined for our convenience. In robot models, some characteristics are also already defined which are DH parameters, some joint configurations, Base position, Tool position, Gravity direction, etc.
So, whenever we create an instance of a predefined robot model, all the above-mentioned characteristics are also created automatically along with it. When we try to print the instance of the predefined model, the predefined joint configurations table (2nd table) will also get printed along with the DH parameters table.
In the case of Puma560, there are 4 predefined joint configurations,
1. qz = Zero angle configuration (all joint angle is zero)
2. qr = Ready pose configuration (Vertical arm pose)
3. qs = Stretch pose configuration (Horizontal pose)
4. qn = Nominal pose configuration
Now, coming to your 2nd question,
There are some issues with the python script you wrote. They're not a syntax error, that's why it won't throw any error while compilation. It'll throw some output to the console because python automatically creates an empty variable whenever we use a new variable.
I'm assuming that, you want to plot the trajectory, make GIF and perform dynamics operations on "qt" joint variable. Variables "puma.q" and "puma.qd" will always throw you a empty (zero) array. So, replace "puma.q" to "qt.q" and
"puma.qd" to "qt.qd" to a part of your script as shown below.
qt = rtb.jtraj(puma.qz, q_pickup, 50)
puma.plot(qt.q,movie='panda1.gif')
tau = puma.rne(puma.qn, np.zeros((6,)), np.zeros((6,)))
i = puma.inertia(qt.q) #Not required in your script
c = puma.coriolis(qt.q, qt.qd) #Not required in your script
g = puma.gravload (qt.q) #Not required in your script
Also, the puma.accel() function is used incorrectly. Correct syntax is puma.accel(q, qd, torque).
Let us suppose two cases,
Case 1: Before replacing "puma.q" and "puma.qd" without syntax correction i.e.,
qdd = puma.accel(puma.q, tau, puma.qd)
print(qdd)
Here,
puma.q is a new empty array with all values zero i.e., [0,0,0,0,0,0] (1x6).
tau is a [1x6] non empty array.
puma.qd is a new empty array with all values zero i.e., [0,0,0,0,0,0] (1x6).
Hence, the usage and syntax is wrong but it'll get compiled successfully because compiler is doing it's work and according to compiler everything is good to go but technically it's wrong and giving wrong output.
Case 2: After replacing "puma.q" to "qt.q"and "puma.qd" to "qt.qd" with syntax correction i.e.,
qdd = puma.accel(qt.q, qt.qd, tau)
print(qdd)
Here,
qt.q is a [50x6] non empty matrix.
qt.qd is a [50x6] non empty matrix.
tau is a [1x6] non empty array.
Here, tau is a [1x6] array but we need [50x6] matrix to perform the operation correctly. So, compiler will use tau as [50x6] matrix by appending 49 more rows with [0,0,0,0,0,0] (1x6)arrays.
Now, the usage and syntax is correct and it'll get compiled successfully but technically it's also give the wrong output because of bad selection of matrices.
I hope, you understood it correctly. I tried my best to solve your query.
If you still have any query or face any issue, feel free to come back here and reply to this thread because it'll be beneficial for everyone.