My goal is to figure out a system where I can declare the shape of a robot like this (armature size, number of joints, offsets etc) to create a virtual model of the robot.
This sounds like URDF.
Now, I’m sure there are systems and packages that do all the math for this already, so what tools/libraries do you guys use to do modeling like this?
It is normal to use ROS to send instructions and receive feedback from robots, you can also setup a simulated environment with ROS and Gazebo.
ROS can be a bit rough to get into, if you need any help, you can post on the ROS community.