Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Deepracer
NeurIPS 2021 AWS Deepracer Starter Kit
Commits
31473a0e
Commit
31473a0e
authored
Oct 01, 2021
by
nimishsantosh107
Browse files
zmq-client, timeout updated, fastforwarding logic cleaned
parent
3f6e2cfa
Changes
2
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
31473a0e
__pycache__
deepracer-gym/deepracer_gym.egg-info/
\ No newline at end of file
deepracer-gym/deepracer_gym.egg-info/
playground/
\ No newline at end of file
deepracer-gym/deepracer_gym/zmq_client.py
View file @
31473a0e
import
zmq
import
time
import
msgpack
import
msgpack_numpy
as
m
...
...
@@ -10,12 +11,13 @@ class DeepracerZMQClient:
self
.
host
=
host
self
.
port
=
port
self
.
socket
=
zmq
.
Context
().
socket
(
zmq
.
REQ
)
self
.
socket
.
set
(
zmq
.
SNDTIMEO
,
20000
)
self
.
socket
.
set
(
zmq
.
RCVTIMEO
,
20000
)
# Large timout for first connection
self
.
socket
.
set
(
zmq
.
SNDTIMEO
,
600000
)
# 10m
self
.
socket
.
set
(
zmq
.
RCVTIMEO
,
600000
)
self
.
socket
.
connect
(
f
"tcp://
{
self
.
host
}
:
{
self
.
port
}
"
)
def
set_agent_ready
(
self
):
packed_msg
=
msgpack
.
packb
({
"
Agent R
eady"
:
1
})
packed_msg
=
msgpack
.
packb
({
"
r
eady"
:
1
})
self
.
socket
.
send
(
packed_msg
)
def
recieve_response
(
self
):
...
...
@@ -35,26 +37,21 @@ class DeepracerEnvHelper:
self
.
zmq_client
=
DeepracerZMQClient
()
self
.
zmq_client
.
set_agent_ready
()
self
.
obs
=
None
self
.
previous_done
=
False
def
send_act_rcv_obs
(
self
,
action
):
action_dict
=
{
"action"
:
action
}
self
.
obs
=
self
.
zmq_client
.
send_msg
(
action_dict
)
self
.
previous_done
=
self
.
obs
[
'_game_over'
]
return
self
.
obs
def
env_reset
(
self
):
if
self
.
obs
is
None
:
# First communication to zmq server
self
.
obs
=
self
.
zmq_client
.
recieve_response
()
elif
self
.
previous_done
:
# To prevent dummy episode on already done env
pass
else
:
# Can't reset env before episode completes - Passing '1' until episode completes
action
=
1
done
=
False
while
not
done
:
self
.
obs
=
self
.
send_act_rcv_obs
(
action
)
done
=
self
.
obs
[
'_game_over'
]
self
.
previous_done
=
True
# Smaller timeout after first connection
self
.
zmq_client
.
socket
.
set
(
zmq
.
SNDTIMEO
,
20000
)
# 20s
self
.
zmq_client
.
socket
.
set
(
zmq
.
RCVTIMEO
,
20000
)
else
:
# If prev_episode done and reset called, fast forward one step for new episode
self
.
obs
=
self
.
send_act_rcv_obs
(
4
)
# Action ignored due to reset()
return
self
.
obs
...
...
@@ -70,7 +67,7 @@ class DeepracerEnvHelper:
if
__name__
==
"__main__"
:
client
=
DeepracerZMQClient
()
packed_msg
=
msgpack
.
packb
({
"
R
eady"
:
1
})
packed_msg
=
msgpack
.
packb
({
"
r
eady"
:
1
})
client
.
socket
.
send
(
packed_msg
)
episodes_completed
=
0
steps_completed
=
0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment