Due to covid-19 lock down, there is no access to laboratory.
Suggested private study
10 hours including report writing
Individual, formal word-processed reports in addition to code
Online via VITAL
23:59 on Sunday 17th May 2020
Standard university penalty applies
August resit period (if total module failed)
Marked and moderated independently
On document submitted
Understanding publisher and callback functions in ROS.
Understanding and Implementing tf transformation system using
robot simulation, Gazebo and Rviz
available Adequate / pass (40%)
Very good / Excellent
Appropriate use of technical,
mathematical and academic
terminology and conventions.
Word processed with consistent
Pages numbered, figures and tables
All sections clearly signposted.
Correct cross-referencing (of
figures, screenshots, etc)
Including readme files and well
Contains cover page
information, table of contents,
sections with appropriate
punctuation, grammar and
annotations legible, figures and
screenshots numbered and
Evidence of considerable self-
Design decisions justified with
Clear presentation and
explanation of code, including
package.xml, CMakeLists.txt and
all other files.
Evidence of understanding ROS
• Code documented in full, justifying
and explaining any decisions.
Correct Syntax and semantics used.
Well-structured code in all files.
Clear explanation of choice of
variables and set values.
Simulations demonstrate that turtle
is functioning correctly.
Tests indicate that there are no
problems and that the package is
Simulation results present for
each task and well annotated.
Results of full system in both
ROS and Turtlesim presented.
Results for each task
accompanied by a commentary.
Screen shots of results
Discussion on how the system was
Discussion on what worked and
Critical assessment on the
created package – strength and
ELEC 230 ROS Assignment 2 (2019-2020)
The goal of this assignment is to implement a proportional controller to drive the turtlesim a (simulated)
robot using ROS and send it to a target position.
In this assignment, you will create a ROS package and write the code that will drive the turtlesim around
with a simple proportional controller algorithm to reach a target position passed to the node through a
Before you start this assignment, you should make sure that you understand the concepts in ROS
tutorials and all the lecture slides including lecture 9 slides. In addition, go over all the code samples and
tutorials relevant to tf, Rviz from lectures and ROS wiki. Make sure you understand them thoroughly.
Make sure that you have already downloaded
) Turtlesim packages on your machine and update it if you have already installed previously.
) ROS package template (you can git clone from
. Make a new ROS package called send_totarget, with the appropriate dependencies.
. Your task is to write the send_totarget node. The node should implement a simple proportional
controller algorithm to send the turtlesim to a target position.
. You will need to implement code to drive the turtlesim forward/backwards and steer it
clockwise/counterclockwise with a particular velocity.
. Make sure that the send_totarget node works, by running it and watching the turtle in the
simulator using a launch file that launches the node and Rviz.
. Add a TF display plugin to RViz. Display the turtlesim as it is approaching the target with reference
to the world frame.
What to submit
You should hand in everything that someone else needs to run your code. For this assignment, that
means your source code, manifest file, CMakeLists.txt (if you’re using C++), and launch files. You
should not hand in executable files, or any other files that can be regenerated.
The code of the code
. Make sure that your code is tidy and well-documented.
. All parameter values should be configurable via the launch file.
. You should do this laboratory on your own. All the work you turn in should be yours, and not done
in collaboration with anyone else. If you use any external sources of inspiration, other
than ros.org, then let us know in a README file.
. Your code should be easy to run. After getting a copy of your code, running
catkin_make –pkg <name of your package>
roslaunch <name of your package> <file.launch>
should be sufficient to start up Gazebo and make the robot move.
. Finally, zip all the necessary files (your source code, package.xml file, CMakeLists.txt (if you’re
using C++), and launch files) and submit the zip file with your report to VITAL
Your report should include the following.
) Screenshots of results as evidence you have completed the work.
) Discussion of what worked and what did not. Discussion of all the testing that you have carried
You should be working on your own for this assignment. Finding any evidence of collusion will result in
applying the University’s rules on the punishment for collusion.
Electronic copy: Sunday 17th May 2020 @ 11:59pm on VITAL
H. Lakany (03/05/2020)