TransformStamped

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

Описание

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

Создание

Синтаксис

tform = getTransform(tftree,targetframe,sourceframe)

Описание

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

rosinit
Initializing ROS master on http://ah-sradford:11311/.
Initializing global node /matlab_global_node_28474 with NodeURI http://ah-sradford:65007/
exampleHelperROSStartTfPublisher

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

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

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

showdetails(tform)
  ChildFrameId :  robot_base
  Header          
    Seq     :  20
    FrameId :  camera_center
    Stamp      
      Sec  :  1512065171
      Nsec :  111000064
  Transform       
    Translation    
      X :  0.4999999999999998
      Y :  0
      Z :  -1
    Rotation       
      X :  0
      Y :  -0.7071067811865475
      Z :  0
      W :  0.7071067811865476

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

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

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

  Use showdetails to show the contents of the message

Сеть Shutdown ROS.

rosshutdown
Shutting down global node /matlab_global_node_28474 with NodeURI http://ah-sradford:65007/
Shutting down ROS master on http://ah-sradford:11311/.

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

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

rosinit
Initializing ROS master on http://ah-sradford:11311/.
Initializing global node /matlab_global_node_71764 with NodeURI http://ah-sradford:62552/
exampleHelperROSStartTfPublisher

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

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

Точка формирования данных, чтобы преобразовать. Вы могли также получить это сообщение точки от сети 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_71764 with NodeURI http://ah-sradford:62552/
Shutting down ROS master on http://ah-sradford:11311/.

Представленный в R2015a