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/.