Previous: Frequently Asked Questions
Next: Simulator Front Page
Differences Between Real Robot and Simulated Robot
For the most part, the simulated robot interacts with the world around it, and the computers controlling it, in the same way as the real robot. There are a couple of differences, though.
- Two Arms
The simulated system has two arms, not one like the Track A teams currently have. Control of the second arm is the same as control of the first. The only difference is that the ROS topics for the second arm start with LeftArm instead of RightArm.
- Gravity Compensation
There is no gravity acting on the robot in the simulator, and there is no corresponding gravity compensation running. This was done to reduce the computational requirements to run the simulator. Since gravity in gazebo can be selectively applied to links in the robot, we chose to not apply it so that we would not then have to compensate for it. Gravity does still apply to all other objects in the simulated world, so that objects will sit on a table, and if pushed off the edge of the table, they will fall to the ground. Also, since there are no torques being generated for gravity compensation, the simulated robot will not generate torque faults under exactly the same circumstances as the real robot.
- WAM Faults
A safety process is running for the simulated robot. When faults or warnings occur, a message is published to the /TestExecution/report_status_string topic and will be printed in the Test Team tab of the Dashboard. The arm is not stopped and the simulator will continue running.
- Finger Breakaway Joint
The finger breakaway joint is programmed to rotate at the same rate as the actual finger, and to allow breakaway behavior when grasping objects. Due to limitations within ROS, though, there are seperate controllers for each joint of the finger, which could generate spurious behavior if grasping an object for a long period of time. Also, although all efforts were made to tune the parameters of the finger controller to mimic the real finger, the forces applied by the finger and the torque required to activate the breakaway joint may deviate from the behavior of the real finger.
- Finger Spread Joint
The spread joint in the hand is not backdriveable in Idle mode.
- Object Grasping
Due to the nature of the ODE physics engine underlying the simulation, there is a small amount of vibration present even when objects are being steadily grasped. This can cause an object to slip out of the grasp of the hand even though it appears to be firmly grasping an object. This can be alleviated by rotating the hand 90degrees, if the object is grasped from the side, or 180degrees, if the object is grasped from above, so that the object is resting on the fingers or pulled into the palm, instead of having gravity pulling the object down between the fingers.
- Bumblebee Image Topic Names
To allow the Bumblebee images to be utilized by the ROS stereo processor, the Bumblebee image topics have been renamed to /BB2/left/image_raw and /BB2/right/image_raw. Add the following line to your launch file to remap the original topic names to the new topic names. These are used in Dashboard.launch in the SimRobot directory in the simulator installation.
<remap from="/BB2/left_rgb" to="/BB2/left/image_raw" /> <remap from="/BB2/right_rgb" to="/BB2/right/image_raw" />
- Camera Modeling
The simulated cameras are programmed to have the same imaging parameters as the real cameras, but certain features are not supported. These include white balance, gain, exposure, and other similar features. Camera parameters are known exactly, so calibration related issues should not be a problem. Binning is not supported on the Prosilica camera, and Bayer images are not being generated.
- Swiss Ranger 4000
Swiss Ranger data is known exactly, so all pixels within the appropriate depth range have 100% confidence, and values outside of that range have 0% confidence. There is a small amount of Gaussian noise in the data.
- Microphones
The microphones are not being simulated.
- Update Rate
The simulator does not currently run at real-time speeds. With all the sensors commented out of the configuration files, update rates will reach real-time on some machines, but with the sensors included update rates will drop drastically. Some features in the sensor models are tuned, but others have not been stream-lined yet. Update rates will improve. Sensors are currently running at slower update rates than the real sensors to reduce computation time.
- Camera Info Messages
Camera Info Messages (sensor_msgs::CameraInfo) are being generated by the simulator, but are not currently generated on the real robot. These messages will be generated when the real robot moves to cturtle from boxturtle.
- Pressure Sensor and Finger Strain Gauges
Values for the pressure sensors are modeled to match the range of values of the real pressure sensors. Strain gauges are modeled to match the specifications provided by Barrett. Values in the simulator may differ from real values due to the underlying simulation, though, so parameters may need to be adjusted if these sensors are being used to detect the grasp state of objects.
- Teleop Control of Neck
When using the joystick to control the neck, the neck does not stop after releasing the joystick. The neck does stop on the real robot.
Previous: Frequently Asked Questions
Next: Simulator Front Page
