У меня есть некоторые C++ код, в котором я дать turtlebot координату с помощью:Turtlebot не всегда ездить по прямой
goal.target_pose.pose.position.x = mypoint.point.x
goal.target_pose.pose.position.y = mypoint.point.y
Робот перемещается из одной точки в другую. Однако редко он делает это по прямой линии. Кажется, что черепаха начинает двигаться, прежде чем он начнет вращаться. Между точками нет никаких препятствий. Он способен добираться до каждой точки, но он имеет тенденцию двигаться в малой дуге между ними.
Любые идеи о том, как заставить робота двигаться по прямой линии, когда на пути нет препятствий?
Редактировать: Я использую turtlebot_bringup minimal.launch
и turtlebot_navigation gmapping_demo.launch
.
Всегда ли он перемещается в дугах или только после того, как ему сказали повернуться? Я думаю, что наиболее вероятное объяснение (хотя я и не использовал сам черепаха) состоит в том, что колеса движутся с несколько разными скоростями (возможно, из-за допусков в диаметре колеса), и у него нет встроенного гироскопа для автоматического правильно для эффекта. Может быть, есть способ калибровки, который вы можете применить? – Dave
Я согласен с тем, что сказал Дэйв. С почти любым проектом робота, над которым я работал, заставить робота ехать прямо - это самая сложная вещь. Вы должны проверить выходы ваших двигателей на осциллографе, чтобы увидеть, как выглядит их сигнал и сравнить. – KyleKW
Спасибо, но у него есть гироскоп, и он движется в идеальной прямой линии примерно на 1/3 времени. Если я перемещаю черепаху с помощью контроллера, он может двигаться и в совершенно прямой линии. –