MATLAB® поддерживает крупную библиотеку типов сообщений ROS. Эта тема покрывает, как MATLAB работает с сообщениями ROS путем описания структуры сообщения, ограничений для сообщений ROS, и поддержал типы данных ROS. Обратитесь к полному списку встроенных типов сообщений в конце этой статьи.
Для получения информации о сообщениях ROS 2 смотрите работу с Основными сообщениями ROS 2.
В 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 используют независимые свойства, определенные сообщения с несколькими значениями не могут быть подтверждены. Поскольку каждое значение может быть установлено отдельно, сообщение не подтверждает свойства в целом сущность. Например, сообщение кватерниона содержит w, x, y и свойства z, но сообщение не осуществляет это, кватернион в целом допустим. При изменении свойств необходимо гарантировать, что вы обеспечиваете правила, требуемые для того сообщения.
Обменивайтесь сообщениями свойства могут также иметь множество типов данных. MATLAB использует правила, собиравшиеся ROS определить, каковы эти типы данных. Однако, если они должны использоваться в вычислениях, вам придется бросить типы данных к другому значению. Типы данных ROS не преобразуют непосредственно в типы данных MATLAB. Для подробного списка типов данных ROS и их эквивалентного MATLAB, смотрите Преобразования типа данных ROS.
Типы сообщений ROS предопределили свойства и типы данных для значений тех свойств. Эти типы данных должны быть сопоставлены с типами данных MATLAB, которые будут использоваться в MATLAB. Эта таблица суммирует, как типы данных ROS преобразованы в типы данных MATLAB.
Тип данных ROS | Описание | MATLAB |
---|---|---|
bool | Булевская переменная / 8-битное целое число Без знака |
|
int8 | 8-битное целое число со знаком |
|
uint8 | 8-битное целое число без знака |
|
int16 | 16-битное целое число со знаком |
|
uint16 | 16-битное целое число без знака |
|
int32 | 32-битное целое число со знаком |
|
uint32 | 32-битное целое число без знака |
|
int64 | 64-битное целое число со знаком |
|
uint64 | 64-битное целое число без знака |
|
float32 | 32-битная плавающая точка IEEE |
|
float64 | 64-битная плавающая точка IEEE |
|
строка | Строка ASCII (utf-8 только) |
|
время | Секунды и наносекунды как подписанные 32-битные целые числа |
|
длительность | Секунды и наносекунды как подписанные 32-битные целые числа |
|
Вот расположенный в алфавитном порядке список поддерживаемых пакетов 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
rosmessage
| rosmsg
| showdetails