-
Notifications
You must be signed in to change notification settings - Fork 3
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
HSR in Gazebo hops #9
Comments
Are you using gazebo_ros2_control provided by hsr_project? |
I include the following repository in my workspace I tried |
You can determine whether you are using gazebo_ros2_control provided by hsr_project by checking if there are PID parameters. |
After launching the Gazebo simulator, I executed the following command.
The output was only one line.
I redid the whole build and the result was the same. How can I resolve this situation? |
Is issue #10 also caused by the same? |
I am trying to read the source code of gazebo_ros2_control provided by hsr_project. I am using the following commits as clues.
|
I think so.
It appears to be a mistake made during the release process. https://github.com/hsr-project/gazebo_ros2_control/tree/bugfix/activate-pid-control |
I tried the bugfix/activate-pid-control branch.
https://drive.google.com/file/d/1OTXw3h-Xx4kd6ZZtYbjjUlQZuD7QLl2c/view?usp=sharing |
I found that the problem has not yet been solved at all. ROS1 Gazebo ROS2 Gazebo (with bugfix/activate-pid-control branch) How can I resolve this situation? |
Could you please confirm the following three points?
|
This issue is not about the actual robot, but about the simulation. |
I'm sorry. I replied to the wrong place. It was meant for #11. |
@k-takeshita I would like to know if the phenomenon I point out in this issue happens only in my environment or also in yours. |
We recognize the "hopping" and "slipping" phenomena as known issues. |
@k-takeshita In your environment, does the HSR in Gazebo gradually turns even when no commands is given? Is this phenomenon the same as the "slip" you said? First of all I would like to prevent it from occurring. |
Using the Plot in Gazebo and rosbag , I observed a time series of values for each joint. All joints oscillate violently, especially The same thing was observed in ROS 1. The oscillations are also occurring, but their amplitude is much smaller. See the following screenshots. I suspect that the oscillations are caused by a time delay in the controller's processing. It is difficult for me to find out, so I added damping to the joints as an alternative.
With these two changes, the |
@k-takeshita Doesn't the HSR model need a PID controller for velocity control of the driving wheels? |
It hasn't been tried yet, but there's a possibility that the HSR model could benefit from a PID controller for velocity control of the driving wheels. The hopping issue seems to occur more frequently when there is a difference between the current value and the desired value of the arm_lift_joint at the start of its movement. |
I found that the cause of the HSR main body's rotation without command and joint vibration is wrist_roll_joint. Observing the wrist_roll_joint's effort in rosbag, I found that it oscillates. Even without changing the damping, by changing the D-gain of wrist_roll_joint from 10 to 2, the oscillation stopped and the HSR main body stopped rotating. I am not sure if this is the optimal cause. @k-takeshita How did you determine the PID gain of the joint? |
However, the slip phenomenon has not been eliminated at all. Friction is effective for translation, but not for rotation. This is a serious problem because changing the value of the coefficient of friction has no effect. I have seen other problems in Gazebo where the friction settings do not work and the objects slip. In fact, I experienced this with a gripper of some robot arm. @k-takeshita My biggest question is that the HSR simulator you provide for ROS 1 does not have the above problem. Do you use any special techniques (or cheats)? Please let me know them. |
I didn't make the gain adjustments, so I don't know how they were determined.
The only special modification in ROS1 is that the "read" function is performed every cycle. |
I may have fixed the bug. I found that in GazeboSystem::write(), SetForce() and SetPosition() were being executed simultaneously. hsr-project/gazebo_ros2_control#1 In addition, I introduced VELOCITY_PID with reference to POSITION_PID. The behavior was further improved. hsr-project/gazebo_ros2_control#2 I compared them in the response to the backward command. See the three screencasts below.
|
I am trying the MoveIt demo by using simulator. HSR in Gazebo hops abnormally.
Is there something wrong? How can I fix it?
Please see the linked video.
https://drive.google.com/file/d/1Hdsg1Qb3QVCVd3vdNc9-IqY4Cps98m-Y/view?usp=sharing
The text was updated successfully, but these errors were encountered: