ser = serial.Serial(
baudrate=115200,
- parity=serial.PARITY_ODD,
+ parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
rtscts=False)
rospy.loginfo('I heard %f %f', linear, angular)
msg_output = struct.pack('<ff', linear, angular)
ser.write(msg_output)
- ser.flush()
+ ser.reset_output_buffer()
+ #ser.flush()
VelocityCommand_Status_UNKNOWN = 0,
VelocityCommand_Status_WAITING_CONFIG = 1,
VelocityCommand_Status_READY = 2,
- VelocityCommand_Status_RUNNING = 3
+ VelocityCommand_Status_RUNNING = 3,
+ VelocityCommand_Status_H_BRIDGE_FAULT_1 = 4,
+ VelocityCommand_Status_H_BRIDGE_FAULT_2 = 5,
+ VelocityCommand_Status_UNKNOWN_ERROR = 6
} VelocityCommand_Status;
/* Struct definitions */
/* Helper constants for enums */
#define _VelocityCommand_Status_MIN VelocityCommand_Status_UNKNOWN
-#define _VelocityCommand_Status_MAX VelocityCommand_Status_RUNNING
-#define _VelocityCommand_Status_ARRAYSIZE ((VelocityCommand_Status)(VelocityCommand_Status_RUNNING+1))
+#define _VelocityCommand_Status_MAX VelocityCommand_Status_UNKNOWN_ERROR
+#define _VelocityCommand_Status_ARRAYSIZE ((VelocityCommand_Status)(VelocityCommand_Status_UNKNOWN_ERROR+1))
/* Initializer values for message structs */
--- /dev/null
+syntax = "proto2";
+
+message StatusMessage {
+ required float linear_velocity = 1;
+ required float angular_velocity = 2;
+ required fixed64 delta_millis = 3;
+ enum Status {
+ UNKNOWN = 0;
+ WAITING_CONFIG = 1;
+ READY = 2;
+ RUNNING = 3;
+ H_BRIDGE_FAULT_1 = 4;
+ H_BRIDGE_FAULT_2 = 5;
+ UNKNOWN_ERROR = 6;
+ }
+ required Status status = 4;
+}
+
+message ConfigCommand {
+ required float left_kp = 1;
+ required float left_ki = 2;
+ required float left_kd = 3;
+
+ required float right_kp = 4;
+ required float right_ki = 5;
+ required float right_kd = 6;
+
+ required float cross_kp = 7;
+ required float cross_ki = 8;
+ required float cross_kd = 9;
+
+ required float baseline = 10;
+
+ required fixed32 ticks_per_revolution = 11;
+ required float right_wheel_circumference = 12;
+ required float left_wheel_circumference = 13;
+}
+
+message VelocityCommand {
+ required float linear_velocity = 1;
+ required float angular_velocity = 2;
+}
\ No newline at end of file
--- /dev/null
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: otto_communication.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='otto_communication.proto',
+ package='',
+ syntax='proto2',
+ serialized_pb=_b('\n\x18otto_communication.proto\"\x82\x02\n\rStatusMessage\x12\x17\n\x0flinear_velocity\x18\x01 \x02(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x02(\x02\x12\x14\n\x0c\x64\x65lta_millis\x18\x03 \x02(\x06\x12%\n\x06status\x18\x04 \x02(\x0e\x32\x15.StatusMessage.Status\"\x80\x01\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eWAITING_CONFIG\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\x14\n\x10H_BRIDGE_FAULT_1\x10\x04\x12\x14\n\x10H_BRIDGE_FAULT_2\x10\x05\x12\x11\n\rUNKNOWN_ERROR\x10\x06\"\xa3\x02\n\rConfigCommand\x12\x0f\n\x07left_kp\x18\x01 \x02(\x02\x12\x0f\n\x07left_ki\x18\x02 \x02(\x02\x12\x0f\n\x07left_kd\x18\x03 \x02(\x02\x12\x10\n\x08right_kp\x18\x04 \x02(\x02\x12\x10\n\x08right_ki\x18\x05 \x02(\x02\x12\x10\n\x08right_kd\x18\x06 \x02(\x02\x12\x10\n\x08\x63ross_kp\x18\x07 \x02(\x02\x12\x10\n\x08\x63ross_ki\x18\x08 \x02(\x02\x12\x10\n\x08\x63ross_kd\x18\t \x02(\x02\x12\x10\n\x08\x62\x61seline\x18\n \x02(\x02\x12\x1c\n\x14ticks_per_revolution\x18\x0b \x02(\x07\x12!\n\x19right_wheel_circumference\x18\x0c \x02(\x02\x12 \n\x18left_wheel_circumference\x18\r \x02(\x02\"D\n\x0fVelocityCommand\x12\x17\n\x0flinear_velocity\x18\x01 \x02(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x02(\x02')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+_STATUSMESSAGE_STATUS = _descriptor.EnumDescriptor(
+ name='Status',
+ full_name='StatusMessage.Status',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='UNKNOWN', index=0, number=0,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='WAITING_CONFIG', index=1, number=1,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='READY', index=2, number=2,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='RUNNING', index=3, number=3,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_1', index=4, number=4,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_2', index=5, number=5,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='UNKNOWN_ERROR', index=6, number=6,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=159,
+ serialized_end=287,
+)
+_sym_db.RegisterEnumDescriptor(_STATUSMESSAGE_STATUS)
+
+
+_STATUSMESSAGE = _descriptor.Descriptor(
+ name='StatusMessage',
+ full_name='StatusMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='linear_velocity', full_name='StatusMessage.linear_velocity', index=0,
+ number=1, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='angular_velocity', full_name='StatusMessage.angular_velocity', index=1,
+ number=2, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='delta_millis', full_name='StatusMessage.delta_millis', index=2,
+ number=3, type=6, cpp_type=4, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='StatusMessage.status', index=3,
+ number=4, type=14, cpp_type=8, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _STATUSMESSAGE_STATUS,
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=29,
+ serialized_end=287,
+)
+
+
+_CONFIGCOMMAND = _descriptor.Descriptor(
+ name='ConfigCommand',
+ full_name='ConfigCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='left_kp', full_name='ConfigCommand.left_kp', index=0,
+ number=1, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_ki', full_name='ConfigCommand.left_ki', index=1,
+ number=2, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_kd', full_name='ConfigCommand.left_kd', index=2,
+ number=3, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_kp', full_name='ConfigCommand.right_kp', index=3,
+ number=4, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_ki', full_name='ConfigCommand.right_ki', index=4,
+ number=5, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_kd', full_name='ConfigCommand.right_kd', index=5,
+ number=6, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_kp', full_name='ConfigCommand.cross_kp', index=6,
+ number=7, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_ki', full_name='ConfigCommand.cross_ki', index=7,
+ number=8, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_kd', full_name='ConfigCommand.cross_kd', index=8,
+ number=9, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='baseline', full_name='ConfigCommand.baseline', index=9,
+ number=10, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='ticks_per_revolution', full_name='ConfigCommand.ticks_per_revolution', index=10,
+ number=11, type=7, cpp_type=3, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_wheel_circumference', full_name='ConfigCommand.right_wheel_circumference', index=11,
+ number=12, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_wheel_circumference', full_name='ConfigCommand.left_wheel_circumference', index=12,
+ number=13, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=290,
+ serialized_end=581,
+)
+
+
+_VELOCITYCOMMAND = _descriptor.Descriptor(
+ name='VelocityCommand',
+ full_name='VelocityCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='linear_velocity', full_name='VelocityCommand.linear_velocity', index=0,
+ number=1, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='angular_velocity', full_name='VelocityCommand.angular_velocity', index=1,
+ number=2, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=583,
+ serialized_end=651,
+)
+
+_STATUSMESSAGE.fields_by_name['status'].enum_type = _STATUSMESSAGE_STATUS
+_STATUSMESSAGE_STATUS.containing_type = _STATUSMESSAGE
+DESCRIPTOR.message_types_by_name['StatusMessage'] = _STATUSMESSAGE
+DESCRIPTOR.message_types_by_name['ConfigCommand'] = _CONFIGCOMMAND
+DESCRIPTOR.message_types_by_name['VelocityCommand'] = _VELOCITYCOMMAND
+
+StatusMessage = _reflection.GeneratedProtocolMessageType('StatusMessage', (_message.Message,), dict(
+ DESCRIPTOR = _STATUSMESSAGE,
+ __module__ = 'otto_communication_pb2'
+ # @@protoc_insertion_point(class_scope:StatusMessage)
+ ))
+_sym_db.RegisterMessage(StatusMessage)
+
+ConfigCommand = _reflection.GeneratedProtocolMessageType('ConfigCommand', (_message.Message,), dict(
+ DESCRIPTOR = _CONFIGCOMMAND,
+ __module__ = 'otto_communication_pb2'
+ # @@protoc_insertion_point(class_scope:ConfigCommand)
+ ))
+_sym_db.RegisterMessage(ConfigCommand)
+
+VelocityCommand = _reflection.GeneratedProtocolMessageType('VelocityCommand', (_message.Message,), dict(
+ DESCRIPTOR = _VELOCITYCOMMAND,
+ __module__ = 'otto_communication_pb2'
+ # @@protoc_insertion_point(class_scope:VelocityCommand)
+ ))
+_sym_db.RegisterMessage(VelocityCommand)
+
+
+# @@protoc_insertion_point(module_scope)
syntax = "proto3";
-
-message VelocityCommand {
- float linear_velocity = 1;
- float angular_velocity = 2;
- fixed64 delta_millis = 3;
+
+message StatusMessage {
+ required float linear_velocity = 1;
+ required float angular_velocity = 2;
+ required fixed64 delta_millis = 3;
enum Status {
UNKNOWN = 0;
WAITING_CONFIG = 1;
READY = 2;
RUNNING = 3;
+ H_BRIDGE_FAULT_1 = 4;
+ H_BRIDGE_FAULT_2 = 5;
+ UNKNOWN_ERROR = 6;
}
- Status status = 4;
+ required Status status = 4;
}
\ No newline at end of file
name='status_message.proto',
package='',
syntax='proto3',
- serialized_pb=_b('\n\x14status_message.proto\"\xc6\x01\n\x0fVelocityCommand\x12\x17\n\x0flinear_velocity\x18\x01 \x01(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x01(\x02\x12\x14\n\x0c\x64\x65lta_millis\x18\x03 \x01(\x06\x12\'\n\x06status\x18\x04 \x01(\x0e\x32\x17.VelocityCommand.Status\"A\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eWAITING_CONFIG\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x62\x06proto3')
+ serialized_pb=_b('\n\x14status_message.proto\"\x86\x02\n\x0fVelocityCommand\x12\x17\n\x0flinear_velocity\x18\x01 \x01(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x01(\x02\x12\x14\n\x0c\x64\x65lta_millis\x18\x03 \x01(\x06\x12\'\n\x06status\x18\x04 \x01(\x0e\x32\x17.VelocityCommand.Status\"\x80\x01\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eWAITING_CONFIG\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\x14\n\x10H_BRIDGE_FAULT_1\x10\x04\x12\x14\n\x10H_BRIDGE_FAULT_2\x10\x05\x12\x11\n\rUNKNOWN_ERROR\x10\x06\x62\x06proto3')
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
name='RUNNING', index=3, number=3,
options=None,
type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_1', index=4, number=4,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_2', index=5, number=5,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='UNKNOWN_ERROR', index=6, number=6,
+ options=None,
+ type=None),
],
containing_type=None,
options=None,
- serialized_start=158,
- serialized_end=223,
+ serialized_start=159,
+ serialized_end=287,
)
_sym_db.RegisterEnumDescriptor(_VELOCITYCOMMAND_STATUS)
oneofs=[
],
serialized_start=25,
- serialized_end=223,
+ serialized_end=287,
)
_VELOCITYCOMMAND.fields_by_name['status'].enum_type = _VELOCITYCOMMAND_STATUS
--- /dev/null
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: config_command.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='config_command.proto',
+ package='',
+ syntax='proto3',
+ serialized_pb=_b('\n\x14\x63onfig_command.proto\"\xa3\x02\n\rConfigCommand\x12\x0f\n\x07left_kp\x18\x01 \x01(\x02\x12\x0f\n\x07left_ki\x18\x02 \x01(\x02\x12\x0f\n\x07left_kd\x18\x03 \x01(\x02\x12\x10\n\x08right_kp\x18\x04 \x01(\x02\x12\x10\n\x08right_ki\x18\x05 \x01(\x02\x12\x10\n\x08right_kd\x18\x06 \x01(\x02\x12\x10\n\x08\x63ross_kp\x18\x07 \x01(\x02\x12\x10\n\x08\x63ross_ki\x18\x08 \x01(\x02\x12\x10\n\x08\x63ross_kd\x18\t \x01(\x02\x12\x10\n\x08\x62\x61seline\x18\n \x01(\x02\x12\x1c\n\x14ticks_per_revolution\x18\x0b \x01(\x07\x12!\n\x19right_wheel_circumference\x18\x0c \x01(\x02\x12 \n\x18left_wheel_circumference\x18\r \x01(\x02\x62\x06proto3')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+
+_CONFIGCOMMAND = _descriptor.Descriptor(
+ name='ConfigCommand',
+ full_name='ConfigCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='left_kp', full_name='ConfigCommand.left_kp', index=0,
+ number=1, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_ki', full_name='ConfigCommand.left_ki', index=1,
+ number=2, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_kd', full_name='ConfigCommand.left_kd', index=2,
+ number=3, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_kp', full_name='ConfigCommand.right_kp', index=3,
+ number=4, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_ki', full_name='ConfigCommand.right_ki', index=4,
+ number=5, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_kd', full_name='ConfigCommand.right_kd', index=5,
+ number=6, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_kp', full_name='ConfigCommand.cross_kp', index=6,
+ number=7, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_ki', full_name='ConfigCommand.cross_ki', index=7,
+ number=8, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_kd', full_name='ConfigCommand.cross_kd', index=8,
+ number=9, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='baseline', full_name='ConfigCommand.baseline', index=9,
+ number=10, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='ticks_per_revolution', full_name='ConfigCommand.ticks_per_revolution', index=10,
+ number=11, type=7, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_wheel_circumference', full_name='ConfigCommand.right_wheel_circumference', index=11,
+ number=12, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_wheel_circumference', full_name='ConfigCommand.left_wheel_circumference', index=12,
+ number=13, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=25,
+ serialized_end=316,
+)
+
+DESCRIPTOR.message_types_by_name['ConfigCommand'] = _CONFIGCOMMAND
+
+ConfigCommand = _reflection.GeneratedProtocolMessageType('ConfigCommand', (_message.Message,), dict(
+ DESCRIPTOR = _CONFIGCOMMAND,
+ __module__ = 'config_command_pb2'
+ # @@protoc_insertion_point(class_scope:ConfigCommand)
+ ))
+_sym_db.RegisterMessage(ConfigCommand)
+
+
+# @@protoc_insertion_point(module_scope)
--- /dev/null
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: otto_communication.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='otto_communication.proto',
+ package='',
+ syntax='proto2',
+ serialized_pb=_b('\n\x18otto_communication.proto\"\x82\x02\n\rStatusMessage\x12\x17\n\x0flinear_velocity\x18\x01 \x02(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x02(\x02\x12\x14\n\x0c\x64\x65lta_millis\x18\x03 \x02(\x06\x12%\n\x06status\x18\x04 \x02(\x0e\x32\x15.StatusMessage.Status\"\x80\x01\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eWAITING_CONFIG\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\x14\n\x10H_BRIDGE_FAULT_1\x10\x04\x12\x14\n\x10H_BRIDGE_FAULT_2\x10\x05\x12\x11\n\rUNKNOWN_ERROR\x10\x06\"\xa3\x02\n\rConfigCommand\x12\x0f\n\x07left_kp\x18\x01 \x02(\x02\x12\x0f\n\x07left_ki\x18\x02 \x02(\x02\x12\x0f\n\x07left_kd\x18\x03 \x02(\x02\x12\x10\n\x08right_kp\x18\x04 \x02(\x02\x12\x10\n\x08right_ki\x18\x05 \x02(\x02\x12\x10\n\x08right_kd\x18\x06 \x02(\x02\x12\x10\n\x08\x63ross_kp\x18\x07 \x02(\x02\x12\x10\n\x08\x63ross_ki\x18\x08 \x02(\x02\x12\x10\n\x08\x63ross_kd\x18\t \x02(\x02\x12\x10\n\x08\x62\x61seline\x18\n \x02(\x02\x12\x1c\n\x14ticks_per_revolution\x18\x0b \x02(\x07\x12!\n\x19right_wheel_circumference\x18\x0c \x02(\x02\x12 \n\x18left_wheel_circumference\x18\r \x02(\x02\"D\n\x0fVelocityCommand\x12\x17\n\x0flinear_velocity\x18\x01 \x02(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x02(\x02')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+_STATUSMESSAGE_STATUS = _descriptor.EnumDescriptor(
+ name='Status',
+ full_name='StatusMessage.Status',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='UNKNOWN', index=0, number=0,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='WAITING_CONFIG', index=1, number=1,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='READY', index=2, number=2,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='RUNNING', index=3, number=3,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_1', index=4, number=4,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_2', index=5, number=5,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='UNKNOWN_ERROR', index=6, number=6,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=159,
+ serialized_end=287,
+)
+_sym_db.RegisterEnumDescriptor(_STATUSMESSAGE_STATUS)
+
+
+_STATUSMESSAGE = _descriptor.Descriptor(
+ name='StatusMessage',
+ full_name='StatusMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='linear_velocity', full_name='StatusMessage.linear_velocity', index=0,
+ number=1, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='angular_velocity', full_name='StatusMessage.angular_velocity', index=1,
+ number=2, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='delta_millis', full_name='StatusMessage.delta_millis', index=2,
+ number=3, type=6, cpp_type=4, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='StatusMessage.status', index=3,
+ number=4, type=14, cpp_type=8, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _STATUSMESSAGE_STATUS,
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=29,
+ serialized_end=287,
+)
+
+
+_CONFIGCOMMAND = _descriptor.Descriptor(
+ name='ConfigCommand',
+ full_name='ConfigCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='left_kp', full_name='ConfigCommand.left_kp', index=0,
+ number=1, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_ki', full_name='ConfigCommand.left_ki', index=1,
+ number=2, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_kd', full_name='ConfigCommand.left_kd', index=2,
+ number=3, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_kp', full_name='ConfigCommand.right_kp', index=3,
+ number=4, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_ki', full_name='ConfigCommand.right_ki', index=4,
+ number=5, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_kd', full_name='ConfigCommand.right_kd', index=5,
+ number=6, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_kp', full_name='ConfigCommand.cross_kp', index=6,
+ number=7, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_ki', full_name='ConfigCommand.cross_ki', index=7,
+ number=8, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cross_kd', full_name='ConfigCommand.cross_kd', index=8,
+ number=9, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='baseline', full_name='ConfigCommand.baseline', index=9,
+ number=10, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='ticks_per_revolution', full_name='ConfigCommand.ticks_per_revolution', index=10,
+ number=11, type=7, cpp_type=3, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='right_wheel_circumference', full_name='ConfigCommand.right_wheel_circumference', index=11,
+ number=12, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='left_wheel_circumference', full_name='ConfigCommand.left_wheel_circumference', index=12,
+ number=13, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=290,
+ serialized_end=581,
+)
+
+
+_VELOCITYCOMMAND = _descriptor.Descriptor(
+ name='VelocityCommand',
+ full_name='VelocityCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='linear_velocity', full_name='VelocityCommand.linear_velocity', index=0,
+ number=1, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='angular_velocity', full_name='VelocityCommand.angular_velocity', index=1,
+ number=2, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=583,
+ serialized_end=651,
+)
+
+_STATUSMESSAGE.fields_by_name['status'].enum_type = _STATUSMESSAGE_STATUS
+_STATUSMESSAGE_STATUS.containing_type = _STATUSMESSAGE
+DESCRIPTOR.message_types_by_name['StatusMessage'] = _STATUSMESSAGE
+DESCRIPTOR.message_types_by_name['ConfigCommand'] = _CONFIGCOMMAND
+DESCRIPTOR.message_types_by_name['VelocityCommand'] = _VELOCITYCOMMAND
+
+StatusMessage = _reflection.GeneratedProtocolMessageType('StatusMessage', (_message.Message,), dict(
+ DESCRIPTOR = _STATUSMESSAGE,
+ __module__ = 'otto_communication_pb2'
+ # @@protoc_insertion_point(class_scope:StatusMessage)
+ ))
+_sym_db.RegisterMessage(StatusMessage)
+
+ConfigCommand = _reflection.GeneratedProtocolMessageType('ConfigCommand', (_message.Message,), dict(
+ DESCRIPTOR = _CONFIGCOMMAND,
+ __module__ = 'otto_communication_pb2'
+ # @@protoc_insertion_point(class_scope:ConfigCommand)
+ ))
+_sym_db.RegisterMessage(ConfigCommand)
+
+VelocityCommand = _reflection.GeneratedProtocolMessageType('VelocityCommand', (_message.Message,), dict(
+ DESCRIPTOR = _VELOCITYCOMMAND,
+ __module__ = 'otto_communication_pb2'
+ # @@protoc_insertion_point(class_scope:VelocityCommand)
+ ))
+_sym_db.RegisterMessage(VelocityCommand)
+
+
+# @@protoc_insertion_point(module_scope)
--- /dev/null
+import otto_communication_pb2
+
+status_message = otto_communication_pb2.StatusMessage()
+
+status_message.linear_velocity = 0.0
+status_message.angular_velocity = 0.0
+status_message.delta_millis = 0
+status_message.status = otto_communication_pb2.StatusMessage.Status.UNKNOWN
+
+encode_buffer = status_message.SerializeToString()
+status_message_length = len(encode_buffer)
+print(encode_buffer)
+print(status_message_length)
+status_message.ParseFromString(encode_buffer)
+print(status_message)
+
+my_velocity = otto_communication_pb2.VelocityCommand()
+my_velocity.linear_velocity = 0.6
+my_velocity.angular_velocity = -0.1
+
+encode_buffer = my_velocity.SerializeToString()
+print(encode_buffer)
+print(len(encode_buffer))
+
+
+my_config = otto_communication_pb2.ConfigCommand()
+print(my_config)
+
--- /dev/null
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: status_message.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='status_message.proto',
+ package='',
+ syntax='proto2',
+ serialized_pb=_b('\n\x14status_message.proto\"\x82\x02\n\rStatusMessage\x12\x17\n\x0flinear_velocity\x18\x01 \x02(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x02(\x02\x12\x14\n\x0c\x64\x65lta_millis\x18\x03 \x02(\x06\x12%\n\x06status\x18\x04 \x02(\x0e\x32\x15.StatusMessage.Status\"\x80\x01\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eWAITING_CONFIG\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\x14\n\x10H_BRIDGE_FAULT_1\x10\x04\x12\x14\n\x10H_BRIDGE_FAULT_2\x10\x05\x12\x11\n\rUNKNOWN_ERROR\x10\x06')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+_STATUSMESSAGE_STATUS = _descriptor.EnumDescriptor(
+ name='Status',
+ full_name='StatusMessage.Status',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='UNKNOWN', index=0, number=0,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='WAITING_CONFIG', index=1, number=1,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='READY', index=2, number=2,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='RUNNING', index=3, number=3,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_1', index=4, number=4,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='H_BRIDGE_FAULT_2', index=5, number=5,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='UNKNOWN_ERROR', index=6, number=6,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=155,
+ serialized_end=283,
+)
+_sym_db.RegisterEnumDescriptor(_STATUSMESSAGE_STATUS)
+
+
+_STATUSMESSAGE = _descriptor.Descriptor(
+ name='StatusMessage',
+ full_name='StatusMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='linear_velocity', full_name='StatusMessage.linear_velocity', index=0,
+ number=1, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='angular_velocity', full_name='StatusMessage.angular_velocity', index=1,
+ number=2, type=2, cpp_type=6, label=2,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='delta_millis', full_name='StatusMessage.delta_millis', index=2,
+ number=3, type=6, cpp_type=4, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='StatusMessage.status', index=3,
+ number=4, type=14, cpp_type=8, label=2,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _STATUSMESSAGE_STATUS,
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=25,
+ serialized_end=283,
+)
+
+_STATUSMESSAGE.fields_by_name['status'].enum_type = _STATUSMESSAGE_STATUS
+_STATUSMESSAGE_STATUS.containing_type = _STATUSMESSAGE
+DESCRIPTOR.message_types_by_name['StatusMessage'] = _STATUSMESSAGE
+
+StatusMessage = _reflection.GeneratedProtocolMessageType('StatusMessage', (_message.Message,), dict(
+ DESCRIPTOR = _STATUSMESSAGE,
+ __module__ = 'status_message_pb2'
+ # @@protoc_insertion_point(class_scope:StatusMessage)
+ ))
+_sym_db.RegisterMessage(StatusMessage)
+
+
+# @@protoc_insertion_point(module_scope)
ang_vel_cmd = 0.8
lin_vel_cmd = 0.5
while 1:
- msg_output_buffer = struct.pack('<ff', lin_vel_cmd, ang_vel_cmd)
- ser.write(msg_output_buffer)
- print(ang_vel_cmd)
- print(lin_vel_cmd)
- ang_vel_cmd = ang_vel_cmd + 0.1
- lin_vel_cmd = lin_vel_cmd + 0.1
- ser.reset_output_buffer()
- time.sleep(3)
+ print(ang_vel_cmd)
+ print(lin_vel_cmd)
+ ang_vel_cmd = ang_vel_cmd + 0.1
+ lin_vel_cmd = lin_vel_cmd + 0.1
+ msg_output_buffer = struct.pack('<ff', lin_vel_cmd, ang_vel_cmd)
+ ser.write(msg_output_buffer)
+ ser.reset_output_buffer()
--- /dev/null
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: velocity_command.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='velocity_command.proto',
+ package='',
+ syntax='proto3',
+ serialized_pb=_b('\n\x16velocity_command.proto\"D\n\x0fVelocityCommand\x12\x17\n\x0flinear_velocity\x18\x01 \x01(\x02\x12\x18\n\x10\x61ngular_velocity\x18\x02 \x01(\x02\x62\x06proto3')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+
+_VELOCITYCOMMAND = _descriptor.Descriptor(
+ name='VelocityCommand',
+ full_name='VelocityCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='linear_velocity', full_name='VelocityCommand.linear_velocity', index=0,
+ number=1, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='angular_velocity', full_name='VelocityCommand.angular_velocity', index=1,
+ number=2, type=2, cpp_type=6, label=1,
+ has_default_value=False, default_value=float(0),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=26,
+ serialized_end=94,
+)
+
+DESCRIPTOR.message_types_by_name['VelocityCommand'] = _VELOCITYCOMMAND
+
+VelocityCommand = _reflection.GeneratedProtocolMessageType('VelocityCommand', (_message.Message,), dict(
+ DESCRIPTOR = _VELOCITYCOMMAND,
+ __module__ = 'velocity_command_pb2'
+ # @@protoc_insertion_point(class_scope:VelocityCommand)
+ ))
+_sym_db.RegisterMessage(VelocityCommand)
+
+
+# @@protoc_insertion_point(module_scope)