I am trying to stress my odrive corexy system to prove the robustness of the system => I am running in infinite loop a sequence of motor commands
the system runs about fine for about 15-30min but eventually I observe an USB communication issue with odrive than manifests its as I am trying to read motor error code;
AttributeError: ‘RemoteObject’ object has no attribute 'axis0’
Odrive board is directly connected to the a USB port on the PC motherboard (no usb hub)
At the moment when this problems occurs, the exception thrown is not caught, then the python script crashes. And if i try to restart it, most of the time the USB connection never happens and I have to cut on/off the power.
what can i do about this?
some tech details below
firware => 0.4.8.0
hardware => 3.5
variant => 48
bus_voltage => 23.925806045532227
vel_limit => 400000.0 400000.0
pos_gain => 7.0 7.0
vel_gain => 0.0002500000118743628 0.0002500000118743628
vel_integrator_gain => 0.0010000000474974513 0.0010000000474974513
motor_error => ERROR_NO_ERROR ERROR_NO_ERROR
[... after about 15-30min...]
Traceback (most recent call last):
File "automata_v2.2.py", line 166, in <module>
test_cut()
File "automata_v2.2.py", line 160, in test_cut
cut(c)
File "automata_v2.2.py", line 48, in cut
cmd = "G0 X"+str(x)+" Y"+str(y) ; c.send_cmds(cmd) ; time.sleep(t)
File "/root/odrive_test/corexy.py", line 235, in send_cmds
res = self.__handle_cmd(cmd)
File "/root/odrive_test/corexy.py", line 264, in __handle_cmd
return self.__parse_goto(cmd[2:])
File "/root/odrive_test/corexy.py", line 288, in __parse_goto
return self.__goto(target_x, target_y)
File "/root/odrive_test/corexy.py", line 328, in __goto
self.__move_motors(dA_steps, dB_steps)
File "/root/odrive_test/corexy.py", line 545, in __move_motors
m0 = self.__get_motor_error_name(self.my_odrive.axis0.motor.error)
File "/usr/local/lib/python3.5/dist-packages/fibre/remote_object.py", line 245, in __getattribute__
return object.__getattribute__(self, name)
AttributeError: 'RemoteObject' object has no attribute 'axis0'
root@MTBD00694:~/odrive_test#
root@MTBD00694:~/odrive_test# python3 -m pip show odrive
Name: odrive
Version: 0.4.8
Summary: Control utilities for the ODrive high performance motor controller
Home-page: https://github.com/madcowswe/ODrive
Author: Oskar Weigl
Author-email: oskar.weigl@odriverobotics.com
License: MIT
Location: /usr/local/lib/python3.5/dist-packages
Requires: pywin32, requests, PyUSB, ipython, PySerial, IntelHex, matplotlib
Required-by:
root@MTBD00694:~/odrive_test#
root@MTBD00694:~/odrive_test# python3 -i
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
root@MTBD00694:~/odrive_test# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"
root@MTBD00694:~/odrive_test#