Odrivetool issues while running on Python 2.7 for ROS

Receiving lots of errors. Like Name is not defined and these. My HW version is 3.6, fw version is 0.5.3, sdk is 0.4.4 (isntalled from neomanic) @towen @Wetmelon

In [4]: odrv0.save_configuration()
Oh no odrv0 disappeared

ChannelBrokenException Traceback (most recent call last)
----> 1 odrv0.save_configuration()

/usr/local/lib/python2.7/dist-packages/fibre/remote_object.pyc in call(self, *args)
160 for i in range(len(args)):
161 self._inputs[i].set_value(args[i])
→ 162 self._parent.channel.remote_endpoint_operation(self._trigger_id, None, True, 0)
163 if len(self._outputs) > 0:
164 return self._outputs[0].get_value()

/usr/local/lib/python2.7/dist-packages/fibre/protocol.pyc in remote_endpoint_operation(self, endpoint_id, input, expect_ack, output_length)
308 if wait_any(self._resend_timeout, ack_event, self._channel_broken) != 0:
→ 309 raise ChannelBrokenException()
310 except TimeoutError:
311 attempt += 1

ChannelBrokenException:


In [15]: dump_errors(odrv0, True)

NameError Traceback (most recent call last)
/usr/local/lib/python2.7/dist-packages/fibre/shell.pyc in ()
----> 1 dump_errors(odrv0, True)

NameError: name ‘dump_errors’ is not defined

In [19]: odrv0.axis0.requested_state = AXIS_STATE_ENCODER_HALL_POLARITY_CALIBRAT
…: ION

NameError Traceback (most recent call last)
/usr/local/lib/python2.7/dist-packages/fibre/shell.pyc in ()
----> 1 odrv0.axis0.requested_state = AXIS_STATE_ENCODER_HALL_POLARITY_CALIBRATION

NameError: name ‘AXIS_STATE_ENCODER_HALL_POLARITY_CALIBRATION’ is not defined

We don’t support Python 2, sorry.

@Wetmelon Thanks for your response. I have installed Python3 now to use the odrivetool but there is no workable ROS driver with Python3.

I am using ROS_Melodic. My setup is working fine with other sensors in Python 2.7 with ROS-Melodic but my Wheels are driving in opposite directions while running in Python 2.7. I manually changed the Teleop_twist_keyboard but that solution does not work with the Move_base for an autonomous navigation.

So I am trying to run the Odrive in a virtual environment using Python 3.8.6 but facing issues with Odrive_ros supplied by Neomanic repository.

Will Odrive Robotics ever produce any official driver for ROS or ROs2? If not then what is their guideline to use it in ROS or ROS2. Any manual or link would be appreciated. @towen

It’s on the backlog, but we have limited engineering resources so getting the products to be as reliable as possible is #1