[ ] Use of MoveIt setup assistant to produce a moveit package for each robot. This is the standard package to customize planning workflow for a specific robot
[ ] Any/all planning requests should be funneled through move_group node, which is the goto node for path planning in ROS. This include FK/IK and planning services
[ ] Display list of planners in Slicer, rosparam or yaml file? move_group will require ROS param (however these are defined in ROS2). URDF and ROS control configuration are used to setup the collision volumes and execution of tasks
[ ] Should motion execution be funneled through MoveIt (if possible at all) or sent directly through the robot?
[ ] Interactive markers. These are a bit of difficult to put in a category. On one hand they require a GUI that is attached to a robot frame. On the other is every time one is moved it needs to call (in this case) the move_group IK service. Is this worth making interactive markers generic in Slicer or assume they will always be used in a moveit context.
[ ] Export scene to MoveIt! Simon has some experience with this. For this, Slicer needs to publish a moveit_msgs/PlanningScene message that will be received by the move_group node. Once this received, any path planning algorithm will be using that scene.
[ ] Ability to define a cartesian goal in Slicer. RViz has 3D markers which can be moved around in the scene with a regular mouse. Does Slicer provide something similar? move_group provides a cartesian path (straight line) and a kinematic path planning services. It is unclear if the Cartesian path service is a single line segment or able the piece together several motion as the kinematic planning services. Either way, both have values and should be accessible from Slicer through service calls.
[ ] While the cartesian goal is moved around, RViz shows the robot in real time. We assume this is done using an IK service. We would likely want to implement something similar in Slicer.
[ ] Preview trajectory. We assume MoveIt! Sends joint positions to a simulated robot with its own robot_state_publisher and then RViz shows the simulated robot on top of the real one. This needs to be validated. That would be a good reason to support multiple robots in Slicer.