cs-1011: assignment 2 completed
This commit is contained in:
parent
b0758ea613
commit
b68789b653
BIN
Spring-2023/CS-1011/Assignment-2/Assignment-2.pdf
Normal file
BIN
Spring-2023/CS-1011/Assignment-2/Assignment-2.pdf
Normal file
Binary file not shown.
82
Spring-2023/CS-1011/Assignment-2/Solution.org
Normal file
82
Spring-2023/CS-1011/Assignment-2/Solution.org
Normal file
@ -0,0 +1,82 @@
|
||||
* Assignment 2
|
||||
|
||||
We discussed the idea of hardware components in the “How Computers Work: Hardware” lecture and
|
||||
discussed the idea of algorithms and libraries in the “How Computers Work: Software” lecture. Let
|
||||
us assume we wanted to build a real-life robot, where you are able to input instructions to
|
||||
complete many different tasks such as: moving around a space without running into walls, objects,
|
||||
or people; picking up and placing objects; identifying everyday objects and their basic uses;
|
||||
using objects as tools (e.g., using a broom to sweep, using a wrench to tighten/loosen screws,
|
||||
etc.); basic speech capabilities (i.e., it can both listen to take in certain commands and speak
|
||||
to notify when tasks are completed or for more clarification on tasks); etc. Please answer the
|
||||
following questions about such a robot. (Note, when answering these questions, you may simply list
|
||||
them out using bullet points instead of in paragraphs in order as this will make grading faster
|
||||
and easier).
|
||||
|
||||
1. What major hardware components would be needed to achieve at least some of the listed actions
|
||||
the robot should be able to perform? Make sure to think about everything needed to complete
|
||||
each action, e.g. it needs to “see” where it’s going, it needs to walk, etc. (You do not need
|
||||
to list low-level components such as motherboards, servos, etc., just the high-level idea of
|
||||
each major necessary piece). List at least 5 major components:
|
||||
|
||||
2. While you are able to give certain instructions/commands and you have the hardware necessary
|
||||
to perform the tasks, we would need MANY libraries and frameworks on top of the hardware to
|
||||
actually carry out these tasks. Please list out as many library packages that you can think of
|
||||
that would be needed to perform the listed tasks. Please give a name or basic description of
|
||||
general “packages” of libraries, e.g. it will need to be able to walk so it will need libraries
|
||||
to: calculate distance, move servos and limbs, correct for imbalance (or imperfections in the
|
||||
floor), etc. List at least 1 library/framework that would be needed for each of the hardware
|
||||
components you listed above:
|
||||
|
||||
** Question One Answer
|
||||
|
||||
Bullet points included to ease the grading process:
|
||||
|
||||
1. Movement Requirement
|
||||
- Treads or legs
|
||||
2. Collision Avoidance
|
||||
- A sensor like a camera or LIDAR/RADAR
|
||||
3. Picking Up and Placing Objects
|
||||
- A claw, like from a claw machine
|
||||
4. Identification of Everyday Items
|
||||
- A database, meaning storage — a hard disk for instance — filled with everyday items and their
|
||||
uses.
|
||||
5. Using Objects as Tools
|
||||
- An arm ending in a hand with an opposable thumb — basically a human arm
|
||||
6. Basic Speech Capabilities
|
||||
- A microphone to receive commands and a speaker to respond with
|
||||
|
||||
** Question Two Answer
|
||||
|
||||
- In general, we'll need a library for each hardware element to interface with the hardware
|
||||
directly. We need to use the correct protocol (or speak the same language) to correctly drive
|
||||
the hardware.
|
||||
|
||||
1. Movement Requirement
|
||||
- A library to determine power of the movement — how much torque should be applied for
|
||||
instance.
|
||||
- A library for balancing the robot if using legs, quite the complex problem.
|
||||
2. Collision Avoidance
|
||||
- A library to turn the raw data from either a camera or LIDAR/RADAR into something usable by
|
||||
our own code — the input data may literally be just pixels and color depth, this has to be
|
||||
translated.
|
||||
- A library to determine the 3D location of objects based on the sensor readings.
|
||||
- A library to determine the robots current position in space, after all how can we avoid
|
||||
collision if we don't even know where we are.
|
||||
- A library for path finding — basic collision avoidance based on the previous libraries.
|
||||
3. Picking Up and Placing Objects
|
||||
- A library to clench and unclench our grabber of choice, basically open and close it.
|
||||
- A library to move the grabber into place over an object we want to pick up.
|
||||
- A library to sync between the sensors and the grabber to correctly align the grabber over an
|
||||
object to pick up.
|
||||
4. Identification of Everyday Items
|
||||
- We need a library to map the sensor data to discrete objects. Basically, determining if
|
||||
an object picked up by the sensor is a specific item like a pencil, fork, or whatever else
|
||||
it may be.
|
||||
5. Using Objects as Tools
|
||||
- A library to read from our database of how to use items and use that to actually use the
|
||||
item in question.
|
||||
- A library to map the database inputs to actual actions on the robot. For instance, taking
|
||||
the data on how to sweep with a broom and actually sweeping with a broom.
|
||||
6. Basic Speech Capabilities
|
||||
- A natural language processing library. This is needed to parse and understand commands.
|
||||
- A library for then taking those commands and outputting over the speaker responses.
|
@ -6,7 +6,7 @@ SCHEDULED: <2024-01-28 Sun> DEADLINE: <2024-02-04 Sun>
|
||||
- Sign up for a Group under the =People= tab in Canvas
|
||||
- Due in 2 weeks from today
|
||||
|
||||
* TODO Assignment 2
|
||||
* DONE Assignment 2
|
||||
DEADLINE: <2024-02-18 Sun> SCHEDULED: <2024-02-17 Sat>
|
||||
|
||||
We discussed the idea of hardware components in the “How Computers Work: Hardware” lecture and
|
||||
|
Loading…
Reference in New Issue
Block a user