0
$\begingroup$

Rosanswers logo

I have a question about using moveit for my custom 6 dof manipulator robot. I am pretty new to ROS, and I really hope to learn from the community.

Basically I want to go from a URDF file to actually programmatically sending commands to my robot after planning trajectories using moveit.

From the various tutorials, I have figured that this is what i have to do

  1. Generate the URDF from the CAD model using the Solidworks plugin.
  2. Use the URDF to generate a MoveIt package using the MoveIt setup assistant.
  3. Now if I wanted to use the GUI, I could import my model into RViz and manually execute the planning, but that's not what I want, I want to do so programmatically(ideally through python/rospy, but C++ is also OK)
  4. Use ROS control to write a driver interface for communicating to the actual hardware.

I have questions about Step 3 and 4.

How do I programmatically control my own robot?

The MoveIt MoveGroup tutorial here has an example of the API but critical things(like, how do I use my robot's files?) are not clear here. How do I import my robots files(or direct MoveIt to it) in the script to ensure the calculations are done properly? I understand MoveIt commander is the python interface, but is there any example using the MoveIt Commander and a description of its API? Could somebody link to Open source code for open robots that I can see and learn.

Can you link me to any code which runs on a robot other than the PR2, that I can run and test on my system?

Also, How do I connect Ros_control and MoveIt? I have looked into the ros control boilerplate repository which has some pointers on writing the driver, but I cant find any documentation on the interface between the two.

I want to use MoveIt for my custom robotic arm and have reached the stereotypical cliff that occurs after reading through and doing the common tasks in the various tutorials and videos on ROS.

Thanks!


Originally posted by t27 on ROS Answers with karma: 68 on 2016-10-23

Post score: 3

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

I usually look at the API on Github for MoveIt commander here. You will most likely be wanting move_group.py for planning.

As for importing your robot files in the python script, you will already have move_group.launch running from the package created by MoveIt setup assistant. Then you load a planning group from the SRDF, which was launched from move_group.launch.

Here is a MoveIt tutorial for Baxter research robot. Here is one for UR5.

As for connecting to hardware, you usually just pass the trajectory to your controller. Depending on your robot, there may already exist motor drivers for it (i.e., Dynamixel motors).


Originally posted by JoshMarino with karma: 592 on 2016-10-23

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by NickCitizen on 2017-09-05:
This is helpful. In particular, the comment about move_group.py in moveit/moveit_commander/src/moveit_commander/ in the github repository.

Interestingly, the c++ MoveGroup class seems to have the get_named_targets() method we need, while the Python RobotCommander only has set_named_targets()...

Comment by v4hn on 2017-09-15:
Feel free to pull-request a patch that adds the methods. It simply wasn't added before because apparently nobody required it or was willing to write the code.

Comment by NickCitizen on 2017-09-15:
You are right in that it is not essential. I ended using the srdfdom package to get arround the lack of that particular method, code example available here: https://github.com/nickovaras/Vector_UR5/blob/master/mobile_manipulation/src/mobile_manipulation.py

$\endgroup$
0
$\begingroup$

Rosanswers logo

For connecting ros_control to moveit, see https://github.com/ros-planning/moveit/tree/kinetic-devel/moveit_plugins/moveit_ros_control_interface


Originally posted by Dave Coleman with karma: 1396 on 2016-10-24

This answer was NOT ACCEPTED on the original site

Post score: 2


Original comments

Comment by Fulin on 2017-10-06:
Hi Dave,

Is there any example or doc showing how to use moveit_ros_control_interface? Thank you!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.