ROS2 specific API and nodes, for the motion stack core.
Links ROS2 systems and and the pure pyhton core. Timer, Messages, Publisher, Subscription … all of those ROS2 tools are created here then executes functions of the core.
ros2.base_nodeProvides the API template to use the python core through ROS2 nodes.ros2.default_nodeuses this API to make the default nodes.
Non-ROS2-related opertation must NOT be implemented here.
- motion_stack.ros2.base_node package
- motion_stack.ros2.default_node package
- motion_stack.ros2.ros2_asyncio package
- motion_stack.ros2.utils package
- Submodules
- motion_stack.ros2.utils.conversion module
- motion_stack.ros2.utils.executor module
- motion_stack.ros2.utils.files module
- motion_stack.ros2.utils.joint_state module
- motion_stack.ros2.utils.lazy_joint_state_publisher module
- motion_stack.ros2.utils.linking module
- motion_stack.ros2.utils.task module
Holds ros2 communication interface data.
It provides the names, types and QoS of every interface – topics, services, actions – used by the motion stack.
No need to remember the right name with the right spelling, type, QoS
throughout your code. Simply import this and use
communication.lvl1.output.joint_state.name to get joint_read
The user can possibly change those settings (especially QoS) if he understands the implcations. By default the most unversal setting QoS is used.
- Parameters: limb_number – Number of the limb
- Returns: Namespace of the limb.
- Return type:
str
Bases: NamedTuple
Ros2 interface class with type and name
- Fields:
- type (
Type) – Alias for field number 0 - name (
str) – Alias for field number 1 - qos (
QoSProfile) – Alias for field number 2
- type (
Bases: object
Type: Interf
Bases: object
motor_command = (<class 'sensor_msgs.msg._joint_state.JointState'>, 'joint_commands', <rclpy.qos.QoSProfile object>)
Type: Interf
joint_state = (<class 'sensor_msgs.msg._joint_state.JointState'>, 'joint_read', <rclpy.qos.QoSProfile object>)
Type: Interf
advertise = (<class 'motion_stack_msgs.srv._return_joint_state.ReturnJointState'>, 'advertise_joints', <rclpy.qos.QoSProfile object>)
Type: Interf
Bases: object
motor_sensor = (<class 'sensor_msgs.msg._joint_state.JointState'>, 'joint_states', <rclpy.qos.QoSProfile object>)
Type: Interf
joint_target = (<class 'sensor_msgs.msg._joint_state.JointState'>, 'joint_set', <rclpy.qos.QoSProfile object>)
Type: Interf
Bases: object
Type: Interf
Bases: object
joint_target = (<class 'sensor_msgs.msg._joint_state.JointState'>, 'joint_set', <rclpy.qos.QoSProfile object>)
Type: Interf
tip_pos = (<class 'geometry_msgs.msg._transform.Transform'>, 'tip_pos', <rclpy.qos.QoSProfile object>)
Type: Interf
Bases: object
joint_state = (<class 'sensor_msgs.msg._joint_state.JointState'>, 'joint_read', <rclpy.qos.QoSProfile object>)
Type: Interf
set_ik = (<class 'geometry_msgs.msg._transform.Transform'>, 'set_ik_target', <rclpy.qos.QoSProfile object>)
Type: Interf