Please select Into the mobile phone version | Continue to access the computer ver.
You need to log in before you can reply       Login | Register now

[Help] local_position_control in simulator vs in real life

Author: jjosephHMC 2017-4-13 06:56
0 1653
The ROS sample app moves the drone by making calls to drone->local_position_control(x, y, z, yaw) and incrementally changing the values for x, y, z, and yaw, with a short amount of sleep time. This seems to me that it must be using open loop control with no verification that the drone has actually reached the desired x, y, z, yaw. Indeed, when I run my code that mimics the sample app in the simulator, it works (marginally, with some error in movement). However, in flight, my drone (Matrice 600) runs through this code onboard, but doesn't actually go to the place it's directed. When programmed to elevate slowly to 10 meters immediately after takeoff, it drifts and actually goes downward and touches the ground.
The drone is carrying a small load of approximately 6 pounds. It flies just fine using the controller, and in the simulation, it does in fact elevate to 10 meters as expected.

Is there any way to enforce that the drone goes to the requested location? Can I implement pseudo-closed loop control?

I have tried using the member variable drone->local_position to determine its location and implement closed loop control this way, but within my callback, drone->local_position doesn't seem to get updated.

You need to log in before you can reply Login | Register now

Quick Reply Back to top Back to list
Quick Reply Back to top Back to list