jyro.simulator package¶
Submodules¶
jyro.simulator.canvas module¶
jyro.simulator.color module¶
jyro.simulator.device module¶
-
class
jyro.simulator.device.Camera(width=60, height=40, field=120)[source]¶ Bases:
jyro.simulator.device.Device
-
class
jyro.simulator.device.DepthCamera(maxDist, *args, **kwargs)[source]¶ Bases:
jyro.simulator.device.Camera
-
class
jyro.simulator.device.Device(type)[source]¶ Bases:
object
-
class
jyro.simulator.device.Gripper[source]¶ Bases:
jyro.simulator.device.Device
-
class
jyro.simulator.device.LightSensor(geometry, maxRange, noise=0.0)[source]¶ Bases:
jyro.simulator.device.Device
-
class
jyro.simulator.device.RangeSensor(name, geometry, arc, maxRange, noise=0.0)[source]¶ Bases:
jyro.simulator.device.Device
jyro.simulator.robot module¶
-
class
jyro.simulator.robot.Blimp(*args, **kwargs)[source]¶ Bases:
jyro.simulator.robot.Robot
-
class
jyro.simulator.robot.Pioneer(name, x, y, a, color='red')[source]¶ Bases:
jyro.simulator.robot.Robot
-
class
jyro.simulator.robot.Puck(*args, **kwargs)[source]¶ Bases:
jyro.simulator.robot.Robot
-
class
jyro.simulator.robot.Robot(name, x, y, a, boundingBox=None, color='red')[source]¶ Bases:
object
-
class
jyro.simulator.robot.Scribbler(name, x, y, a, color='red')[source]¶ Bases:
jyro.simulator.robot.Robot
jyro.simulator.simulator module¶
A Pure Python 2D Robot Simulator
- 2017 Calysto Developers. Licensed under the GNU GPL.
-
class
jyro.simulator.simulator.Box(ul, lr, outline='black', fill='white')[source]¶ Bases:
jyro.simulator.simulator.Shape>>> box = Box((0, 10), (5, 0)) >>> box.max_min() ((5, 10), (0, 0))
-
class
jyro.simulator.simulator.Light(x, y, brightness, color)[source]¶ Bases:
objectA light source.
Parameters: Example
>>> lgt = Light(3, 2, 1.0, Color(100,100,100)) >>> lgt.reset()
-
class
jyro.simulator.simulator.Physics[source]¶ Bases:
object>>> physics = Physics()
-
class
jyro.simulator.simulator.Segment(start, end, id=None, type=None)[source]¶ Bases:
objectRepresent a line segment.
>>> segment = Segment((0,0), (0,10), 42, "wall") >>> segment.length() 10.0
-
class
jyro.simulator.simulator.SequenceViewer(title, function, length, play_rate=0.5)[source]¶ Bases:
ipywidgets.widgets.widget_box.VBox
-
class
jyro.simulator.simulator.Simulator(robot=None, worldf=None, size=None, gamepad=False, trace=False)[source]¶ Bases:
object>>> from jyro.simulator import (Pioneer, Simulator, Camera, ... PioneerFrontSonars, Gripper, ... PioneerFrontLightSensors) >>> def worldf(sim): ... sim.addBox(0, 0, 10, 10, fill="white", wallcolor="grey") # meters ... sim.addBox(1, 1, 2, 2, "purple") ... sim.addBox(7, 7, 8, 8, "purple") ... ## brightness of 1 is radius 1 meter ... sim.addLight(7, 7, 4.25, color=Color(255, 255, 0, 64))
>>> robot = Pioneer("Pioneer", 5.00, 5.00, math.pi / 2) # meters, radians >>> robot.addDevice(PioneerFrontSonars(maxRange=4.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Gripper()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(PioneerFrontLightSensors(maxRange=1.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Camera()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.brain = lambda self: self.move(1, 1)
>>> sim = Simulator(robot, worldf) >>> for i in range(10): ... sim.step() ... sim.canvas.save("canvas%d.svg" % i)
-
makeCanvas()[source]¶ >>> def worldf(physics): ... physics.addBox(0, 5, 10, 0) >>> sim = Simulator(worldf=worldf) >>> sim.makeCanvas() <jyro.simulator.canvas.Canvas object at ...>
-
movie(poses, function, movie_name=None, start=0, stop=None, step=1, loop=0, optimize=True, duration=100, embed=False, mp4=True)[source]¶ Make a movie from a list of poses and a function.
function(simulator, index) and returns a displayable.
>>> from jyro.simulator import (Pioneer, Simulator, Camera, ... PioneerFrontSonars, Gripper, ... PioneerFrontLightSensors) >>> def worldf(sim): ... sim.addBox(0, 0, 10, 10, fill="white", wallcolor="grey") # meters ... sim.addBox(1, 1, 2, 2, "purple") ... sim.addBox(7, 7, 8, 8, "purple") ... ## brightness of 1 is radius 1 meter ... sim.addLight(7, 7, 4.25, color=Color(255, 255, 0, 64))
>>> robot = Pioneer("Pioneer", 5.00, 5.00, math.pi / 2) # meters, radians >>> robot.addDevice(PioneerFrontSonars(maxRange=4.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Gripper()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(PioneerFrontLightSensors(maxRange=1.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Camera()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.brain = lambda self: self.move(1, 1) >>> sim = Simulator(robot, worldf)
>>> from IPython.display import SVG >>> def function(simulator, index): ... cam_image = simulator.get_image() ... return simulator.canvas.render("pil") >>> sim.movie([(0,0,0), (0,1,0)], function, movie_name="/tmp/movie.gif", mp4=False) <IPython.core.display.Image object>
-
playback(poses, function, play_rate=0.0)[source]¶ Playback a list of poses.
function(simulator) and returns displayable(s).
>>> from jyro.simulator import (Pioneer, Simulator, Camera, ... PioneerFrontSonars, Gripper, ... PioneerFrontLightSensors) >>> def worldf(sim): ... sim.addBox(0, 0, 10, 10, fill="white", wallcolor="grey") # meters ... sim.addBox(1, 1, 2, 2, "purple") ... sim.addBox(7, 7, 8, 8, "purple") ... ## brightness of 1 is radius 1 meter ... sim.addLight(7, 7, 4.25, color=Color(255, 255, 0, 64))
>>> robot = Pioneer("Pioneer", 5.00, 5.00, math.pi / 2) # meters, radians >>> robot.addDevice(PioneerFrontSonars(maxRange=4.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Gripper()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(PioneerFrontLightSensors(maxRange=1.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Camera()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.brain = lambda self: self.move(1, 1) >>> sim = Simulator(robot, worldf)
>>> from IPython.display import SVG >>> def function(simulator, index): ... cam_image = simulator.get_image() ... return (simulator.canvas.render("pil"), ... cam_image.resize((cam_image.size[0] * 4, ... cam_image.size[1] * 4))) >>> sv = sim.playback([(0,0,0), (0,1,0)], function)
-
-
class
jyro.simulator.simulator.VSimulator(robot=None, worldf=None, size=None, gamepad=False, trace=False)[source]¶ Bases:
jyro.simulator.simulator.Simulator>>> from jyro.simulator import (Pioneer, Simulator, Camera, ... PioneerFrontSonars, Gripper, ... PioneerFrontLightSensors) >>> def worldf(sim): ... sim.addBox(0, 0, 10, 10, fill="white", wallcolor="grey") # meters ... sim.addBox(1, 1, 2, 2, "purple") ... sim.addBox(7, 7, 8, 8, "purple") ... ## brightness of 1 is radius 1 meter ... sim.addLight(7, 7, 4.25, color=Color(255, 255, 0, 64))
>>> robot = Pioneer("Pioneer", 5.00, 5.00, math.pi / 2) # meters, radians >>> robot.addDevice(PioneerFrontSonars(maxRange=4.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Gripper()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(PioneerFrontLightSensors(maxRange=1.0)) <jyro.simulator.robot.Pioneer object at ...> >>> robot.addDevice(Camera()) <jyro.simulator.robot.Pioneer object at ...> >>> robot.brain = lambda self: self.move(1, 1)
>>> sim = VSimulator(robot, worldf) VBox(...) >>> for i in range(10): ... sim.step() ... sim.canvas.save("canvas%d.svg" % i)
-
jyro.simulator.simulator.gif2mp4(filename)[source]¶ Convert an animated gif into a mp4, to show with controls.