Hi,
I am a newbie in Moveit and ROS. My goal is to design a cartesian trajectory for robots using Moveit. But I want to trigger and input the desired trajectory from MATLAB using the Robotics Systems Toolbox (RST). My question is, is it possible to use Moveit features using MATLAB RST supported communication techniques?
What makes me ask this is that MATLAB RST does not support Actions as yet and you have to mimic Actions communicaitons
As an example, I have a 7DOF arm available in ROS with working Moveit in RViz interface.
I can see following topics that I can talk to in MATLAB:
/attached_collision_object
/clock
/collision_object
/gazebo/link_states
/gazebo/model_states
/gazebo/parameter_descriptions
/gazebo/parameter_updates
/gazebo/set_link_state
/gazebo/set_model_state
/joint_states
/move_group/cancel
/move_group/display_contacts
/move_group/display_planned_path
/move_group/feedback
/move_group/goal
/move_group/monitored_planning_scene
/move_group/ompl/parameter_descriptions
/move_group/ompl/parameter_updates
/move_group/plan_execution/parameter_descriptions
/move_group/plan_execution/parameter_updates
/move_group/planning_scene_monitor/parameter_descriptions
/move_group/planning_scene_monitor/parameter_updates
/move_group/result
/move_group/sense_for_plan/parameter_descriptions
/move_group/sense_for_plan/parameter_updates
/move_group/status
/move_group/trajectory_execution/parameter_descriptions
/move_group/trajectory_execution/parameter_updates
/pickup/cancel
/pickup/feedback
/pickup/goal
/pickup/result
/pickup/status
/place/cancel
/place/feedback
/place/goal
/place/result
/place/status
/planning_scene
/planning_scene_world
/recognized_object_array
/rgbd_camera/depth/camera_info
/rgbd_camera/depth/image_raw
/rgbd_camera/depth/points
/rgbd_camera/ir/camera_info
/rgbd_camera/ir/image_raw
/rgbd_camera/ir/image_raw/compressed
/rgbd_camera/ir/image_raw/compressed/parameter_descriptions
/rgbd_camera/ir/image_raw/compressed/parameter_updates
/rgbd_camera/ir/image_raw/compressedDepth
/rgbd_camera/ir/image_raw/compressedDepth/parameter_descriptions
/rgbd_camera/ir/image_raw/compressedDepth/parameter_updates
/rgbd_camera/ir/image_raw/theora
/rgbd_camera/ir/image_raw/theora/parameter_descriptions
/rgbd_camera/ir/image_raw/theora/parameter_updates
/rgbd_camera/parameter_descriptions
/rgbd_camera/parameter_updates
/rgbd_camera/rgb/camera_info
/rgbd_camera/rgb/image_raw
/rgbd_camera/rgb/image_raw/compressed
/rgbd_camera/rgb/image_raw/compressed/parameter_descriptions
/rgbd_camera/rgb/image_raw/compressed/parameter_updates
/rgbd_camera/rgb/image_raw/compressedDepth
/rgbd_camera/rgb/image_raw/compressedDepth/parameter_descriptions
/rgbd_camera/rgb/image_raw/compressedDepth/parameter_updates
/rgbd_camera/rgb/image_raw/theora
/rgbd_camera/rgb/image_raw/theora/parameter_descriptions
/rgbd_camera/rgb/image_raw/theora/parameter_updates
/rgbd_camera/rgb/points
/rosout
/rosout_agg
/rviz_RADLab_PC_27799_716056535572644738/motionplanning_planning_scene_monitor/parameter_descriptions /rviz_RADLab_PC_27799_716056535572644738/motionplanning_planning_scene_monitor/parameter_updates
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update_full
/seven_dof_arm/gripper_controller/command
/seven_dof_arm/gripper_controller/follow_joint_trajectory/cancel
/seven_dof_arm/gripper_controller/follow_joint_trajectory/feedback
/seven_dof_arm/gripper_controller/follow_joint_trajectory/goal
/seven_dof_arm/gripper_controller/follow_joint_trajectory/result
/seven_dof_arm/gripper_controller/follow_joint_trajectory/status
/seven_dof_arm/gripper_controller/state
/seven_dof_arm/joint_states
/seven_dof_arm/seven_dof_arm_joint_controller/command
/seven_dof_arm/seven_dof_arm_joint_controller/follow_joint_trajectory/cancel
/seven_dof_arm/seven_dof_arm_joint_controller/follow_joint_trajectory/feedback
/seven_dof_arm/seven_dof_arm_joint_controller/follow_joint_trajectory/goal
/seven_dof_arm/seven_dof_arm_joint_controller/follow_joint_trajectory/result
/seven_dof_arm/seven_dof_arm_joint_controller/follow_joint_trajectory/status
/seven_dof_arm/seven_dof_arm_joint_controller/state
/tf
/tf_static
/trajectory_execution_event
What topics should I publish to?
Has anybody tried this in MATLAB? I know these solutions are available in Python and C++ but I dont want to leave MATLAB because all my algorithms are in m-codes.
I can send messages to "move_group/Goal" from MATLAB. But this message does not have an option of Goal Pose. The options I get as I make a rosmessage('/move_group/MoveGroupActionGoal') are as shown in the figure.
And as I check the options in Goal, they are the following:
msg.Goal.showdetails
Request
PlannerId :
GroupName :
NumPlanningAttempts : 0
AllowedPlanningTime : 0
WorkspaceParameters
Header
Seq : 52
FrameId :
Stamp
Sec : 0
Nsec : 0
MinCorner
X : 0
Y : 0
Z : 0
MaxCorner
X : 0
Y : 0
Z : 0
StartState
IsDiff : 0
JointState
Name : {}
Position : []
Velocity : []
Effort : []
Header
Seq : 53
FrameId :
Stamp
Sec : 0
Nsec : 0
MultiDofJointState
JointNames : {}
Header
Seq : 54
FrameId :
Stamp
Sec : 0
Nsec : 0
Transforms : []
Twist : []
Wrench : []
AttachedCollisionObjects : []
PathConstraints
Name :
JointConstraints : []
PositionConstraints : []
OrientationConstraints : []
VisibilityConstraints : []
TrajectoryConstraints
Constraints : []
GoalConstraints : []
PlanningOptions
PlanOnly : 0
LookAround : 0
LookAroundAttempts : 0
MaxSafeExecutionCost : 0
Replan : 0
ReplanAttempts : 0
ReplanDelay : 0
PlanningSceneDiff
Name :
RobotModelName :
IsDiff : 0
RobotState
IsDiff : 0
JointState
Name : {}
Position : []
Velocity : []
Effort : []
Header
Seq : 55
FrameId :
Stamp
Sec : 0
Nsec : 0
MultiDofJointState
JointNames : {}
Header
Seq : 56
FrameId :
Stamp
Sec : 0
Nsec : 0
Transforms : []
Twist : []
Wrench : []
AttachedCollisionObjects : []
AllowedCollisionMatrix
EntryNames : {}
DefaultEntryNames : {}
DefaultEntryValues : []
EntryValues : []
World
Octomap
Header
Seq : 57
FrameId :
Stamp
Sec : 0
Nsec : 0
Origin
Position
X : 0
Y : 0
Z : 0
Orientation
X : 0
Y : 0
Z : 0
W : 0
Octomap
Binary : 0
Id :
Resolution : 0
Data : []
Header
Seq : 58
FrameId :
Stamp
Sec : 0
Nsec : 0
CollisionObjects : []
FixedFrameTransforms : []
LinkPadding : []
LinkScale : []
ObjectColors : []
This apparently wants me to supply all the path constraints but I dont have any. How can I pass a simple cartesian trajectory to my robot?
Thanks