В этом примере показано, как настроить дерево преобразования ROS и преобразовать системы координат на основе информации о дереве преобразования. Это использует преобразования с буфером времени, чтобы получить доступ к преобразованиям в разное время.
Создайте дерево преобразования ROS. Используйте rosinit
соединяться с сетью ROS. Замените ipaddress
с вашим адресом сети ROS.
Initializing global node /matlab_global_node_14346 with NodeURI http://192.168.17.1:56312/
Посмотрите на доступные системы координат на дереве преобразования.
ans = 36×1 cell
{'base_footprint' }
{'base_link' }
{'camera_depth_frame' }
{'camera_depth_optical_frame'}
{'camera_link' }
{'camera_rgb_frame' }
{'camera_rgb_optical_frame' }
{'caster_back_link' }
{'caster_front_link' }
{'cliff_sensor_front_link' }
{'cliff_sensor_left_link' }
{'cliff_sensor_right_link' }
{'gyro_link' }
{'mount_asus_xtion_pro_link' }
{'odom' }
{'plate_bottom_link' }
{'plate_middle_link' }
{'plate_top_link' }
{'pole_bottom_0_link' }
{'pole_bottom_1_link' }
{'pole_bottom_2_link' }
{'pole_bottom_3_link' }
{'pole_bottom_4_link' }
{'pole_bottom_5_link' }
{'pole_kinect_0_link' }
{'pole_kinect_1_link' }
{'pole_middle_0_link' }
{'pole_middle_1_link' }
{'pole_middle_2_link' }
{'pole_middle_3_link' }
⋮
Проверяйте, доступно ли желаемое преобразование теперь. В данном примере проверяйте на преобразование от 'camera_link'
к 'base_link'
.
Получите преобразование в течение 3 секунд с этого времени. getTransform
функция будет ожидать, пока преобразование не становится доступным с заданным тайм-аутом.
Создайте сообщение ROS, чтобы преобразовать. Сообщения могут также быть получены от сети ROS.
Преобразуйте сообщение ROS к 'base_link'
система координат с помощью желаемого времени, ранее сохраненного.
Дополнительный: можно также использовать apply
с сохраненным tform
применять это преобразование к pt
сообщение.
Закройте сеть ROS.
Shutting down global node /matlab_global_node_14346 with NodeURI http://192.168.17.1:56312/