![]() |
MIPI - Physical Interface for MIDI Files
|
The Controller class exposes no public class members and as such can only be instantiated and destroyed. See below for a list of exposed ROS2 interfaces that allow interaction when the node is running.
| Interface Name | Topic/Service Name | Type | Description |
|---|---|---|---|
| Services | |||
load_service_ | /MIPI/load | jamc::srv::Load | Uses the custom "Load" service, takes a filepath and an index corresponding to the instrument channel to load |
time_service_ | /MIPI/time_scale | jamc::srv::TimeScale | Uses the custom TimeScale service, takes a float between 0 and 1 that corresponds to the playback speed the robot should be playing at |
play_pause_service_ | /MIPI/play_pause | jamc::srv::Func | Uses the custom Func service, takes an empty that causes the node to toggle playback of the robot |
play_direction_service_ | /MIPI/direction | jamc::srv::Func | Uses the custom Func service, takes an empty that causes the node to toggle playback direction of the robot |
| Subscribers | |||
debug_target_sub_ | /debug_target | geometry_msgs::msg::Point | Anytime a point message is received here it will trigger the robot to attempt to move the end effector, via servo, by treating that point as a direction vector (utilising only the x and y) |
key_positions_sub_ | /piano_keys | geometry_msgs::msg::PoseArray | Expects a PoseArray msg of size 37. Updates an internal variable used to find the position of the keys in relation to the camera. Referred to in the control loop when calculating the X and Y velocity |
joint_state_sub_ | /joint_states | sensor_msgs::msg::JointState | Expects a JointState msg. This is a topic that is normally created when the UR3e Driver is started and reflects the current joint poisitions of the robot |
| Publishers | |||
twist_pub_ | /servo_node/delta_twist_cmds | geometry_msgs::msg::TwistStamped | Publishes to the MoveIt servo node for streaming End Effector velocities |
joint_traj_streaming_pub_ | /servo_server/delta_joint_cmds | control_msgs::msg::JointJog | Publishes to the MoveIt servo_server to directly stream joint velocities. Used in the startup sequence to bring the robot into position |