Преобразуйте сообщение Pose ROS в гомогенное преобразование

Эта модель подписывается на сообщение Pose в сети ROS. Используйте селекторы шины, чтобы извлечь вращение и векторы сдвига. Блок Coordinate Transformation Conversion берет вектор вращения (углы Эйлера) и вектор сдвига в и дает гомогенное преобразование для сообщения.

Соединитесь с сетью ROS. Создайте издателя для темы '/pose' с помощью типа сообщения 'geometry_msgs/Pose'.

rosinit
[pub,msg] = rospublisher('/pose','geometry_msgs/Pose');
Initializing ROS master on http://bat6320glnxa64:40057/.
Initializing global node /matlab_global_node_31321 with NodeURI http://bat6320glnxa64:33973/

Укажите подробную информацию положения. Сообщение содержит перевод (Position) и кватернион (Orientation), чтобы выразить положение. Отправьте сообщение через издателя.

msg.Position.X = 1;
msg.Position.Y = 2;
msg.Position.Z = 3;
msg.Orientation.X = sqrt(2)/2;
msg.Orientation.Y = sqrt(2)/2;
msg.Orientation.Z = 0;
msg.Orientation.W = 0;

send(pub,msg)

Откройте модель 'pose_to_transformation_model'. Эта модель подписывается на тему '/pose' в ROS. Селекторы шины извлекают кватернион и радиус-векторы из сообщения ROS. Блок Coordinate Transformation Conversion затем преобразовывает положение (перевод) и кватернион к гомогенному преобразованию.

Для получения дополнительной информации осмотрите селектор шины в модели, чтобы видеть, как информация о сообщении извлечена.

open_system('pose_to_transformation_model.slx')

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

Измените положение или компоненты ориентации сообщения. Снова пошлите сообщение и модель выполнения, чтобы видеть изменение в гомогенном преобразовании.

msg.Position.X = 4;
msg.Position.Y = 5;
msg.Position.Z = 6;
send(pub,msg)

Завершите работу сети ROS.

rosshutdown
Shutting down global node /matlab_global_node_31321 with NodeURI http://bat6320glnxa64:33973/
Shutting down ROS master on http://bat6320glnxa64:40057/.