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:
object
A 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:
object
Represent 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.