Because I am planning to write my master thesis using Gazebo and ROS I have some basic questions concerning various topics.
My goal is the simulation of a 5dof robot arm, its mobile plattform and some sensors (laser scanner, kinect camera etc.). Based on the existing ROS-modules of our real robot the plattform and the arm should be able to move. The simulation should be used as a hardware independent development environment for our real robot.
What do I have so far:
I got an sdf description file for the arm and its plattform. So far it looks fine. I only set the basic parameter (no physical parameters, no weights, no joint engines etc.). If I start the engine the robot arm falls to the ground observing the set collision (self collide) ranges, which I think is the expected behavior.
(I did some research before and maybe I overlooked something, but I just want to be sure about these things before I start the real work or maybe it becomes apparent that I made some wrong assumptions.)
Do I need to provide all the physical / dynamic parameter of our robot?
We don't need a completely perfect physical behavior in the first instance. The correct movement of the plattform and the arm would be sufficient. And I fear that we dont have all the parameters needed in our robot documentation. Maybe it is possible to limit the dynamic to a minimum.
What is the best strategy to start the development and control of all related control- / bahavior- / ros-parts (to control the robot)?
My plan was to work with a few sdf-files and then use a "main" gazebo-plugin for the rest. I know that I somehow have to use diffent gazebo-plugins for sensors and ros-components etc.. Everything needed would be called from that one plugin. Or what is the best way respectively your recommandation?
How to best connect the existing ros-components / ros-logic of our real robot to the gazebo-simulation?
Can I call them just through the "main" gazebo-plugin like in the question before?
What is the best way to control the joints?
Do I have to specify a pid-controller for every joint (problem with missing infos) or would it be enough / the better way to control the joints through the physics::JointController Classes / or similar?
What about that realtime-controller everybody is talking?
Do I need such a controller to control my robot in a reasonable way? Wouldn't the control just work over input for the plugins as there are ros-components for movement and grasping which only wait for e.g. target-coordinates.
Well I think thats it for the time being.
Thank you very much for your answers once before.
Post score: 0
Comment by SL Remy on 2013-04-07:
What package is used to control the (real) arm?
Comment by Christoph on 2013-04-08:
Hardware specific packages (
metralabs_ros) as the interface to the real hardware and
arm_navigation (ros stack) for calculating the arm movement itself.