morse.middleware package¶
Subpackages¶
- morse.middleware.hla package
- morse.middleware.mavlink package
- morse.middleware.moos package
- Submodules
- morse.middleware.moos.abstract_moos module
- morse.middleware.moos.gps module
- morse.middleware.moos.gyroscope module
- morse.middleware.moos.imu module
- morse.middleware.moos.light module
- morse.middleware.moos.motion module
- morse.middleware.moos.pose module
- morse.middleware.moos.sick module
- Module contents
- morse.middleware.pocolibs package
- Subpackages
- morse.middleware.pocolibs.actuators package
- morse.middleware.pocolibs.overlays package
- Submodules
- morse.middleware.pocolibs.overlays.fingers module
- morse.middleware.pocolibs.overlays.platine_overlay module
- morse.middleware.pocolibs.overlays.rflex_overlay module
- morse.middleware.pocolibs.overlays.stereopixel_overlay module
- morse.middleware.pocolibs.overlays.velodyne_overlay module
- morse.middleware.pocolibs.overlays.viam_overlay module
- Module contents
- morse.middleware.pocolibs.sensors package
- Submodules
- morse.middleware.pocolibs.sensors.human_posture module
- morse.middleware.pocolibs.sensors.platine_posture module
- morse.middleware.pocolibs.sensors.pom module
- morse.middleware.pocolibs.sensors.stereopixel module
- morse.middleware.pocolibs.sensors.target module
- morse.middleware.pocolibs.sensors.velodyne module
- morse.middleware.pocolibs.sensors.viam module
- morse.middleware.pocolibs.sensors.viman module
- Module contents
- Module contents
- Subpackages
- morse.middleware.ros package
- Subpackages
- Submodules
- morse.middleware.ros.abstract_ros module
- morse.middleware.ros.accelerometer module
- morse.middleware.ros.battery module
- morse.middleware.ros.clock module
- morse.middleware.ros.depth_camera module
- morse.middleware.ros.destination module
- morse.middleware.ros.force_torque module
- morse.middleware.ros.gps module
- morse.middleware.ros.imu module
- morse.middleware.ros.infrared module
- morse.middleware.ros.jido_posture module
- morse.middleware.ros.jointstate module
- morse.middleware.ros.jointtrajectorycontrollers module
- morse.middleware.ros.kuka_jointstate module
- morse.middleware.ros.kuka_jointstate_pub module
- morse.middleware.ros.laserscanner module
- morse.middleware.ros.light module
- morse.middleware.ros.motion_vw module
- morse.middleware.ros.motion_xyw module
- morse.middleware.ros.odometry module
- morse.middleware.ros.orientation module
- morse.middleware.ros.platine module
- morse.middleware.ros.pose module
- morse.middleware.ros.ptu_posture module
- morse.middleware.ros.read_asctec_ctrl_input module
- morse.middleware.ros.read_pose module
- morse.middleware.ros.read_twist module
- morse.middleware.ros.semantic_camera module
- morse.middleware.ros.static_tf module
- morse.middleware.ros.tfMessage module
- morse.middleware.ros.velocity module
- morse.middleware.ros.video_camera module
- morse.middleware.ros.waypoint2D module
- Module contents
- morse.middleware.sockets package
- morse.middleware.yarp package
Submodules¶
morse.middleware.abstract_datastream module¶
-
class
AbstractDatastream
(component_instance, kwargs)[source]¶ Bases:
object
The class is inherited by all serializers/deserializers. Concrete classes need to implement
default()
.-
component_name
¶
-
data
¶
-
morse.middleware.hla_datastream module¶
-
class
HLABaseNode
(klass, fom, node_name, federation, sync_point, sync_register, time_sync, timestep, lookahead)[source]¶ Bases:
object
-
class
HLADatastreamManager
(args, kwargs)[source]¶ Bases:
morse.core.datastream.DatastreamManager
External communication using sockets.
morse.middleware.mavlink_datastream module¶
morse.middleware.moos_datastream module¶
-
class
MOOSDatastreamManager
(args, kwargs)[source]¶ Bases:
morse.core.datastream.DatastreamManager
Handle communication between Blender and MOOS.
morse.middleware.pocolibs_datastream module¶
-
class
PocolibsDataStreamInput
(component_instance, kwargs)[source]¶ Bases:
morse.middleware.abstract_datastream.AbstractDatastream
-
class
PocolibsDataStreamOutput
(component_instance, kwargs)[source]¶ Bases:
morse.middleware.abstract_datastream.AbstractDatastream
-
class
PocolibsDatastreamManager
(args, kwargs)[source]¶ Bases:
morse.core.datastream.DatastreamManager
Handle communication between Blender and Pocolibs.
morse.middleware.pocolibs_request_manager module¶
-
class
PocolibsRequestManager
[source]¶ Bases:
morse.core.request_manager.RequestManager
Implements Pocolibs requests to control the MORSE simulator.
This is done by re-implementing (parts of) the TCLserv protocol.
-
HOST
= ''¶
-
PORT
= 9473¶
-
morse.middleware.ros_datastream module¶
The ROS ‘datastream manager’ is responsible for ROS topic management in MORSE. It publishes simulated sensors and subscribes to topics controlling simulated actuators.
As you may have noticed, the
morse.middleware.ros_datastream.ROSDatastreamManager
class is
actually empty: contrary to sockets, for instance, that always use direct JSON
serialization of MORSE Python objects, there is no generic way to encode/decode
ROS messages.
Thus, morse/middleware/ros contains one specific
serialization/deserialization class for each sensor/actuator. These classes
inherit either from morse.middleware.ros.abstract_ros.ROSPublisher
or from:py:class:morse.middleware.ros.abstract_ros.ROSSubscriber.
If you want to add support for a new type of topic, you likely want to add it as a new serialization implementation in this directory.
Note also that management of ROS services and ROS actions takes place in ros_request_manager.py.
-
class
ROSDatastreamManager
(args, kwargs)[source]¶ Bases:
morse.core.datastream.DatastreamManager
Handle communication between Blender and ROS.
morse.middleware.ros_request_manager module¶
morse.middleware.socket_datastream module¶
-
class
MorseEncoder
(skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]¶ Bases:
json.encoder.JSONEncoder
-
class
SocketDatastreamManager
(args, kwargs)[source]¶ Bases:
morse.core.datastream.DatastreamManager
External communication using sockets.
morse.middleware.socket_request_manager module¶
-
class
SocketRequestManager
[source]¶ Bases:
morse.core.request_manager.RequestManager
Implements services to control the MORSE simulator over raw ASCII sockets.
The syntax of requests is:
>>> id component_name service [params with Python syntax]
id
is an identifier set by the client to conveniently identify the request. It must be less that 80 chars in [a-zA-Z0-9].The server answers:
>>> id status result_in_python|error_msg
status
is one of the constants defined inmorse.core.status
.
morse.middleware.text_datastream module¶
-
class
BasePublisher
(component_instance, kwargs)[source]¶ Bases:
morse.middleware.abstract_datastream.AbstractDatastream
-
class
TextDatastreamManager
(args, kwargs)[source]¶ Bases:
morse.core.datastream.DatastreamManager
Produce text files as output for the components
morse.middleware.yarp_datastream module¶
-
class
YarpDatastreamManager
(args, kwargs)[source]¶ Bases:
morse.core.datastream.DatastreamManager
Handle communication between Blender and YARP.
-
class
YarpPort
(component_instance, kwargs)[source]¶ Bases:
morse.middleware.abstract_datastream.AbstractDatastream
-
class
YarpPublisher
(component_instance, kwargs)[source]¶
morse.middleware.yarp_json_request_manager module¶
-
class
YarpRequestManager
[source]¶ Bases:
morse.core.request_manager.RequestManager
Implements services to control the MORSE simulator over YARP
The syntax of requests is: >>> id component_name service [params with Python syntax]
‘id’ is an identifier set by the client to conveniently identify the request. It must be less that 80 chars in [a-zA-Z0-9].
The server answers: >>> id OK|FAIL result_in_python|error_msg
morse.middleware.yarp_request_manager module¶
-
class
YarpRequestManager
[source]¶ Bases:
morse.core.request_manager.RequestManager
Implements services to control the MORSE simulator over YARP
The syntax of requests is: >>> id component_name service [params with Python syntax]
‘id’ is an identifier set by the client to conveniently identify the request. It must be less that 80 chars in [a-zA-Z0-9].
The server answers: >>> id OK|FAIL result_in_python|error_msg