Turtlebot/Pincher Arm Gazebo simulation (with MoveIt)
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?
This may of interest to you: https://github.com/AS4SR/general_info/wiki/ROS-MoveIt!-and-Gazebo-Integration-(WIP)
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?
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)
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)