FS-Driverless / Formula-Student-Driverless-Simulator

A virtual world where Autonomous Systems from different Formula Student teams can compete in time-trial challenges
https://fs-driverless.github.io/Formula-Student-Driverless-Simulator
GNU General Public License v2.0
204 stars 85 forks source link

Service /fsds/reset gets stuck after calling it a random amount of times. #267

Open Joppe-Leers opened 3 years ago

Joppe-Leers commented 3 years ago

Since we are trying to make the autonomous system with reinforcement learning, we call the reset service very often. It seems that after a random amount of time calling this service, it gets stuck at the same place. Random because I have seen it get stuck after calling it for 100 times up to 50000 times. After ctrl-c you see that the program stops at the same line every time like shown in the screenshot below.

image

If you want, you can reproduce this problem by executing this code.

import rospy
import time
from fs_msgs.srv import Reset

def callReset():
    rospy.wait_for_service('/fsds/reset')
    try:
        reset = rospy.ServiceProxy('/fsds/reset', Reset)
        reset(True)
    except rospy.ServiceException as e:
        print("Service call failed: %s"%e)

if __name__ == '__main__':
    rospy.init_node('FEB_autonomous_system', anonymous=True, disable_signals=True)
    count = 0
    while True:        
        count += 1
        callReset()
        print(count)
        #time.sleep(0.1)

We also have implemented a pause service and same thing happens there. I am not sure if this problem is with our code or something else. Did anyone already encountered this problem?