Answered step by step
Verified Expert Solution
Question
1 Approved Answer
The assignment is worth 2 0 % of the total mark for this module. In this assignment, you are required to program a Turtlebot 3
The assignment is worth of the total mark for this module. In this assignment, you are required to program a Turtlebot burger robot to move following a square path using ROS and Python. Your code also needs to record the odometry data collected when the robot moves. The recorded data should be used to evaluate your codes and the parameters set in the code. Finally, you are required to submit a report which describes your code and the experiment results. The Task: The task is to program and test a differential drive robot to trace out a square trajectory. The square tracing robot should move along a square trajoctory with the length of meter. The robot should start from with a heading of degree, move forward meter and stop at Then it should turn degrees, move forward meter, and stop at Next it should turn degrees, move forward meter, and stop at Finally, it should turn degrees, move forward meter, and stop at You need to use mm in the code. Then the distance will be You should use appropriate methods in ROS and its dependent packages to control the robot to move. You also need to use appropriate methods in ROS and its dependent packages to keep the track of the robot pose. When you collect the odometry data, only four points at the corners are not enough to show the square trajectory. More data points should be sampled. The robot should be displayed in Rviz when the robot is moving and also its pose should be recorded in a data file. After completing the square, you can use the data file to draw a trajectory in Microsoft Excel or other tools. More than one trial with different speeds are required. The robot can be controlled by varying the translational and rotational velocities. This is implemented by publishing cmdvel" topic with "Twist" message to the robot. You need to find a way to control the robot to move towards comer goal positions and turn degrees on the spot. This part of your code is called the position controller. Your code can subscribe to odom" topic with "Odometry" message to obtain the odometry data when the robot is moving. There are two parts in Odometry message: pose and twist. We need to access the pose information, which includes position z and orientation in quatemion. For a ground D robot, we need to use position and heading which can be computed from quaternion. Please see the example in the lab notes for more information. This part of your code is called the odometry logger The Report: The report should be in PDF and must include a cover page with the module name, student name and registration ID The source code for the node you developed should be made as a text file and submitted together with the report. The maximum length of the report is of pages include the appendix The report should include: Description of your controller for moving forward meter You should explain how to move the robot forward for meter or to next goal position. As the robot is controlled by varying its translational and rotation velocities, it is not straight forward to implement this function. There are multiple ways to implement this function. For example, you can use a PID controller to adjust the translational velocity until the distance between the robot and goal position is less than a predefined error. You need to show how the parameters used in the PID controller affect the performance of your controller by using diagrams of recorded odometry data. If you use an open loop controller, you will lose significant part of the marks. Description of your controller for turning degrees You should explain how to turn the robot for degrees. As the robot is controlled by varying its translational and rotation velocities, it is not straight forward to implement this function. There are multiple ways to implement this function. For example, you can use a PID controller to adjust the angular velocity until the angle the robot turned is close to degrees. You need to show how the parameters used in the PID controller affect the performance of your controller by using diagrams of recorded odometry data. If you use an open loop controller like move s with a fixed velocity ms you will lose significant part of the marks. Explanation of your odometry logger The odometry logger can produce the pose information. In D case, the pose information is x y and heading. The odometry data in Turtlebot burger is obtained by fusing the readings of encoders and IMU. You need to understand the information obtained in Odometry message and have the ability to convert it into x y and heading use a PID controller please
The assignment is worth of the total mark for this module. In this assignment, you
are required to program a Turtlebot burger robot to move following a square path using
ROS and Python. Your code also needs to record the odometry data collected when
the robot moves. The recorded data should be used to evaluate your codes and the
parameters set in the code. Finally, you are required to submit a report which describes
your code and the experiment results.
The Task:
The task is to program and test a differential drive robot to trace out a square trajectory.
The square tracing robot should move along a square trajoctory with the length of
meter. The robot should start from with a heading of degree, move forward
meter and stop at Then it should turn degrees, move forward meter, and stop
at Next it should turn degrees, move forward meter, and stop at Finally,
it should turn degrees, move forward meter, and stop at You need to use mm
in the code. Then the distance will be
You should use appropriate methods in ROS and its dependent packages to control
the robot to move. You also need to use appropriate methods in ROS and its dependent
packages to keep the track of the robot pose. When you collect the odometry data, only
four points at the corners are not enough to show the square trajectory. More data points
should be sampled.
The robot should be displayed in Rviz when the robot is moving and also its pose should
be recorded in a data file. After completing the square, you can use the data file to draw
a trajectory in Microsoft Excel or other tools. More than one trial with different speeds
are required.
The robot can be controlled by varying the translational and rotational velocities. This
is implemented by publishing cmdvel" topic with "Twist" message to the robot. You
need to find a way to control the robot to move towards comer goal positions and turn
degrees on the spot. This part of your code is called the position controller.
Your code can subscribe to odom" topic with "Odometry" message to obtain the
odometry data when the robot is moving. There are two parts in Odometry message:
pose and twist. We need to access the pose information, which includes position
z and orientation in quatemion. For a ground D robot, we need to use position
and heading which can be computed from quaternion. Please see the example in the
lab notes for more information. This part of your code is called the odometry logger
The Report:
The report should be in PDF and must include a cover page with the module name,
student name and registration ID The source code for the node you developed should
be made as a text file and submitted together with the report. The maximum length of
the report is of pages include the appendix The report should include:
Description of your controller for moving forward meter
You should explain how to move the robot forward for meter or to next goal
position. As the robot is controlled by varying its translational and rotation
velocities, it is not straight forward to implement this function. There are multiple
ways to implement this function. For example, you can use a PID controller to
adjust the translational velocity until the distance between the robot and goal
position is less than a predefined error. You need to show how the parameters used
in the PID controller affect the performance of your controller by using diagrams
of recorded odometry data. If you use an open loop controller, you will lose
significant part of the marks.
Description of your controller for turning degrees
You should explain how to turn the robot for degrees. As the robot is controlled
by varying its translational and rotation velocities, it is not straight forward to
implement this function. There are multiple ways to implement this function. For
example, you can use a PID controller to adjust the angular velocity until the angle
the robot turned is close to degrees. You need to show how the parameters used
in the PID controller affect the performance of your controller by using diagrams
of recorded odometry data. If you use an open loop controller like move s with a
fixed velocity ms you will lose significant part of the marks.
Explanation of your odometry logger
The odometry logger can produce the pose information. In D case, the pose
information is x y and heading. The odometry data in Turtlebot burger is obtained
by fusing the readings of encoders and IMU. You need to understand the
information obtained in Odometry message and have the ability to convert it into
x y and heading
use a PID controller please
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started