ethz-asl / dji_onboard_sdk_ros

Patched ROS packages for DJI onboard SDK (M100 tested), Deprecated, Please use our latest version from https://github.com/ethz-asl/mav_dji_ros_interface
30 stars 10 forks source link

Can't make it fly correctly. #7

Closed fx815 closed 6 years ago

fx815 commented 7 years ago

Dear flourish team,

Thanks for your amazing work! I'm now using your packages to do my project. It's basic rebuild your system under vicon environment. I have already built and launched the system successfully. I can always make M100 fly straight up in dji assistant 2 simulator when I call go to height 1.5m service and use a fake target in vicon. But the problem is I can't make it fly in real flight test correctly. It's always drifting to another direction when I call the go to height service. For MSF, I used viconpos_sensor_fix.yaml and the odometry I got is quite stable and basicly equal to vicon raw transform, but there are some warns like message drop and large time gap even I sync the time between Laptop and NUC every time. For MPC, I used the parameters in your paper. What could possibly be the problem? Should I do the system ID again for my own M100? Shouldn't it be the same? Actually I do made it fly correctly once but can't make it again. I tried delete all the things and install again, but still can't. Could you please tell me some methods to check the problems and what could be the reasons? Thank you!

Best regards, Feng

inkyusa commented 7 years ago

Dear, Feng I guess you already resolved the issue. The issue seems to related to serial-communication (bandwidth). We have also faced this issue when we set differently as shown https://github.com/ethz-asl/dji_onboard_sdk_ros/wiki/N1-Autopilot. Please tried to set exactly same as we set and try it. One more note is that please check your firmware version (should be V1.3.1.00). Hope this helps and enjoy the flight!

fx815 commented 7 years ago

Dear inkyusa, The problem is actually quite silly that we set a wrong world frame. But you are right, the serial-communicaiton do affect a lot. There was one time the USB-TTL chip is damaged, it was working but not enough baud rate, and the drone will fly step by step with a lot fluctuation. Now I have another problem though. The vertical stability seems not good enough with a +/- 10cm fluctuation. It's not shaking but moving up and down slowly. I checked the linear_mpc_node and it seems like you didn't use PID control in vertical direction as it said in your paper. Am I wrong? I'm not very sure about it. Also, the step response of all 3 directions seem slowly with some delay. Anyway, I really want to improve the performance. I planned to do system identification. Will that help? Any other suggestion? Thanks a lot for your work! Best regards, Feng

inkyusa commented 7 years ago

Dear, fx815 Yes, you are correct. The latest version uses linear MPC for vertical velocity control. The PID one was our previous implementation. System ID would help if you made modifications (change in x-y moment of inertial or mass.). Another possible is re-tune MPC controller gains (q and r) via dynamic reconfigure while hovering. Please keep in mind that online, real time gain tuning is dangerous and thus perform this with at least 2 people (one for safety pilot and one for ground station control).

It's off-topic but we are working (almost ready for public) on a new version that superiors our previous work in terms of control performance and ease-of-use. Please stay tuned and we will be back very shortly. Cheer,

inkyusa commented 7 years ago

@fx815 If this issue is already resolved. Please close this issue.