I can't figure out how the MoveIt interfaces with the hardware controller. Any help or references welcome. I tried the following:
1. I created Python action servers that handle action messages sent by MoveIt for each move group in a new package named `my_robot_controller`. These are dummy SimpleActionServers I modified from the [actionlib tutorial](http://wiki.ros.org/actionlib_tutorials/Tutorials/Writing%20a%20Simple%20Action%20Server%20using%20the%20Execute%20Callback%20%28Python%29). I named them `my_move_group_controller.py`. They print to terminal using rospy.loginfo.
2. I edited the controllers.yaml file in my_robot_moveit/config using the same `my_move_group` names.
3. Following the [MoveIt! tutorial on creating the controller launch file](http://docs.ros.org/hydro/api/pr2_moveit_tutorials/html/planning/src/doc/controller_configuration.html#create-the-controller-launch-file), I created a file `my_robot_description_moveit_controller_manager.launch` inside the `my_robot_moveit` package (created using the setup assistant). According to the SRDF file in that same package/config, the robot's name is my_robot_description, as that's where the URDF lives.
4. I created a my_robot_moveit.launch file to start rviz and moveit (like demo.launch but enabling reading from joint_states). I set fake_execution to false.
5. `rosrun my_robot_moveit my_robot_description_moveit_controller_manager.launch`. This command runs and terminates without error.
6. `rosrun my_robot_moveit my_robot_moveit.launch`. This launches rviz and I can visualize the robot and plan trajectories, but there is no output on the terminal or error. Loginfo displays `Fake execution of trajectory` even though that should be disabled.
I'm probably missing the point, but the the tutorials don't explain how to set this up properly. I'm using the dynamixel_motor package to control my motors (through topics) so any tips on how to do that properly would also be welcome.
↧