Встроенная поддержка сообщения

MATLAB® поддерживает крупную библиотеку типов сообщений ROS. Эта тема покрывает, как MATLAB работает с сообщениями ROS путем описания структуры сообщения, ограничений для сообщений ROS, и поддержал типы данных ROS. Обратитесь к полному списку встроенных типов сообщений в конце этой статьи.

Для получения информации о сообщениях ROS 2 смотрите работу с Основными сообщениями ROS 2.

Структура сообщения ROS

В MATLAB хранятся сообщения ROS, когда указатель возражает. Поэтому все правила объектов указателя применяются, включая копирование, изменение и другие факторы производительности. Для получения дополнительной информации об объектах указателя смотрите Поведение объекта Указателя (MATLAB). Каждый указатель указывает на объект для того определенного сообщения, которое содержит информацию, относящуюся к тому типу сообщения. Тип сообщения имеет встроенную структуру для данных, которые он содержит.

Сообщения ROS хранят данные, относящиеся к тому типу сообщения, в некотором роде похожему на массивы структур. Каждый тип сообщения имеет определенный набор свойств с их соответствующими значениями, которые индивидуально сохранены и получены доступ. Можно в частности указать на и изменить каждое свойство самостоятельно. MessageType свойство каждого сообщения содержит тип сообщения как вектор символов. Кроме того, можно использовать showdetails функционируйте, чтобы просмотреть содержимое сообщения.

Вот демонстрационный 'geometry_msgs/Point', созданный в MATLAB с помощью rosmessage. Это содержит 3 свойства, соответствующие 3-D точке в координатах XYZ.

pointMsg = rosmessage('geometry_msgs/Point')
pointMsg = 

  ROS Point message with properties:

    MessageType: 'geometry_msgs/Point'
              X: 0
              Y: 0
              Z: 0

  Use showdetails to show the contents of the message

Можно получить доступ и изменить каждое свойство при помощи pointMsg указатель.

pointMsg.Y = 2
pointMsg = 

  ROS Point message with properties:

    MessageType: 'geometry_msgs/Point'
              X: 0
              Y: 2
              Z: 0

  Use showdetails to show the contents of the message

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

Ограничения ROS обмениваются сообщениями в MATLAB

Поскольку сообщения ROS используют независимые свойства, определенные сообщения с несколькими значениями не могут быть подтверждены. Поскольку каждое значение может быть установлено отдельно, сообщение не подтверждает свойства в целом сущность. Например, сообщение кватерниона содержит w, x, y и свойства z, но сообщение не осуществляет это, кватернион в целом допустим. При изменении свойств необходимо гарантировать, что вы обеспечиваете правила, требуемые для того сообщения.

Обменивайтесь сообщениями свойства могут также иметь множество типов данных. MATLAB использует правила, собиравшиеся ROS определить, каковы эти типы данных. Однако, если они должны использоваться в вычислениях, вам придется бросить типы данных к другому значению. Типы данных ROS не преобразуют непосредственно в типы данных MATLAB. Для подробного списка типов данных ROS и их эквивалентного MATLAB, смотрите Преобразования типа данных ROS.

Преобразования типа данных ROS

Типы сообщений ROS предопределили свойства и типы данных для значений тех свойств. Эти типы данных должны быть сопоставлены с типами данных MATLAB, которые будут использоваться в MATLAB. Эта таблица суммирует, как типы данных ROS преобразованы в типы данных MATLAB.

Тип данных ROSОписание MATLAB

bool

Булевская переменная / 8-битное целое число Без знака

logical

int8

8-битное целое число со знаком

int8

uint8

8-битное целое число без знака

uint8

int16

16-битное целое число со знаком

int16

uint16

16-битное целое число без знака

uint16

int32

32-битное целое число со знаком

int32

uint32

32-битное целое число без знака

uint32

int64

64-битное целое число со знаком

int64

uint64

64-битное целое число без знака

uint64

float32

32-битная плавающая точка IEEE

single

float64

64-битная плавающая точка IEEE

double

строка

Строка ASCII (utf-8 только)

char

время

Секунды и наносекунды как подписанные 32-битные целые числа

Time объект (см. rostime)

длительность

Секунды и наносекунды как подписанные 32-битные целые числа

Duration объект (см. rosduration)

Поддерживаемые сообщения

Вот расположенный в алфавитном порядке список поддерживаемых пакетов ROS. Пакет может содержать типы сообщений, сервисные типы или типы действия.

Чтобы получить полный список поддерживаемых типов сообщений, вызовите rosmsg list в окне Команды MATLAB.

ROS Toolbox поддерживает ROS и Гидро платформы Цвета индиго, но ваша собственная установка ROS может иметь различные версии сообщения. Чтобы перезаписать наш текущий каталог сообщений, можно использовать ROS Пользовательская Поддержка сообщения, чтобы сгенерировать новые определения сообщения.

При определении типов сообщений векторы вводимого символа должны совпадать с вектором символов, перечисленным в rosmsg list точно. Чтобы использовать пользовательские типы сообщений, MATLAB также обеспечивает пользовательский пакет поддержки сообщения. Для получения дополнительной информации смотрите ROS Пользовательская Поддержка сообщения.

ackermann_msgs
actionlib
actionlib_msgs
actionlib_tutorials
adhoc_communication
app_manager
applanix_msgs
ar_track_alvar
arbotix_msgs
ardrone_autonomy
asmach_tutorials
audio_common_msgs
axis_camera
base_local_planner
baxter_core_msgs
baxter_maintenance_msgs
bayesian_belief_networks
blob
bond
brics_actuator
bride_tutorials
bwi_planning
bwi_planning_common
calibration_msgs
capabilities
clearpath_base
cmvision
cob_base_drive_chain
cob_camera_sensors
cob_footprint_observer
cob_grasp_generation
cob_kinematics
cob_light
cob_lookat_action
cob_object_detection_msgs
cob_perception_msgs
cob_phidgets
cob_pick_place_action
cob_relayboard
cob_script_server
cob_sound
cob_srvs
cob_trajectory_controller
concert_msgs
control_msgs
control_toolbox
controller_manager_msgs
costmap_2d
create_node
data_vis_msgs
designator_integration_msgs
diagnostic_msgs
dna_extraction_msgs
driver_base
dynamic_reconfigure
dynamic_tf_publisher
dynamixel_controllers
dynamixel_msgs
epos_driver
ethercat_hardware
ethercat_trigger_controllers
ethzasl_icp_mapper
explorer
face_detector
fingertip_pressure
frontier_exploration
gateway_msgs
gazebo_msgs
geographic_msgs
geometry_msgs
gps_common
graft
graph_msgs
grasp_stability_msgs
grasping_msgs
grizzly_msgs
handle_detector
hector_mapping
hector_nav_msgs
hector_uav_msgs
hector_worldmodel_msgs
household_objects_database_msgs
hrpsys_gazebo_msgs
humanoid_nav_msgs
iai_content_msgs
iai_kinematics_msgs
iai_pancake_perception_action
image_cb_detector
image_exposure_msgs
image_view2
industrial_msgs
interaction_cursor_msgs
interactive_marker_proxy
interval_intersection
jaco_msgs
joint_states_settler
jsk_footstep_controller
jsk_footstep_msgs
jsk_gui_msgs
jsk_hark_msgs
jsk_network_tools
jsk_pcl_ros
jsk_perception
jsk_rviz_plugins
jsk_topic_tools
keyboard
kingfisher_msgs
kobuki_msgs
kobuki_testsuite
laser_assembler
laser_cb_detector
leap_motion
linux_hardware
lizi
manipulation_msgs
map_merger
map_msgs
map_store
mavros
microstrain_3dmgx2_imu
ml_classifiers
mln_robosherlock_msgs
mongodb_store
mongodb_store_msgs
monocam_settler
move_base_msgs
moveit_msgs
moveit_simple_grasps
multimaster_msgs_fkie
multisense_ros
nao_interaction_msgs
nao_msgs
nav2d_msgs
nav2d_navigator
nav2d_operator
nav_msgs
navfn
network_monitor_udp
nmea_msgs
nodelet
object_recognition_msgs
octomap_msgs
p2os_driver
pano_ros
pcl_msgs
pcl_ros
pddl_msgs
people_msgs
play_motion_msgs
polled_camera
posedetection_msgs
pr2_calibration_launch
pr2_common_action_msgs
pr2_controllers_msgs
pr2_gazebo_plugins
pr2_gripper_sensor_msgs
pr2_mechanism_controllers
pr2_mechanism_msgs
pr2_msgs
pr2_power_board
pr2_precise_trajectory
pr2_self_test_msgs
pr2_tilt_laser_interface
program_queue
ptu_control
qt_tutorials
r2_msgs
razer_hydra
rmp_msgs
robot_mechanism_controllers
robot_pose_ekf
roboteq_msgs
robotnik_msgs
rocon_app_manager_msgs
rocon_interaction_msgs
rocon_service_pair_msgs
rocon_std_msgs
rosapi
rosauth
rosbridge_library
roscpp
roscpp_tutorials
roseus
rosgraph_msgs
rospy_message_converter
rospy_tutorials
rosruby_tutorials
rosserial_arduino
rosserial_msgs
rovio_shared
rtt_ros_msgs
s3000_laser
saphari_msgs
scanning_table_msgs
scheduler_msgs
schunk_sdh
segbot_gui
segbot_sensors
segbot_simulation_apps
segway_rmp
sensor_msgs
shape_msgs
shared_serial
sherlock_sim_msgs
simple_robot_control
smach_msgs
sound_play
speech_recognition_msgs
sr_edc_ethercat_drivers
sr_robot_msgs
sr_ronex_msgs
sr_utilities
statistics_msgs
std_msgs
std_srvs
stdr_msgs
stereo_msgs
stereo_wall_detection
tf
tf2_msgs
theora_image_transport
topic_proxy
topic_tools
trajectory_msgs
turtle_actionlib
turtlebot_actions
turtlebot_calibration
turtlebot_msgs
turtlesim
um6
underwater_sensor_msgs
universal_teleop
uuid_msgs
velodyne_msgs
view_controller_msgs
visp_camera_calibration
visp_hand2eye_calibration
visp_tracker
visualization_msgs
wfov_camera_msgs
wge100_camera
wifi_ddwrt
wireless_msgs
yocs_msgs
zeroconf_msgs

Смотрите также

| |

Похожие темы