-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slow movement of the joints when starting up the system with ethercat_driver_ros2 #75
Comments
Hi @jaronski, |
Hi @mcbed here is the setup of the drive_control.yaml:
here is the config_controllers.yaml
the ros2_control xacro:
sudo dmesg -T: and the console output after launch the script without the joint_trajectory_controller:
when i start the joint_trajectory_controller and also rqt_joint_trajectory_controller i can move the drive via slider to 3.1415 (180) and then restart the driver and it moves back into the software limit 90 degrees. @mcbed maybe you have an idea why the joint starts to move without me sending a command to it?? |
OK i think i found a solution to the Problem. I know that there is a jitter on the encoder increments i have on the motor controller, so i guessed the "last_position_" changes in very small increments over time by this jitter and as the default position gets updated as long as i do not actively write a Target Position lets make a quick & dirty try and get the default position only once. So i declared an init_counter in the
so that solved my problem with the slowly moving revolute joint. Step2:
but i noticed when i put the factors in the config file my 0x607a Target Position gets a very large negativ value. so i thought hmm this might come from an overflow of
With these operations the problem was solved for me as far as i can tell. @mcbed just wanted to share that here so you can check if that also happens to your joints and you could consider bringing these changes into the ethercat_driver_ros2 or think of an alternative way. Best regards |
Hi @jaronski, |
@mcbed my pleasure and thank you for this fantastic driver 😉. Please keep me updated on the topic |
I have a question about your method. |
Hi, thanks for your solution. i have the same issues.
|
yes, thats correct. the factor is indeed = 1 |
yes i am not sure about it and maybe my solution isn't the best. |
Hi all, maybe someone can help me out with my problem.
So i have 4 revolute joints on the table and when i ros2 launch my bringup.launch.py starts:
Settings for the hardware joints:
Mode of operation: 8
Command Interface: position
State Interfaces: position velocity effort
joint_trajectory_controller:
the output looks good and everything starts up as expected but all 4 revolute joints start moving very slowly from their current position without me sending a joint_trajectory or starting the rqt_joint_trajectory_controller
the plotjuggler shows the joint_state of joint_0 but they move all when firing up the Software:
when i then start the rqt_joint_trajectory_controller and enable/disable it the values stay the same and nothing moves anymore.
I would like to understand why that happens as i need the drives to keep their actual position when restarting the driver. Thanks for your support
The text was updated successfully, but these errors were encountered: