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

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

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

rosinit
Launching ROS Core...
Done in 0.63926 seconds.
Initializing ROS master on http://192.168.0.10:50498.
Initializing global node /matlab_global_node_60152 with NodeURI http://bat6312glnxa64:44887/
[pub,msg] = rospublisher('/pose','geometry_msgs/Pose');

Укажите подробную информацию положения. Сообщение содержит перевод (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_60152 with NodeURI http://bat6312glnxa64:44887/
Shutting down ROS master on http://192.168.0.10:50498.