11 from mvsim_comms
import pymvsim_comms
12 from mvsim_msgs
import ObservationLidar2D_pb2
13 from mvsim_msgs
import SrvShutdown_pb2
14 from mvsim_msgs
import SrvGetPose_pb2
20 TESTS_DIR = os.environ[
'TESTS_DIR']
21 MVSIM_CLI_EXE_PATH = os.environ[
'MVSIM_CLI_EXE_PATH']
29 assert(msgType ==
"mvsim_msgs.ObservationLidar2D")
30 p = ObservationLidar2D_pb2.ObservationLidar2D()
31 p.ParseFromString(bytes(msg))
32 print(
"callback received:\n ranges=\n" + str(p.scanRanges) +
33 "\n validRanges=" + str(p.validRanges))
34 scanRanges = list(p.scanRanges)
35 validRanges = list(p.validRanges)
38 if (len(scanRanges) == 181)
and \
39 (abs(scanRanges[0]-9.0) < 1.5)
and \
40 (validRanges[0] ==
True):
46 req = SrvShutdown_pb2.SrvShutdown()
48 client.callService(
'shutdown', req.SerializeToString())
51 if __name__ ==
"__main__":
57 subprocess.Popen([MVSIM_CLI_EXE_PATH,
"launch",
58 TESTS_DIR +
"/test-still-lidar2d.world.xml",
59 "--headless",
"-v DEBUG",
"--realtime-factor 0.1"])
61 client = pymvsim_comms.mvsim.Client()
62 print(
"Connecting to server...", flush=
True)
64 print(
"Connected successfully.", flush=
True)
67 client.subscribeTopic(
"/r1/laser1_scan", onMessage)
72 print(
"Running and waiting...", flush=
True)