- 
                Notifications
    
You must be signed in to change notification settings  - Fork 12
 
Feature/zmqrouter eduro #591
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Otherwise it fails on Eduro:
root@voyage:/home/robot/git/osgar# python -m subt run config/eduro-subt-estop-lora.json --side right --speed 0.3 --walldist 0.3 --timeout 30 --note "test master with processes"
2020-07-14 16:28:47,499 osgar.zmqrouter INFO     recording...
2020-07-14 16:28:47,502 osgar.zmqrouter INFO     /home/robot/git/osgar/logs/eduro-subt-estop-lora-200714_162847.log
  File "/home/robot/git/osgar/osgar/zmqrouter.py", line 60, in record
    router.register_nodes(modules.keys(), timeout=datetime.timedelta(seconds=1))
  File "/home/robot/git/osgar/osgar/zmqrouter.py", line 121, in register_nodes
    for packet in self.receive(timeout=timeout):
  File "/home/robot/git/osgar/osgar/zmqrouter.py", line 174, in receive
    raise RuntimeError("timeout")
2020-07-14 16:28:49,013 osgar.zmqrouter ERROR    timeout
2020-07-14 16:28:49,015 osgar.zmqrouter INFO     exception requested stop
    | 
           p.s. note, that the problem is primarily the "low level CAN loop", which without slots does not have sufficient priority this is result with old Threads  | 
    
| 
           p.s.2 and slot version from master using old Threads: (this works OK with one reset on return home)  | 
    
          
 they are in the original PR post (on the top) - the report table is probably different for zmqrouter and old record  | 
    
| 
           We have an improvement vs However it seems it is not enough. If you feel like more testing, it might be worth to try increasing priority for   | 
    
| 
           in the loop is also   | 
    
| 
           TOP: and run with camera image with 5s sleep any suggestion how to easily define "high priority modules"? (probably next time)  | 
    
| 
           p.s. I am a little bit confused from another run (when robot almost hit the obstacle) with output where I do not see this extra large (more than 4s) in the final report, i.e. the queue size is probably important (if it is not small, then the time can be misleading?)  | 
    
| 
           another sample from the middle of the run  | 
    
          
 Unfortunately, I am not sure how to interpret that - it requires so fu I am not in possession of (that is why I suggested  
 I would just go and edit the   | 
    
          
 I am not sure how this delay is defined. Quick scan through the code suggests it measures the frequency of lidar scans (?). Can you upload some log? Anyway, it seems the latency is still not good enough. I'll try to think about it some more.  | 
    
          There seems to be something really really broken here. The nodes   | 
    
          
 So... if the system has 4 CPUs we should have some spare resources.  | 
    
| 
           Combined with load 1.76, I think the hint is that the processes do not run often enough so there is too much waiting (otherwise the load would be around 4). I am thinking about trying to increase the priority of the parent process.  | 
    
| 
           There are parts within  Lines 204 to 222 in 8165f57 
 I have not done it yet, because it would involve yet another queue (inside zmq) and I am not sure yet how to make sure it does not grow without bounds. However, solution like that would keep all the good parts of the current solution and since shutdown is very much under control, I am not afraid anymore that the log would not be complete.  | 
    

This is a short report of test of
zmqrouteron Eduro robot. It works (almost) with two isses:It moves and resets motors all the time.