首頁 > > 詳細


Department of Electrical Engineering and Electronics
Robotic Systems - Assignment 3
Roomba Vacuum Cleaner Gazebo Simulation in C++
Module ELEC230
Coursework name Assignment 3
Component weight 30%
Semester 2
HE Level 5
Lab location
• Coding and simulation off-campus within a suitable IDE and
using ROS installed on Ubuntu, usually operating on a virtual
machine (e.g. in VirtualBox) using your own PC/laptop.
• If there are significant difficulties with this, Remote Teaching
Centre Service (RTCS) machines are available with VirtualBox
installed (https://www.liverpool.ac.uk/csd/pc-centres/remote/ ). If
you would like to take advantage of this, contact the lecturers for
information on how to go about using this service for
assignment work.
• Appropriate lecturer or demonstrator support is available during
timetabled ELEC230 virtual labs (see below)
• Additionally, if the EEE Building opens for general
access, relevant PC labs may be possible to use as
timetabled, or at other allowable times for private study.
Work Individual
Timetabled time
7.5 hours (1.5 hours available in the Week 5 lab, plus 3 hours each in
Week 6 and Week 7 labs, as described above). Virtual labs are
timetabled as Wednesdays 10am – 1pm on MS Teams, unless the lab
format changes in this period.
Note: lab time is not exclusively devoted to the Assignment, but also
to practical work relevant to the current stage of the course. The
Assignment builds on ~40 prior hours of synchronous online C++,
Linux and ROS tutorials and 15+ hours of lecture material available on
CANVAS as videos, pdfs and written notes.
Suggested private
study 8 hours including report-writing
Assessment method Individual, formal, word-processed reports in the format instructed in
the Marking Criteria, along with other files listed in “What to hand in”.
Submission format Online via CANVAS.
Plagiarism / collusion Standard University penalties and procedures apply for plagiarism and
Submission deadline Wednesday 14
th April 2021, 23:59
Late submission Standard University penalties apply
Resit opportunity August resit period (if total module failed)
Marking policy Marked and moderated independently
Anonymous marking Yes
Feedback Via comments on your CANVAS submission, online
Learning outcomes
? (BH1) Understanding Linux and the mechanisms provided for
? (BH2) Understanding the features of an Object Orientated
Programming language and the ability to code in C++
? (BH4) Understanding the ROS system
? More specifically: understanding the package management
system in ROS; understanding and implementing robot
simulation using ROS, Turtlesim, Gazebo
Continues on next page
Marking Criteria
Section Marks Indicative characteristics
Adequate / pass (40%) Very good / Excellent
Presentation, and structure
? Contains document with
cover page (title,
background, academic
integrity declaration), a
discussion page, and
screenshots (see below)
? Contains original source
code, manifest file,
CMakeLists.txt, launch files
? Comprehensible language;
punctuation, grammar and
spelling accurate
? Equations legible, numbered
and presented correctly
? Appropriate use of technical,
mathematic and academic
terminology and conventions if
? Word processed with consistent
? Pages are numbered; figures and
tables are captioned
? All sections are clearly
? Correct cross-referencing (of
figures, tables, equations) and
citations where relevant
Method, Design
? Problem background is
introduced clearly
? Clear, original code and
? Code is clearly laid out and
appropriately commented
? Design of each code
segment follows a logical
? Code is tidy, efficient and
easy to follow / understand
? Some discussion of the
procedures undertaken
? Excellent understanding of the
problem background is
? Comments show excellent
understanding of syntax and
? Coding is elegant and, where
relevant, sophisticated for each
task, while remaining easy to
? Principle of “DRY1
” is followed
? Discussion of what worked and
what did not
? Discussion of all the testing
carried out
? Screenshots of program
output are presented for
each task, including the full
desktop with relevant
windows and the taskbar
with date and time, as
evidence of original work
? Screenshots and code
demonstrate at least partially
correct operation
? Screenshots and code
demonstrate successful, correct
output for every task

1 Don’t Repeat Yourself
ELEC 230 C++ Assignment 3 (2020-2021) – 30% weighting
Aim of this assignment
The aim of this assignment is to give you a way in to writing software for controlling a
(simulated) robot using the Robot Operating System (ROS).
In this assignment you will create a ROS node to drive the robot around with a simple
wanderer algorithm, very like a ‘Roomba’ robot vacuum cleaner. The robot should
move forward until it reaches an obstacle, then rotate in the same position until the
way ahead is clear, then move forward again and repeat.
Continues on next page
Rules and Requirements of your Assignment
You code must be executable in a Linux environment without any modification. For
you to work and be able to execute the assignment, make sure you have a ROS
Distribution (i.e., noetic) wit Gazebo installed. For more information please have a
look at the lecture notes and lab sessions in CANVAS.
Before you start this assignment, you should make sure that you understand the
concepts in ROS tutorials 1-6, 8, 11 or 12, and 13 (These were covered in lab sheets
1-4). In addition, go over all the code samples from class and make sure you
understand them thoroughly. Finally, make sure that the turtlebot_gazebo packages
are installed on your machine.
The Assignment
1. First make a new ROS package called wander_bot, with the appropriate
dependencies. If you need a refresher, please consult either the lecture material
or ROS.org tutorials.
2. Create a launch File. This launch file needs to run the Gazebo simulator and the
wander_bot node that you are going to write without the user needing to invoke
them separately.
3. Your task is now to write the wander_bot node. The node should implement a
simple algorithm:
• If the robot is moving sufficiently close to an obstacle in front of it, then
rotate it in the direction that is freer from obstacles (i.e., if there is an
obstacle on the robot’s right, it should turn left) until the way ahead is
• If there is no obstacle blocking its path, move forward as a default.
• You can use the Stopper node we used in Week 4 as a template
for this assignment.
4. Verify that the wander_bot node works, by running it and watching the robot in
the simulator.
Continues on next page
The Rules
1. Make sure that your code is tidy and well-commented. (You can make your code
tidier in terms of indentations by using the Reformat code option inside the
Clion IDE).
2. This goes without saying: you should do this lab work 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.
What to Hand In
You should hand in everything that someone else needs to run your code.
For this assignment, that means:
• Your source code. This should be adequately commented, so that each distinct
part of the code is clearly explained.
• manifest file,
• CMakeLists.txt,
• launch files.
You should also include:
• A Word document including a 1-page cover sheet with title, background and
academic integrity declaration, followed by no more than 1 page of discussion
of: procedures followed; what worked and what did not; the testing carried out.
The rest of your Word document should include screenshots as described in the
Marking Criteria. These should be presented as numbered figures, referred to
(where relevant) in your discussion.
You should not hand in executable files, or any other files that can be regenerated.
Your code should be able to run after writing these two commands in a terminal:
catkin-make --pkg wander_bot
roslaunch wander_bot wander_bot.launch
Continues on next page
Helpful Resources
If you have any questions, where a requirement is unclear, or there are some concepts
where you need additional information, you must use the CANVAS “Assignment 3”
discussion board (DB) to ask questions.
? You are encouraged to answer each other’s questions in the CANVAS DB.
? You are, however, not to share code of any kind, documents, or links to
websites, other than CANVAS links to lecture notes.
? Any e-mails and/or MS Teams chats regarding the assignments will be not taken
into consideration, and will be duly ignored.
? The only exception is emails about extenuating circumstances.
Helpful insights into how ROS works and details of the Gazebo simulation software
can be found at ROS.org.

  • QQ:1067665373
  • 郵箱:1067665373@qq.com
  • 工作時間:8:00-23:00
  • 微信:Essay_Cheery

聯系我們 - QQ: 1067665373 微信:Essay_Cheery
? 2021 uk-essays.net


全优代写 - 北美Essay代写,Report代写,留学生论文代写作业代写 北美顶级代写|加拿大美国论文作业代写服务-最靠谱价格低-CoursePass 论文代写等留学生作业代做服务,北美网课代修领导者AssignmentBack 北美最专业的线上写作专家:网课代修,网课代做,CS代写,程序代写 代码代写,CS编程代写,java代写北美最好的一站式学术代写服务机构 美国essay代写,作业代写,✔美国网课代上-最靠谱最低价 美国代写服务,作业代写,CS编程代写,java代写,python代写,c++/c代写 代写essay,作业代写,金融代写,business代写-留学生代写平台 北美代写,美国作业代写,网课代修,Assignment代写-100%原创 北美作业代写,【essay代写】,作业【assignment代写】,网课代上代考