I have been working on a program which reads a path from a .csv file and uses path blending to move the robot arm along that path. I am basically getting the arm to draw pictures on a whiteboard and giving it the trajectories in a .csv. The results of this program are very inconsistent. When I first turn on the computer and run it, it works perfectly with no errors. However, after a few times of running it, I suddenly get the same error over and over again no matter what I do. I have tried finding and deleting troublesome points from the csv file, jogging in between runs, reloading the file, etc. I don’t want to have to reboot the control computer every time I want to repeat this program. Here is my .csv file and a pdf of my code .
b.csv (3.1 KB)
drawfromcsv.pdf (117.7 KB)
This is the error I get:
Blockquote
Error executing program: file “drawfromcsv.py” line 59:
AttributeError:‘MoveItErrorCodes’ object has no attribute ‘error_message’
Traceback: (most recent call last):
File “”, line 1, in
File “/home/pathpilot/nc_files/robot_programs/drawfromcsv.py”, line 65, in main
start()
File “/home/pathpilot/nc_files/robot_programs/drawfromcsv.py”, line 59, in main
sync()
AttributeError:‘MoveItErrorCodes’ object has no attribute ‘error_message’
When I switch the log level to debug, I get some additional info messages saying:
Blockquote
joining velocity or acceleration limit violated and below minimum scaling factor
Info: Program errored, full traceback:
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/program_interpreter/interpreter.py”, line 483, in worker
process._churn_and_check_pause()
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/program_interpreter/interpreter.py”, line 722, in _churn_and_check_pause
self._command_switch.get(command.command, lambda data: None)(
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/program_interpreter/interpreter.py”, line 420, in
InterpreterCommand.Start: lambda data: self._fsm.start(data=data),
File “/usr/local/lib/python3.8/dist-packages/fysom/init.py”, line 315, in fn
self.transition()
File “/usr/local/lib/python3.8/dist-packages/fysom/init.py”, line 310, in _tran
self._after_event(e)
File “/usr/local/lib/python3.8/dist-packages/fysom/init.py”, line 342, in _after_event
return getattr(self, fnname)(e)
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/program_interpreter/interpreter.py”, line 697, in _start_program
exec(f’‘‘while True: {name}()\n’’', namespace)
File “”, line 1, in
File “/home/pathpilot/nc_files/robot_programs/drawfromcsv.py”, line 65, in main
start()
File “/home/pathpilot/nc_files/robot_programs/drawfromcsv.py”, line 59, in start
sync()
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/rpl/command.py”, line 189, in run_command
self._execute_async_commands()
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/rpl/command.py”, line 167, in _execute_async_commands
result = cmd.execute()
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/rpl/command.py”, line 78, in execute
result.append(self.commands[-1].execute(data, last=True))
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/execution_commands/movel.py”, line 147, in execute
plan = self._plan_sequence(sequence)
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/execution_commands/move_commands.py”, line 397, in _plan_sequence
self._handle_planning_error_context(error_details, planning_time)
File “/opt/ros/noetic/lib/python3/dist-packages/robot_command/execution_commands/move_commands.py”, line 84, in _handle_planning_error_context
message = f"Planning move failed after {planning_time:.3f}s: {error_details.error_message}"