mgigliaParticipantMarch 6, 2019 at 10:36 pmPost count: 4
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.
Any direction on this would be immensely helpful.
Thank you guys!
Michael GigliaEdouard RenardKeymasterMarch 26, 2019 at 10:51 amPost count: 239
Unfortunately, doing torque control on NiryoStepper is not possible.
Currently we’re only handling position control (through ros_control and in the firmware of the motor). You might be able to do velocity control but with quite some modifications in the code.
Also, there is no PID loop on the NiryoStepper directly. The PID control is executed on the Raspberry Pi, through the ros_control joint trajectory controller.
You must be logged in to reply to this topic.