If you would like to create the simulated robot package from scratch please see steps on th following file: udacity_bot package creation steps
- Install the following packages if it is not yet installed:
$ sudo apt-get install ros-kinetic-navigation
$ sudo apt-get install ros-kinetic-map-server
$ sudo apt-get install ros-kinetic-move-base
$ rospack profile
$ sudo apt-get install ros-kinetic-amcl- Compile code using
catkin_makeand source it.
$ cd catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash- if you want to launch empty world with only the robot use the following:
$ roslaunch udacity_bot udacity_empty_world.launch- to launch the simulated robot along with amcl package in jackal race world, run the following commands each in a separate terminal window.
To launch jackal race world
$ roslaunch udacity_bot udacity_world.launchTo start amcl node
$ roslaunch udacity_bot amcl.launchTo send 2d navigation goal
$ rosrun udacity_bot navigation_goal- if you want to launch empty world with only the robot use the following:
$ roslaunch deeb_bot deeb_empty_world.launch- to launch the simulated robot along with amcl package in jackal race world, run the following commands each in a separate terminal window.
To launch jackal race world
$ roslaunch deeb_bot deeb_world.launchTo start amcl node
$ roslaunch deeb_bot amcl.launchTo send 2d navigation goal
$ rosrun deeb_bot navigation_goal_dTo create this bot package from scatch you can follow same steps as explained above with some differences in gazebo plugins and config files.
Remove caster wheels then add another two wheels.so it become with 4 wheels. modify the lidar position.Resize the main chasis.
For steering control I have used this gazebo plugin :
<gazebo>
<plugin name="skid_steer_drive_controller" filename="libgazebo_ros_skid_steer_drive.so">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<leftFrontJoint>front_left_wheel_joint</leftFrontJoint>
<rightFrontJoint>front_right_wheel_joint</rightFrontJoint>
<leftRearJoint>back_left_wheel_joint</leftRearJoint>
<rightRearJoint>back_right_wheel_joint</rightRearJoint>
<wheelSeparation>0.4</wheelSeparation>
<wheelDiameter>0.120</wheelDiameter>
<wheelAcceleration>0</wheelAcceleration>
<wheelTorque>5</wheelTorque>
<torque>10</torque>
<commandTopic>cmd_vel</commandTopic>
<odometryTopic>odom</odometryTopic>
<odometryFrame>odom</odometryFrame>
<rosDebugLevel>na</rosDebugLevel>
<odometrySource>world</odometrySource>
<robotBaseFrame>robot_footprint</robotBaseFrame>
<legacyMode>false</legacyMode>
<publishWheelTF>false</publishWheelTF>
<publishWheelJointState>false</publishWheelJointState>
<publishTf>1</publishTf>
<covariance_x>0.0001</covariance_x>
<covariance_y>0.0001</covariance_y>
<covariance_yaw>0.01</covariance_yaw>
<topicName>cmd_vel</topicName>
<broadcastTF>true</broadcastTF>
</plugin>
</gazebo>
In amcl.yaml file :
odom_model_type: diff -corrected








