mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
cd ~/catkin_ws/src
catkin_create_pkg diff_drive_bot gazebo_ros roscpp
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="diff_drive_bot">
<link name="chassis">
<inertial>
<mass value="10"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.1" ixy="0" ixz="0" iyy="0.1" iyz="0" izz="0.1"/>
</inertial>
<visual>
<geometry>
<box size="0.5 0.3 0.2"/>
</geometry>
<material name="blue">
<color rgba="0.2 0.2 1 1"/>
</material>
</visual>
<collision>
<geometry>
<box size="0.5 0.3 0.2"/>
</geometry>
</collision>
</link>
<joint name="front_left_wheel_joint" type="revolute">
<parent link="chassis"/>
<child link="front_left_wheel"/>
<origin xyz="0.1 0.15 0" rpy="0 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="-1.57" upper="1.57" effort="10.0" velocity="10.0"/>
<dynamics damping="1.0" friction="0.5"/>
</joint>
<joint name="front_right_wheel_joint" type="revolute">
<parent link="chassis"/>
<child link="front_right_wheel"/>
<origin xyz="0.1 -0.15 0" rpy="0 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="-1.57" upper="1.57" effort="10.0" velocity="10.0"/>
<dynamics damping="1.0" friction="0.5"/>
</joint>
<joint name="rear_left_wheel_joint" type="revolute">
<parent link="chassis"/>
<child link="rear_left_wheel"/>
<origin xyz="-0.1 0.15 0" rpy="0 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="-1.57" upper="1.57" effort="10.0" velocity="10.0"/>
<dynamics damping="1.0" friction="0.5"/>
</joint>
<joint name="rear_right_wheel_joint" type="revolute">
<parent link="chassis"/>
<child link="rear_right_wheel"/>
<origin xyz="-0.1 -0.15 0" rpy="0 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="-1.57" upper="1.57" effort="10.0" velocity="10.0"/>
<dynamics damping="1.0" friction="0.5"/>
</joint>
<link name="front_left_wheel">
<inertial>
<mass value="2"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
</inertial>
<visual>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
<material name="blue">
<color rgba="0.2 0.2 1 1"/>
</material>
</visual>
<collision>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
</collision>
</link>
<link name="front_right_wheel">
<inertial>
<mass value="2"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
</inertial>
<visual>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
<material name="blue">
<color rgba="0.2 0.2 1 1"/>
</material>
</visual>
<collision>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
</collision>
</link>
<link name="rear_left_wheel">
<inertial>
<mass value="2"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
</inertial>
<visual>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
<material name="blue">
<color rgba="0.2 0.2 1 1"/>
</material>
</visual>
<collision>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
</collision>
</link>
<link name="rear_right_wheel">
<inertial>
<mass value="2"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
</inertial>
<visual>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
<material name="blue">
<color rgba="0.2 0.2 1 1"/>
</material>
</visual>
<collision>
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
</collision>
</link>
<transmission name="front_left_wheel_transmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="front_left_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="front_left_wheel_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<motorTransmission>
<type>transmission_interface/SimpleMotorTransmission</type>
<timeConstant>0.01</timeConstant>
</motorTransmission>
<gearboxTransmission>
<type>transmission_interface/SimpleGearboxTransmission</type>
<gearRatio>1.0</gearRatio>
</gearboxTransmission>
<jointTransmission>
<type>transmission_interface/SimpleJointTransmission</type>
<jointRatio>1.0</jointRatio>
<zeroOffset>0.0</zeroOffset>
</jointTransmission>
</transmission>
<transmission name="front_right_wheel_transmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="front_right_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="front_right_wheel_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<motorTransmission>
<type>transmission_interface/SimpleMotorTransmission</type>
<timeConstant>0.01</timeConstant>
</motorTransmission>
<gearboxTransmission>
<type>transmission_interface/SimpleGearboxTransmission</type>
<gearRatio>1.0</gearRatio>
</gearboxTransmission>
<jointTransmission>
<type>transmission_interface/SimpleJointTransmission</type>
<jointRatio>1.0</jointRatio>
<zeroOffset>0.0</zeroOffset>
</jointTransmission>
</transmission>
<transmission name="rear_left_wheel_transmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="rear_left_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="rear_left_wheel_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<motorTransmission>
<type>transmission_interface/SimpleMotorTransmission</type>
<timeConstant>0.01</timeConstant>
</motorTransmission>
<gearboxTransmission>
<type>transmission_interface/SimpleGearboxTransmission</type>
<gearRatio>1.0</gearRatio>
</gearboxTransmission>
<jointTransmission>
<type>transmission_interface/SimpleJointTransmission</type>
<jointRatio>1.0</jointRatio>
<zeroOffset>0.0</zeroOffset>
</jointTransmission>
</transmission>
<transmission name="rear_right_wheel_transmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="rear_right_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="rear_right_wheel_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<motorTransmission>
<type>transmission_interface/SimpleMotorTransmission</type>
<timeConstant>0.01</timeConstant>
</motorTransmission>
<gearboxTransmission>
<type>transmission_interface/SimpleGearboxTransmission</type>
<gearRatio>1.0</gearRatio>
</gearboxTransmission>
<jointTransmission>
<type>transmission_interface/SimpleJointTransmission</type>
<jointRatio>1.0</jointRatio>
<zeroOffset>0.0</zeroOffset>
</jointTransmission>
</transmission>
</transmission>
</robot>
```
rosrun xacro xacro -o diff_drive.urdf diff_drive.urdf.xacro
<?xml version="1.0" ?>
<sdf version="1.5">
<world name="default">
<include>
<uri>model://ground_plane</uri>
</include>
<include>
<uri>model://diff_drive</uri>
<pose>0 0 0.2 0 0 0</pose>
</include>
</world>
</sdf>
gazebo diff_drive.world