主要内容

内置消息支持万博1manbetx

马铃薯®万博1manbetx支持一个大型ROS消息类型库。本主题介绍了MATLAB如何通过描述消息结构,ROS消息的限制和支持的ROS数据类型来使用ROS消息。万博1manbetx请参阅本文末尾的内置消息类型的完整列表。

有关ROS 2消息的信息,请参阅使用基本的ROS 2消息

ROS消息结构

在MATLAB中,ROS消息存储为句柄对象。因此,句柄对象的所有规则适用,包括复制,修改和其他性能考虑。有关处理对象的更多信息,请参阅处理对象行为。每个句柄都指向该特定消息的对象,其中包含与该消息类型相关的信息。消息类型具有它包含的数据的内置结构。

ROS消息以类似于结构阵列的方式存储与该消息类型相关的数据。每个消息类型都具有特定的属性集,其对应的值单独存储和访问。您可以专门指向并自己修改每个属性。这MessageType.每个消息的属性包含作为字符向量的消息类型。此外,您可以使用显示详细资料函数查看消息的内容。

这是一个样本'geometry_msgs / point',在matlab使用中创建Rosmessage.。它包含3个属于XYZ坐标中的3-D点的属性。

pointmsg = rosmessage('geometry_msgs / point'
pointmsg =具有属性的ROS点消息:MessageType:'Geometry_msgs / point'x:0 y:0 z:0使用showdetail来显示消息的内容

您可以使用的是访问和修改每个属性pointmsg.处理。

pointmsg.y = 2
pointmsg =带有属性的ROS点消息:MessageType:'Geometry_msgs / point'x:0 y:2 z:0使用showdetail来显示消息的内容

有关MATLAB中ROS消息结构的更多信息,请参阅使用基本的ROS消息

ROS消息的限制马铃薯

由于ROS消息使用独立属性,因此无法验证具有多个值的某些消息。因为每个值可以单独设置,所以消息不会验证属性作为整个实体。例如,四元数邮件包含W.Xy, 和Z.属性,但消息不强制执行整个四元数是有效的。修改属性时,您应确保您维护该消息所需的规则。

消息属性也可以具有各种数据类型。MATLAB使用ROS设置的规则来确定这些数据类型是什么。但是,如果要在计算中使用它们,您可能必须将数据类型转换为另一个值。ROS数据类型不会直接转换为MATLAB数据类型。有关ROS数据类型及其MATLAB等效的详细列表,请参阅ROS数据类型转换

ROS数据类型转换

ROS消息类型具有预定属性和数据类型,用于这些属性的值。必须将这些数据类型映射到MATLAB中的MATLAB数据类型。此表总结了ROS数据类型如何将ROS数据类型转换为MATLAB数据类型。

ROS数据类型 描述 马铃薯

BOOL.

布尔/无符号8位整数

逻辑

INT8.

签名8位整数

INT8.

uint8.

unsigned 8位整数

uint8.

int16

签名16位整数

int16

uint16

无符号16位整数

uint16

INT32.

签名32位整数

INT32.

UINT32

无符号32位整数

UINT32

INT64.

签名64位整数

INT64.

UINT64

无符号64位整数

UINT64

float32.

32位IEEE浮点

单身的

float64.

64位IEEE浮点

双倍的

细绳

ASCII字符串(仅限UTF-8)

char

时间

秒和纳秒作为符号32位整数

时间对象(参见罗斯蒂

期间

秒和纳秒作为符号32位整数

期间对象(参见疯狂

万博1manbetx支持的消息

以下是支持的ROS包的字母化列表。万博1manbetx包可以包含消息类型,服务类型或操作类型。

要获取支持的消息类型的完整列表,请调用万博1manbetxROSMSG列表在matlab命令窗口中。

ROS工具箱万博1manbetx支持ROS Indigo和Hydro平台,但您自己的ROS安装可能有不同的消息版本。要覆盖我们当前的消息目录,可以使用ROS自定义消息支持万博1manbetx生成新的消息定义。

在指定消息类型时,输入字符向量必须匹配列出的字符向量ROSMSG列表确切地。要使用自定义消息类型,MATLAB还提供自定义消息支持包。万博1manbetx有关更多信息,请参阅ROS自定义消息支持万博1manbetx

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团块键brics_actuator bride_tutorials bwi_planning bwi_planning_common calibration_msgs能力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_msgsDesignator_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探险face_detector fingertip_pressure frontier_exploration gateway_msgs gazebo_msgs geographic_msgs geometry_msgs gps_common接枝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键盘kingfisher_msgs kobuki_msgs kobuki_testsuite laser_assemblerlaser_cb_detector Leap_Motion Linux_hardware Lizi Manipulation_msgs Map_msgs map_store mavros microTrain_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 nav_msgs nav2d_msgs nav2d_navigator nav2d_operator 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_msgsrobotnik_msgs rocon_app_manager_msgs rocon_service_pair_msgs rocon_std_msgs rosapi rosauth rosbridge_library rostpp roscpp_morials roseus rosgraph_msgs rospy_message_converter rospy_tutorials rosruby_turorials 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_calibrationVisp_tracker可视化_msgswfov_camera_msgs wge100_camera wifi_ddwrt wilder_msgs yocs_msgs zeroconf_msgs

也可以看看

||

相关话题