I'm using ROS melodic with Gazebo 9.9.0 on an Ubuntu 18.04.2 LTS.
I'm implementing an autonomous node that uses A* algorithm to move a robot from one position to another. The robot will be on a Gazebo World.
My problem is when moves on diagonal, sometimes it hits a corner and can not continue moving.
For example, I want to move from cell (1,1) to cell(10,12). I'm using an ones and zeros grid that it is represented in Gazebo and I translate the cells into Gazebo world's locations. Moving from (1,1) to (10,12), I get this path:
The Path is -> (1,1) -> (2,2) -> (3,3) -> (4,4) -> (4,5) -> (5,6) -> (6,6) -> (7,6) -> (8,7) -> (9,7) -> (10,7) -> (11,7) -> (12,8) -> (11,9) -> (11,10) -> (10,11) -> (10,12)
Cell (1,1) is the top most left cell in map. The problem comes when it tries to move from (4,5) to (5,6). In the following picture, the robot is on cell (4,5) facing to cell (5,6), and if it moves, it will hit the corner.
The algorithm is doing this:
Is there any way to solve this problem or this is a problem attached to A* algorithm?
Originally posted by Elric on ROS Answers with karma: 71 on 2019-07-13
Post score: 0
Original comments
Comment by curi_ROS on 2019-07-15:
which local planner are you using?
Comment by Elric on 2019-07-15:
No local planner. I have implemented A*, and using Odometry and cmd_vel topics to move the robot.