Преобразуйте ROS- Pose Сообщение к однородному преобразованию

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

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

rosinit
Launching ROS Core...
Done in 0.7184 seconds.
Initializing ROS master on http://192.168.0.10:53611.
Initializing global node /matlab_global_node_69175 with NodeURI http://bat6315glnxa64:45087/
[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. Блок Преобразования Координат затем преобразует положение (перемещение) и кватернион в однородное преобразование.

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

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_69175 with NodeURI http://bat6315glnxa64:45087/
Shutting down ROS master on http://192.168.0.10:53611.