I think what you are looking for is the move group interface. It is a programming interface that lets you do from a program what you are now able to do from rviz: define a goal Cartesian pose and have MoveIt generate a joint trajectory and send it to the robot. The move group interface is available in c++ and python. This is what you use to tell MoveIt what to do. (This is also what the rviz plugin uses to tell MoveIt what to do.)
Telling MoveIt how to control your robot is what the other emails in this thread are talking about: ROS serial, fake robot controller, ROS control, etc
Cheers
Acorn
Yup.
Or if you don't need that much complexity check out the FakeRobotController which sends joint trajectory messages. Write a node (ROS program) that receives those messages and moves your robot to the requested position.
Joint State is, by convention, where the robot is now (the current state of the robot). The robot controller publishes this to tell MoveIt where the robot is. Robot State Publisher uses it to publish tf frames which allow rviz to display the robot in its current pose.
Follow Joint Trajectory is the command telling the robot where to go. This is publisher by the fake robot controller in MoveIt.
There are (at least) 2 ways to write a robot controller:
1
You can write a robot controller which receives the FollowJointTrajectory messages and moves the robot to that location, and publishes the Joint State message to tell everyone where the robot is now. MoveIt will use the fake robot controller to publish these FollowJointTrajectory messages which your controller subscribes to.
2
You can replace the fake robot controller in MoveIt with your own plugin which controls the robot.
The decision is up to you. Is you want to use ROS messages and don't want to write a plugin then do 1. If you want to write your controller as a plugin, or want to communicate to your controller using done mechanism other than ROS messages (or use a different ROS message) then do 2. It is probably simpler to do 1 for a simple robot. For high performance robots that expect to receive commands at a very regular high rate (e.g 1kHz) there are reasons to prefer 2 (This is also something ROS control is designed to help with).
Acorn
Moving to a pose goal is similar to the step above except we now use the move() function. Note that the pose goal we had set earlier is still active and so the robot will try to move to that goal. We will not use that function in this tutorial since it is a blocking function and requires a controller to be active and report success on execution of a trajectory.
Hello , Shawn.I am a student from china ,I have just learned ROS-I and have a abb-irb120 robot. I learn that the moveit can plan the path of robot in ROS. Are there other manual to learn moveit? Now , I learn MOVEIT from these website---http://moveit.ros.org/documentation/tutorials/ . The API DOC is a good manual ,but I can't understand how to use it. Thank you very much!