velocity_msg vel_msg;\r
wheel_msg wheels_msg;\r
\r
-uint8_t mode = 0; //setup mode\r
+int mode = 0; //setup mode\r
\r
uint8_t proto_buffer_rx[50];\r
pb_istream_t in_pb_stream;\r
\r
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) {\r
\r
+ mode++;\r
+\r
float linear_velocity;\r
float angular_velocity;\r
\r
- pb_istream_t stream = pb_istream_from_buffer(proto_buffer_rx, velocity_cmd_length);\r
+ pb_istream_t stream = pb_istream_from_buffer(proto_buffer_rx,\r
+ velocity_cmd_length);\r
\r
/* Now we are ready to decode the message. */\r
bool status = pb_decode(&stream, VelocityCommand_fields, &vel_cmd);\r
\r
- linear_velocity = vel_cmd.linear_velocity;\r
- angular_velocity = vel_cmd.angular_velocity;\r
+ if (status) {\r
+ linear_velocity = vel_cmd.linear_velocity;\r
+ angular_velocity = vel_cmd.angular_velocity;\r
\r
- odom.UpdateValues(linear_velocity, angular_velocity);\r
+ odom.UpdateValues(linear_velocity, angular_velocity);\r
\r
- float left_setpoint = odom.GetLeftVelocity();\r
- float right_setpoint = odom.GetRightVelocity();\r
+ float left_setpoint = odom.GetLeftVelocity();\r
+ float right_setpoint = odom.GetRightVelocity();\r
\r
- left_pid.set(left_setpoint);\r
- right_pid.set(right_setpoint);\r
+ left_pid.set(left_setpoint);\r
+ right_pid.set(right_setpoint);\r
\r
- float cross_setpoint = left_setpoint - right_setpoint;\r
- cross_pid.set(cross_setpoint);\r
+ float cross_setpoint = left_setpoint - right_setpoint;\r
+ cross_pid.set(cross_setpoint);\r
+ }\r
\r
HAL_UART_Receive_DMA(&huart6, (uint8_t*) &proto_buffer_rx,\r
- velocity_cmd_length);\r
+ velocity_cmd_length);\r
}\r
\r
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {\r
#!/usr/bin/env python
import rospy, serial, struct, time
+import otto_communication_pb2
from geometry_msgs.msg import Twist
from serial import SerialException
def callback(data):
linear = -data.linear.x
angular = -data.angular.z #da fixare?
+ my_velocity = otto_communication_pb2.VelocityCommand()
+ my_velocity.linear_velocity = linear;
+ my_velocity.angular_velocity = angular;
rospy.loginfo('I heard %f %f', linear, angular)
- msg_output = struct.pack('<ff', linear, angular)
- ser.write(msg_output)
+ out_buffer = my_velocity.SerializeToString()
+ ser.write(out_buffer)
ser.reset_output_buffer()
+ time.sleep(0.001)
#ser.flush()
--- /dev/null
+#!/usr/bin/env python
+
+import rospy, serial, struct, time
+from geometry_msgs.msg import Twist
+from serial import SerialException
+
+ser = serial.Serial(
+ baudrate=115200,
+ parity=serial.PARITY_NONE,
+ stopbits=serial.STOPBITS_ONE,
+ bytesize=serial.EIGHTBITS,
+ rtscts=False)
+
+def callback(data):
+ linear = -data.linear.x
+ angular = -data.angular.z #da fixare?
+ rospy.loginfo('I heard %f %f', linear, angular)
+ msg_output = struct.pack('<ff', linear, angular)
+ ser.write(msg_output)
+ ser.reset_output_buffer()
+ #ser.flush()
+
+
+
+def listener():
+ while(ser.is_open == False):
+ try:
+ ser.port = '/dev/ttyUSB0'
+ ser.open()
+ except SerialException:
+ print('couldnt open /dev/ttyUSB0')
+ time.sleep(2)
+
+ print('ttyUSB0 opened')
+ rospy.init_node('cmd_vel_transmitter', anonymous=True)
+
+ rospy.Subscriber('/cmd_vel', Twist, callback)
+
+ rospy.spin()
+
+if __name__ == '__main__':
+ listener()
--- /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 time, serial, struct
+import otto_communication_pb2
+from serial import SerialException
+
+ser = serial.Serial(
+ baudrate=115200,
+ parity=serial.PARITY_NONE,
+ stopbits=serial.STOPBITS_ONE,
+ bytesize=serial.EIGHTBITS,
+ rtscts=False,
+ exclusive=None)
+while (ser.is_open == False):
+ try:
+ ser.port = '/dev/ttyUSB0'
+ ser.open()
+ except SerialException:
+ print("couldn't open ttyUSB0, check the connection")
+ time.sleep(2)
+
+print("open port")
+
+my_velocity = otto_communication_pb2.VelocityCommand()
+my_velocity.linear_velocity = 0.3
+my_velocity.angular_velocity = 0.0
+encode_buffer = my_velocity.SerializeToString()
+print(encode_buffer)
+print(len(encode_buffer))
+
+while 1:
+ my_velocity.linear_velocity = my_velocity.linear_velocity + 0.01
+ encode_buffer = my_velocity.SerializeToString()
+ print(my_velocity)
+ print(encode_buffer)
+ ser.write(encode_buffer)
+ ser.reset_output_buffer()
+ time.sleep(0.5)
+++ /dev/null
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: velocities.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='velocities.proto',
- package='',
- syntax='proto3',
- serialized_pb=_b('\n\x10velocities.proto\"5\n\nVelocities\x12\x12\n\nlinear_vel\x18\x01 \x01(\x02\x12\x13\n\x0b\x61ngular_vel\x18\x02 \x01(\x02\x62\x06proto3')
-)
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-
-
-
-_VELOCITIES = _descriptor.Descriptor(
- name='Velocities',
- full_name='Velocities',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='linear_vel', full_name='Velocities.linear_vel', 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_vel', full_name='Velocities.angular_vel', 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=20,
- serialized_end=73,
-)
-
-DESCRIPTOR.message_types_by_name['Velocities'] = _VELOCITIES
-
-Velocities = _reflection.GeneratedProtocolMessageType('Velocities', (_message.Message,), dict(
- DESCRIPTOR = _VELOCITIES,
- __module__ = 'velocities_pb2'
- # @@protoc_insertion_point(class_scope:Velocities)
- ))
-_sym_db.RegisterMessage(Velocities)
-
-
-# @@protoc_insertion_point(module_scope)
+++ /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)
print(encode_buffer)
ser.write(encode_buffer)
ser.reset_output_buffer()
- time.sleep(0.5)
+ time.sleep(0.005)
+++ /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)
+++ /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)