Gazebo | Ignition | Community
Ask Your Question
0

Turtlebot/Pincher Arm Gazebo simulation (with MoveIt)

asked 2018-04-13 06:29:30 -0600

RedJohn gravatar image

updated 2018-09-18 01:13:00 -0600

My goal

My goal is to have the pincher arm simulated in Gazebo and control its movements programmatically (preferably through MoveIt). I don't want/need the turtlebot itself, just the arm.

What I've done

I have git cloned & catkin build & sourced the packages for the turtlebot arm (and also the arbotix-packages), and there are already the description package (with the urdf-files), a MoveIt package and various other packages in the repository, but unfortunately no Gazebo package. I can run the MoveIt demo (roslaunch turtlebot_arm_moveit_config demo.launch) where one can set the goal pose of the arm in Rviz and plan & execute the arm to get to the desired pose. I know that one can do that also programmatically through a python script or a C++ program (as described here).

I tried to make a Gazebo package myself, taking the one from the universal robot as a template, but I'm a bit lost with all the files in there. I managed to load the robot arm into Gazebo (with the base_link fixed), but there the arm just falls down, as if there were no controllers running. With the running Gazebo simulation, I get the following rostopic list:

/gripper_controller/gripper_action/cancel
/gripper_controller/gripper_action/feedback
/gripper_controller/gripper_action/goal
/gripper_controller/gripper_action/result
/gripper_controller/gripper_action/status
/gripper_joint/command

My Gazebo launch file looks like this:

(see here)

I'm running Gazbebo 7.11.0 with ROS Kinetic on a Ubuntu 16.04 (in a VM on a Win10 host).

My question

What do I have to do in order to control the turtlebot arm not only in Rviz, but also in Gazebo? I'm relatively new to Gazebo/ROS, so apologises if this seems lika a trivial task to you. Thank you for your help!

UPDATE

I managed to get the (pincher) arm move in Gazebo! If you want to have a look at the packages: https://github.com/joellutz/pincher_a.... I can move the arm (and the gripper) in MoveIt & Rviz, and the arm also moves in Gazebo.

What I'm still missing: I had to create a own control-package with controllers etc. But there are already controllers from arbotix for the PhantomX Pincher Arm, which are needed to move the arm around in real life. They are also used in the turtlebot_arm_bringup/launch/arm.launch, and I don't want to have separate things for the simulation and the real world. So my question is: How can I get this to work with the arbotix controllers, rather than my own control package?

edit retag flag offensive close merge delete

Comments

Thank you, I went through this tutorial, but it assumes one already has a working Gazebo & control package, which are both not present in the turtlebot arm repo. Nevertheless, the arm now stands upright in the Gazebo simulation and doesn't fall down anymore, so at least something:) However, if I move the arm with the Rviz & MoveIt GUI, the arm in Gazebo doesn't move (even though the logging of the Gazebo terminal says it has received & executed an action goal of the arm_controller). Any ideas?

RedJohn gravatar imageRedJohn ( 2018-04-16 02:13:30 -0600 )edit

Your repo looks ok, But one important point is that turtlebot_arm xacro doesn't contain gazebo control information. I do that in [my own repo](https://github.com/corot/thorp/blob/master/thorp_description/urdf/thorp_gazebo.urdf.xacro#L175). Sorry, I'm not an expert on Gazebo... I came with this by try an error, and I'm not fully sure it's right (but works for me with the single-sided gripper)

corot gravatar imagecorot ( 2018-05-06 17:38:27 -0600 )edit

Your repo looks ok, But one important point is that turtlebot_arm xacro doesn't contain gazebo control information. I do that in [my own repo](https://github.com/corot/thorp/blob/master/thorp_description/urdf/thorp_gazebo.urdf.xacro#L175). Sorry, I'm not an expert on Gazebo... I came with this by try an error, and I'm not fully sure it's right (but works for me with the single-sided gripper)

corot gravatar imagecorot ( 2018-05-06 17:39:00 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
2

answered 2018-05-06 17:40:02 -0600

corot gravatar image

Your repo looks ok, But one important point is that turtlebot_arm xacro doesn't contain gazebo control information. I do that in my own repo. Sorry, I'm not an expert on Gazebo... I came with this by try an error, and I'm not fully sure it's right (but works for me with the single-sided gripper)

edit flag offensive delete link more

Comments

Thank you, I've already done that, taking your repo as a template: https://github.com/joellutz/pincher_arm/blob/master/turtlebot_arm_description/urdf/pincher_arm.urdf.xacro#L37. I forgot to mention that I use the pincher arm, not the turtlebot arm. The thing is, I now need two different moveit config packages, one when simulating and moving the arm in Gazebo, and one when moving the real arm (where I use the arbotix controllers). It would be preferable to have just one (with arbotix controllers)

RedJohn gravatar imageRedJohn ( 2018-05-07 00:49:54 -0600 )edit
0

answered 2018-09-18 01:10:24 -0600

RedJohn gravatar image

Just FYI, I managed to simulate the pincher arm in gazebo. This is my repository where I had to create a gazebo package, a control package and a separate MoveIt package for the gazebo simulation. For the real arm, a different MoveIt package (also in my repo) and a specific version of the arbotix controllers (this one) is necessary. I previously thought it should be possible to control the arm in gazebo with the arbotix controllers, but it turned out to be easier to just have separate MoveIt packages and controllers.

Note that after days of trying and failing I had to abandon the gripper completely in the simulation. So the gripper has no controller and can not be moved in the simulation, and its joints are also fixed. Some issues regarding the pincher gripper can be found here.

I hope this helps if you are facing the same problems!

edit flag offensive delete link more

Comments

Hello, I'm working on similar task of controlling panda robot from moveit via a c++ code. I had asked similar question on the community but couldn't get any help. your question and this(https://github.com/joellutz/pincher_arm_test) github page links is very much helpful. Currently i'm creating all the necessary files and packages but i'm getting confused on how to make this fall in on place so can you please post all the steps you followed to get this task up and running?

mvish7 gravatar imagemvish7 ( 2018-11-20 03:18:03 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2018-04-13 06:29:30 -0600

Seen: 2,441 times

Last updated: Sep 18 '18