exponenta event banner

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.81999 seconds.
Initializing ROS master on http://192.168.0.10:52091.
Initializing global node /matlab_global_node_10080 with NodeURI http://bat6315glnxa64:42943/
exampleHelperROSStartTfPublisher

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

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

Осмотрите TransformStamped объект.

showdetails(tform)
  Header          
    Stamp      
      Sec  :  1622228442
      Nsec :  578808864
    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

Завершение работы сети АФК.

rosshutdown
Shutting down global node /matlab_global_node_10080 with NodeURI http://bat6315glnxa64:42943/
Shutting down ROS master on http://192.168.0.10:52091.

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

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

rosinit
Launching ROS Core...
Done in 0.76826 seconds.
Initializing ROS master on http://192.168.0.10:54161.
Initializing global node /matlab_global_node_25282 with NodeURI http://bat6315glnxa64:35713/
exampleHelperROSStartTfPublisher

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

tftree = rostf;
waitForTransform(tftree,'camera_center','robot_base');
tform = getTransform(tftree,'camera_center','robot_base');
showdetails(tform)
  Header          
    Stamp      
      Sec  :  1622228083
      Nsec :  411312213
    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);

Завершение работы сети АФК.

rosshutdown
Shutting down global node /matlab_global_node_25282 with NodeURI http://bat6315glnxa64:35713/
Shutting down ROS master on http://192.168.0.10:54161.
Представлен в R2019b