Direct kinematics is generally best computed with algebraic or geometric methods rather than matrices since they only use effective (non-zero ) terms. But in any case, for a serial robot, direct kinematics is quite easy to compute. Inverse kinematics can be more tricky, depending of the choosen kinematics. I do not have a whole poppy assembled but if shoulder and wrist articulations (if we consider for instance, the arm) have coincident axis, resolving inverse kinematics should’nt require any sophisticated Library.
Howhever I have tested Peter CORKE Library, freely available (and partially implemented in pypot) and it works finely. But its a generic one, meaning it is intented to resolve any kind of motors combinations. So, it is not as safe and efficient than a dedicated piece of software. Another advantage is that Peter Corke Library is both implemented in Matlab and Python (with extensive documentation. A really great great work).