parser.add_argument('-b', '--num-bees', type=int, default=0) parser.add_argument('-c', '--num-casus', type=int, default=3) parser.add_argument('-r', '--radius', type=float, default=12) args = parser.parse_args() simctrl = sim.Control() if args.num_bees > 0: for i in range(1, args.num_bees + 1): name = 'Bee-{:03d}'.format(i) pose = (random.uniform(-4, 4), random.uniform(-4, 4), 2 * pi * random.random()) simctrl.spawn('Bee', name, pose) print 'Spawned bee', name stp = pi / 8.0 for i in range(0, args.num_casus): thetal = pi - (stp * (args.num_casus - 1) / 2) + (i * stp) thetar = thetal + pi for theta, side in zip([thetal, thetar], 'lr'): cname = 'casu-{}0{}'.format(side, i) x = (args.radius + 1.0) * cos(theta) y = (args.radius + 1.0) * sin(theta) pos = (x, y, 0) simctrl.spawn('Casu', cname, pos) A = arena.CircleArena(radius=args.radius) A.spawn(simctrl)
# # 9 8 7 # 6 5 4 # 3 2 1 # ----/ -- # <door> # # # this example will use the ring around CASUs 5, 4, 2, 1 # define the poses of the CASUs (all "yaw"/rotations are 0) yaw = 0 c5 = "casu-005", (0, 0, yaw) c4 = "casu-004", (9, 0, yaw) c2 = "casu-002", (0, -9, yaw) c1 = "casu-001", (9, -9, yaw) # spawn each of the CASU objects for cname, cpos in [c5, c4, c2, c1]: simctrl.spawn('Casu', cname, cpos) # define an arena wall object A = arena.CircleArena(radius=11.0, ww=0.5) # define a transform (centre of the 4 casus) T = arena.Transformation(dx=4.5, dy=-4.5) A.transform(T) A.spawn(simctrl) pass