TransformStamped

Создайте сообщение преобразования

Описание

TransformStamped объект является реализацией geometry_msgs/TransformStamped тип сообщения в ROS. Объект содержит метаинформацию о самом сообщении и преобразовании. Преобразование имеет поступательный и вращательный компонент.

Создание

Описание

пример

tform = getTransform(tftree,targetframe,sourceframe) возвращает последнее известное преобразование между двумя координатными системами координат. Преобразования структурированы как 3-D перевод (вектор с 3 элементами) и 3-D вращение (кватернион).

Свойства

развернуть все

Это свойство доступно только для чтения.

Тип сообщения сообщения ROS, возвращенного как вектор символов.

Типы данных: char

Это свойство доступно только для чтения.

Сообщение Заголовка ROS, возвращенное как Header объект. Это сообщение заголовка содержит MessageType, последовательность (Seq), метка времени (Stamp), и FrameId.

Вторая координатная система координат, чтобы преобразовать точку в в виде вектора символов.

Это свойство доступно только для чтения.

Сообщение преобразования в виде Transform объект. Объект содержит MessageType с Translation вектор и Rotation кватернион.

Функции объекта

applyПреобразуйте сущности сообщения в целевую систему координат

Примеры

свернуть все

Этот пример смотрит на TransformStamped возразите, чтобы показать глубинную структуру TransformStamped Сообщение ROS. После подготовки сети и преобразований, можно создать дерево преобразования и получить преобразования между определенными системами координат. Используя showdetails позволяет вам смотреть информацию в преобразовании. Это содержит ChildFrameId, Header, и Transform.

Запустите сеть ROS и установите преобразования.

rosinit
Launching ROS Core...
Done in 0.66555 seconds.
Initializing ROS master on http://192.168.0.10:57372.
Initializing global node /matlab_global_node_71916 with NodeURI http://bat6312glnxa64:37955/
exampleHelperROSStartTfPublisher

Создайте дерево преобразования и ожидайте дерева, чтобы обновиться. Получите преобразование между основой робота и ее центром камеры.

tftree = rostf;
waitForTransform(tftree,'camera_center','robot_base');
tform = getTransform(tftree,'camera_center','robot_base');

Смотрите TransformStamped объект.

showdetails(tform)
  Header          
    Stamp      
      Sec  :  1629897978
      Nsec :  972465340
    Seq     :  0
    FrameId :  camera_center
  Transform       
    Translation    
      X :  0.5
      Y :  0
      Z :  -1
    Rotation       
      X :  0
      Y :  -0.7071067811865476
      Z :  0
      W :  0.7071067811865476
  ChildFrameId :  robot_base

Доступ к Translation вектор в Transform свойство.

trans = tform.Transform.Translation
trans = 
  ROS Vector3 message with properties:

    MessageType: 'geometry_msgs/Vector3'
              X: 0.5000
              Y: 0
              Z: -1.0000

  Use showdetails to show the contents of the message

Остановите издателя преобразования в качестве примера.

exampleHelperROSStopTfPublisher

Сеть Shutdown ROS.

rosshutdown
Shutting down global node /matlab_global_node_71916 with NodeURI http://bat6312glnxa64:37955/
Shutting down ROS master on http://192.168.0.10:57372.

Примените преобразование от TransformStamped возразите против PointStamped сообщение.

Запустите сеть ROS и установите преобразования.

rosinit
Launching ROS Core...
Done in 0.6277 seconds.
Initializing ROS master on http://192.168.0.10:55024.
Initializing global node /matlab_global_node_25971 with NodeURI http://bat6312glnxa64:39757/
exampleHelperROSStartTfPublisher

Создайте дерево преобразования и ожидайте дерева, чтобы обновиться. Получите преобразование между основой робота и ее центром камеры. Смотрите преобразование.

tftree = rostf;
waitForTransform(tftree,'camera_center','robot_base');
tform = getTransform(tftree,'camera_center','robot_base');
showdetails(tform)
  Header          
    Stamp      
      Sec  :  1629897918
      Nsec :  452432226
    Seq     :  0
    FrameId :  camera_center
  Transform       
    Translation    
      X :  0.5
      Y :  0
      Z :  -1
    Rotation       
      X :  0
      Y :  -0.7071067811865476
      Z :  0
      W :  0.7071067811865476
  ChildFrameId :  robot_base

Точка формирования данных, чтобы преобразовать. Вы могли также получить это сообщение точки от сети ROS.

pt = rosmessage('geometry_msgs/PointStamped');
pt.Header.FrameId = 'camera_center';
pt.Point.X = 3;
pt.Point.Y = 1.5;
pt.Point.Z = 0.2;

Примените преобразование к точке.

tfpt = apply(tform,pt);

Сеть Shutdown ROS.

rosshutdown
Shutting down global node /matlab_global_node_25971 with NodeURI http://bat6312glnxa64:39757/
Shutting down ROS master on http://192.168.0.10:55024.
Введенный в R2019b