joint_trajectory_controller is used for executing joint space trajectories on a list of given joints. The trajectories to the controller are sent using the action interface, control_msgs::FollowJointTrajectoryAction, in the follow_joint_trajectory namespace of the controller.
Now, let's learn how to model the robot arm.