--- # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: CC-BY-SA-4.0 title: Robot physical properties permalink: /modules/4/robot-physical-properties.html --- To model any object in simulation, it is necessary to specify the kinematic and dynamics property of the object, the collision model, and the visual representation. To simplify the modeling, any object is composed of a number of links and link connectors, called joints. There are two types of XML files that can be used: Simulation Description Format (SDF) which is the standard format for Gazebo and Unified Robot Description Format (URDF), used within ROS and converted automatically to SDF by Gazebo. Building a full realistic object model is relatively complex. Here, we highlight the main components from the ROS perspective that could be changed according to the needs. Gazebo provides a [complete tutorial on building a full robot in SDF](http://gazebosim.org/tutorials/?tut=build_robot). It is useful also to refer the [SDF documentation](http://sdformat.org/spec). A full example is provided by this [Gazebo tutorial on building the robot from scratch](http://gazebosim.org/tutorials/?tut=build_robot). Typically, any robot has a `description` ROS package which includes the URDF. Examples include the [Turtlebot 3](http://wiki.ros.org/turtlebot3_description), [Clearpath Husky](http://wiki.ros.org/husky_description), and the [PR2 robot](http://wiki.ros.org/pr2_description). For more information, please see the [URDF tutorials](http://wiki.ros.org/urdf/Tutorials) provided by ROS. For our purpose, we will take a look at the one for the Waveshare Jetbot, in particular at [its URDF file](https://raw.githubusercontent.com/aws-samples/aws-robomaker-jetbot-ros/main/src/jetbot_description/urdf/jetbot.urdf). ``` transmission_interface/SimpleTransmission hardware_interface/VelocityJointInterface 1 VelocityJointInterface transmission_interface/SimpleTransmission hardware_interface/VelocityJointInterface 1 ``` The structure is very similar for all wheeled robots: 1. the main body of the robot -- in this case called `chassis`. 2. the effectors and actuators -- in this case the `wheels`. 3. the sensors -- for camera and LiDAR. There is a connected tree of links, connected by joints. ROS follows some conventions, which are specified in ROS Enhancement Proposals (REPs), in particular [REP 105](https://www.ros.org/reps/rep-0105.html) for Coordinate Frames for Mobile Platforms and [REP 120](https://www.ros.org/reps/rep-0120.html#base-footprint) for coordinate frames of humanoid robots. Distances between links can be measured by the 3D model. In practice, a calibration is required so that sensors’ extrinsics – i.e., the relative transformation between them – are known. Note that the collision and the visual can be specified with a 3D model (e.g., a `.dae` file) generated with an external CAD software. Typically, the collision is represented by more simplified geometric elements, reducing the workload on the simulator. An example on the Jetbot is in the following figure, which shows in orange the collision box, while maintaining a realistic view. Robot collision. ----- Now that we have the body of the robot, let's see in the [next unit]({{ site.baseurl }}{% link _modules/mod-4c-sensors.md %}) how to add sensors.