JSKAerialRobot / jsk_uav_forest

THe platform for the uav forest challenge
8 stars 10 forks source link

[Navigation] Discussion in going home motion #29

Closed fanshi14 closed 7 years ago

fanshi14 commented 7 years ago

@chibi314 @tongtybj

https://drive.google.com/open?id=0B-G59LPGm9CKbmEySFo5R0ZPWlE

Here is a demo for simple object avoidance and going home. I found that when going home, if uav is not facing the obstalces, it will be possible to crash the obstacle without perception for feedback.

image

So I suggest we have more discussions on going home action.

tongtybj commented 7 years ago

Very good and simple planning!

@chibi314 If we change the control to global whiling returning to home. It will be easier for @KahnShi to solve the above issue. However, I also realize the problem to using the global odometry for control.

To conclude, the options we have are:

  1. use local control mode for return(current method), but blind mode for obstacle avoidance according to the tree location we record before returning.
  2. use global control mode for return and same obstacle avoidance as approach phase, but the potential problem of the drift from integrated odometery.
chibi314 commented 7 years ago

Ok. I understood the problem. I think global control is the better one. The problem of the odometry drift matters only during returning home phase. Returning home phase doesn't take so much time, so it is not a big problem.

First, the circle motion is finished, the UAV goes to the place where it started the circle motion by local control(referring to the target tree with vision). Next, using global control(its odometry), the UAV turns around 180 degrees. Finally, using global control, it returns home. Ideally, the global position of the home is (0, 0), but may be drifted. So, the global position of home should be re-calculated. Given that the global tree position is (x1, y1) in the takeoff phase and (x2, y2) in the return home phase, the home position can be re-calculated as (x2-x1, y2-y1) (ideally, (0,0)).

chibi314 commented 7 years ago

sent PR #46 implemented this algorithm.

First, the circle motion is finished, the UAV goes to the place where it started the circle motion by local control(referring to the target tree with vision). Next, using global control(its odometry), the UAV turns around 180 degrees. Finally, using global control, it returns home. Ideally, the global position of the home is (0, 0), but may be drifted. So, the global position of home should be re-calculated. Given that the global tree position is (x1, y1) in the takeoff phase and (x2, y2) in the return home phase, the home position can be re-calculated as (x2-x1, y2-y1) (ideally, (0,0)).

tongtybj commented 7 years ago

46 #47 solved this