这个作业是用C++继续完善和开发机器人系统
ELEC230
ROBOTICS SYSTEMS
Assignment 2
tf, Rviz
Module
ELEC230
Coursework name
Component weight
Semester
Assignment 2
30%
2
HE Level
6
Lab location
Due to covid-19 lock down, there is no access to laboratory.
Individually
Work
Timetabled time
Suggested private study
Assessment method
Submission format
Submission deadline
Late submission
Resit opportunity
Marking policy
Anonymous marking
Feedback
10 hours
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
No
On document submitted
–
–
Understanding publisher and callback functions in ROS.
Understanding and Implementing tf transformation system using
robot simulation, Gazebo and Rviz
Learning outcomes
Marking Criteria
Section
Indicative characteristics
available Adequate / pass (40%)
Marks
Very good / Excellent
•
Appropriate use of technical,
mathematical and academic
terminology and conventions.
Word processed with consistent
formatting.
Pages numbered, figures and tables
captioned.
All sections clearly signposted.
Correct cross-referencing (of
figures, screenshots, etc)
Including readme files and well
documented code
•
Contains cover page
information, table of contents,
sections with appropriate
headings.
Presentation
and structure
20%
•
•
•
•
Comprehensible language;
punctuation, grammar and
spelling accurate.
(report and
code)
•
•
annotations legible, figures and
screenshots numbered and
presented correctly.
•
•
•
documented code
•
•
Evidence of considerable self-
written code.
Design decisions justified with
alternatives given.
Clear presentation and
explanation of code, including
package.xml, CMakeLists.txt and
all other files.
Evidence of understanding ROS
concepts
Method, code
documentation
and
30%
30%
• 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.
implementation
•
•
Simulations demonstrate that turtle
is functioning correctly.
Tests indicate that there are no
problems and that the package is
fully functional.
Results
•
•
•
•
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
presented.
•
Discussion on how the system was
fully tested.
Discussion
20%
•
•
Discussion on what worked and
what didn’t.
Critical assessment on the
created package – strength and
weaknesses
ELEC 230 ROS Assignment 2 (2019-2020)
Assignment Overview
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
launch file.
Assignment Preparation
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
1
2
) Turtlesim packages on your machine and update it if you have already installed previously.
) ROS package template (you can git clone from
Assignment Outline
1
2
. 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.
3
4
5
. 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
1
2
3
. 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
4
. 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.
5
. 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.
1
2
) Discussion of what worked and what did not. Discussion of all the testing that you have carried
out.
Warning
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.
Submission Deadline
Electronic copy: Sunday 17th May 2020 @ 11:59pm on VITAL
Good Luck!
H. Lakany (03/05/2020)