ROS 2 TurtleBot3 игнорирует /cmd_vel из узла Python, но работает с CLIPython

Программы на Python
Ответить
Anonymous
 ROS 2 TurtleBot3 игнорирует /cmd_vel из узла Python, но работает с CLI

Сообщение Anonymous »

Я разрабатываю собственный контроллер Python для TurtleBot3 (Burger) с использованием ROS 2. Мой узел публикует сообщения Geometry_msgs/msg/Twist в теме /cmd_vel.
Проблема: когда я запускаю сценарий Python, робот не двигается. Однако, когда я проверяю тему с помощью echo /cmd_vel темы ros2, я ясно вижу, что мои сообщения публикуются. Кроме того, информация о теме ros2 --verbose подтверждает, что мой издатель и подписчик робота соединены (соответствующее качество обслуживания).
Как ни странно, если я вручную публикую команду через терминал, робот движется отлично: ros2 theme pub /cmd_vel Geometry_msgs/msg/Twist "{linear: {x: 0.10}}" -r 10
Клиент Flutter для настройки и кода (robot_connection_page.dart) отправляет команду JSON через WebSocket.

Код: Выделить всё

Future _testConnection() async {
// ... connection logic ...
debugPrint('Connected! Sending forward for 3 seconds...');

// Send forward commands
for (int i = 0; i < 30; i++) {
channel.sink.add(jsonEncode({'movement': 'forward'}));
await Future.delayed(const Duration(milliseconds: 100));
}
// ...
}
Вот мой фрагмент кода Python:

Код: Выделить всё

class TurtleBotController(Node):
def __init__(self):
super().__init__('turtlebot_controller')

# QoS is set to RELIABLE to match TurtleBot3 default
qos = QoSProfile(
reliability=ReliabilityPolicy.RELIABLE,
history=HistoryPolicy.KEEP_LAST,
depth=10
)
self.publisher_ = self.create_publisher(Twist, '/cmd_vel', qos)

def move_forward(self):
msg = Twist()
msg.linear.x = 0.25  # 

Подробнее здесь: [url]https://stackoverflow.com/questions/79843116/ros-2-turtlebot3-ignores-cmd-vel-from-python-node-but-works-with-cli[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»