自定义msg/srv/action
自定义msg/srv/action
ROS提供了三种节点间的通信机制:消息机制、服务机制、动作机制,其通信数据对应三种类型:msg、srv、action;同时ROS也提供了一些标准的msg/srv/action。具体可通过指令rosmsg/rossrv list查看。
ROS也提供了自定义msg/srv/action的接口,便于用户根据实际需求进行设计msg/srv/action以满足系统需求。
自定义msg
ros中支持用户自定义ros消息(msg),用于自定义的进程间传递数据信息。自定义消息的文件名为后缀.msg的文件。下面是自定义的一个机器人状态的消息RobotState.msg。
uint8 MANUAL_MODE=0 #模式枚举定义
uint8 BUILDING_MAP=1
uint8 NAV_MODE=2
uint8 NAV_INITIAL=3
uint8 DOCKING_MODE=4
uint16 NORMAL=0 #硬件状态枚举定义
uint16 LASER_ERROR=1
uint16 PWD_ERROR=32
uint16 IMU_ERROR=4
uint16 MOTOR_ERROR=16
uint16 ULTRASONIC_ERROR=8
uint8 mode_state #控制模式状态
uint16 hardware_state #硬件状态
自定义srv
ros中支持用户自定义ros服务(srv),用于自定义的进程间请求数据。自定义服务的文件名为后缀.srv的文件。下面是自定义的一个机器人状态的消息RobotStateService.srv。
#request
uint8 READ=255 #设置或读取状态枚举定义
uint8 MANUAL_MODE=0
uint8 BUILDING_MAP=1
uint8 NAV_MODE=2
uint8 NAV_INITIALED=3
uint8 DOCKING_MODE