I have a design task at hand and was wondering if someone out there has done something similar or knows of the way I should approach the following:
I would like to control individual joint velocities and would also like to have the ability to have open loop torque control of each motor. The reason being is I would like to use some modern control algorithms to control the robot with real-time feedback in both velocity control as well as torque control.
The stepper motors won’t have a simple torque control loop I imagine as the motor uses stepping to be controlled, so velocity control may be the only feasible option for Joints 1-3. (If I understand correctly, the CAN bus that sends data to the boards connected to the stepper which have their own internal PID control algorithm to control position of each joint, how can I go about controlling velocity with an internal PID controller on velocity, and is there a possibility for some sort of fake torque control)
I have read that the servo motors on Joints 4-6 have effort based control by changing the bit at some address on the data sent to them but am wondering how I can go about accessing this control with the libraries on the github, and using ROS to do all of this simply and easily.
I have been able to so far use the inverse kinematics service from ROS to get joint positions from xyz and quaternion and then publish to the joint trajectory topic successfully. But this method does not provide the ability to do real-time feedback control which is the what I would like to do.