Moveit with MATLAB Robotics Systems Toolbox

332 views
Skip to first unread message

Umer Huzaifa

unread,
Apr 5, 2016, 4:53:42 PM4/5/16
to MoveIt! Users

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

faichele

unread,
Apr 8, 2016, 2:58:42 AM4/8/16
to MoveIt! Users
Reply all
Reply to author
Forward
0 new messages