-
Notifications
You must be signed in to change notification settings - Fork 167
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
Drone unstable when the target yaw is more than 0.7 rad #237
Comments
@anandvgeorge It is hard to judge what the problem is without looking at a log |
@Jaeyoung-Lim can you please tell which all logs are relevant here? Should I enable DEBUG flag somewhere before uploading the logs? The output of geometric controller process doesn't show any errors or warnings though. |
@anandvgeorge I am talking about the flight log in uLOG format: https://docs.px4.io/main/en/log/flight_log_analysis.html |
Thank you for clarifying. Here is the log - https://logs.px4.io/plot_app?log=5d320854-89e9-48dd-b006-bc1b37f7294b. I have changed the yaw a few times. After final change, the drone drifted so much and later crashed to the ground. So, data after time 11:40 would probably not be useful. |
@anandvgeorge Thanks for sharing the log. The current implementation does not deprioritize yaw control. However, if you are flying a multicopter the control authority of yaw is quite limited, saturating yaw controls and potentially compromising attitude control performance on other axes. This is a well-known problem for quadrotor control (e.g. https://youtu.be/6YEMxFgToyg) You can try to address the problem in two ways
|
@Jaeyoung-Lim thank you for the explanation. I gave yaw values such that the error to reference is 0.1 rad (just after launching the geometric controller node and the drone hovers at 3m above starting point). The drone became unstable after 0.7 rad. Interestingly, when I launch I haven't tried reducing the maximum yaw rate, I will try that also. Edit: |
Hey @Jaeyoung-Lim . Just an update. I am really not sure if this issue is related to this controller. If the drone is in POSITION mode and when the yaw is more than 0.7 rad, the drone moves in a similar way. When the yaw is higher, there are setpoint inputs to attitudes and rates. Probably coming from pixhawk's controllers. Have you seen such an issue before? Or any clue what would be causing this? (Bad tuning maybe?). I will debug the issue and update here. Also, closing this issue, will reopen if a similar problem is seen after fixing this issue. |
Hi @anandvgeorge I also mentioned it in issue #186 @Jaeyoung-Lim Any comments on this? Thanks |
Hi @mzahana . From my observation, this issue was happening whenever I gave odometry input to pixhawk through I could not give VIO input properly to pixhawk by following the documentation, I tried in both simulation and on a real drone, the values were not proper when inspecting through GCS. Probably I miss some key parts while doing it (probably some frame transformations). Since I could control the drone directly with the geometric controller without publishing VIO to mavros, I stopped trying to fix it. |
@anandvgeorge Thanks for your reply. Actually, in my case, this is happening in SITL (simulation). So there is no VIO in this case, which is weird. |
In the SITL simulation, I took the pose of the drone from Gazebo and published it as odometry to mavros. When I stopped that and use that odometry values directly in geometric controller, the issue was gone. So, my issue was never with the geometric controller, rather incorrect VIO input to mavros, which affected drone flights in normal PX4 modes (ALTITUDE, HOLD etc.). |
@anandvgeorge Then, I used position and orientation from This solve my issue. |
Hi all!
I am simulating the iris drone in SITL mode. The geometric controller is given trajectories of type
trajectory_msgs::MultiDOFJointTrajectory
. It is generated by amav_local_planner
node. The flight looked unstable. I tuned rate and attitude controllers in PX4, and adjusted the gain values of the geometric controller such that the drone hovers at a point. Even after this, whenever a trajectory is given, the drone starts to move and after a point, it flies in unstable manner.After spending much time, I observed that if the target yaw value is more than 0.7 rad (absolute value), the drone goes unstable. To verify this, I hovered the drone with rate commands, and published yaw values through yawtarget topic. The drone rotates to the desired target yaw. If the absolute value is more that 0.7rad, it loses control and moves sideways. As soon as I set a smaller values (-0.7 to 0.7), the drone comes back to the hovering point and stabilises there. Similar observation is made if I give a trajectory; if I provide a small yaw target by publishing it while the drone tries to follow the trajectory, the drone reaches the goal (of course, not following the given trajectory).
Can anyone explain why this is happening? Or how to fix this problem?
Thanks in advance.
The text was updated successfully, but these errors were encountered: