0% found this document useful (0 votes)
3 views7 pages

OOP Using Python Assignment

Uploaded by

musfx12
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views7 pages

OOP Using Python Assignment

Uploaded by

musfx12
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Problem 1: Smart Manufacturing Cell Simulation

Description: Design a simplified simulation of a smart manufacturing cell. This cell


consists of various automated components that interact to process parts. Key
components include:
• Conveyor Belts: Move parts from one station to another.

• Workstations: Perform operations (e.g., drilling, inspection, assembly) on parts.


Each workstation has a specific processing time.
• Sensors: Detect the presence of parts at specific points (e.g., entry/exit of a
workstation, end of a conveyor).
• Parts: Objects that move through the system, each having a unique ID and a
record of operations performed.

Suggested Classes & Concepts:


• Part Class:
o Attributes: part_id, current_station, operations_log (list of strings).
o Methods: add_operation(operation_name), move_to(station).
• Component (Abstract Base Class/Parent Class):
o Common attributes: name, status.
o Common methods: get_status().
• ConveyorBelt Class (inherits from Component):
o Attributes: length, speed, has_part (boolean), part_on_belt (reference to
Part object).
o Methods: load_part(part), unload_part(), run_cycle().
• Workstation Class (inherits from Component):
o Attributes: processing_time, is_busy, part_being_processed.
o Methods: receive_part(part), process_part(), release_part().
• DrillingStation / InspectionStation (inherit from Workstation):
o Specific attributes/methods related to their operation (e.g., drill_depth,
check_quality(part)).
• Sensor Class (inherits from Component):
o Attributes: location, detection_range, is_active.
o Methods: detect_part(part_list), get_reading().
• ManufacturingCell Class:
o Attributes: Lists of ConveyorBelt, Workstation, Sensor objects.
o Methods: add_component(component), simulate_step(),
run_simulation(duration).
Problem 2: Autonomous Mobile Robot (AMR) Navigation System
Description: Develop a simplified model for an Autonomous Mobile Robot (AMR)
navigating a grid-based environment. The robot needs to:
• Move within the grid (forward, backward, turn left/right).
• Detect obstacles using simulated sensors (e.g., "distance sensors" that return
distance to nearest obstacle in a direction).
• Maintain its current position and orientation.
• Execute a sequence of movement commands.

Suggested Classes & Concepts:


• Environment Class:
o Attributes: grid (2D array representing the map, with cells for obstacles,
empty space, goals), width, height.
o Methods: is_obstacle(x, y), get_cell_content(x, y), display_map().
• Robot Class:
o Attributes: x_pos, y_pos, orientation (e.g., 0=North, 90=East, etc.), speed,
battery_level.
o Methods:
▪ move_forward(steps): Updates position based on orientation.
▪ turn_left(), turn_right(): Updates orientation.
▪ get_position(), get_orientation().
▪ sense_obstacles(environment): Uses internal Sensor objects.
▪ execute_command(command_string, environment).
• Sensor (Abstract Base Class/Parent Class):
o Common attributes: range.
o Common methods: read_data().
• DistanceSensor (inherits from Sensor):
o Attributes: direction (relative to robot's orientation).
o Methods: get_distance(robot_position, robot_orientation, environment).
• WheeledRobot / TrackedRobot (inherit from Robot):
o Specific movement characteristics or additional attributes (e.g.,
wheel_diameter, track_width).
Problem 3: Robotic Gripper Control System
Description: Model a robotic gripper system capable of handling different types of
objects. The system should:
• Represent various gripper types (e.g., two-finger parallel gripper, three-finger
adaptive gripper).
• Define how each gripper type "grasps" an object (e.g., closing fingers to a certain
width, applying a specific force).
• Allow for different "objects" to be picked up, each with properties like size,
weight, and fragility.
• Simulate the success or failure of a grasp based on gripper capabilities and
object properties.

Suggested Classes & Concepts:


• Object Class:
o Attributes: name, weight_kg, size_mm (e.g., diameter for cylindrical, side
length for cubic), fragility_level (e.g., 1-5).
o Methods: get_properties().
• Gripper (Abstract Base Class/Parent Class):
o Common attributes: max_opening_mm, max_force_N, is_open.
o Abstract method: _perform_grasp(object) (to be implemented by
subclasses).
o Methods: open(), close(), grasp(object) (calls _perform_grasp), release().
• TwoFingerGripper (inherits from Gripper):
o Attributes: finger_width_mm (width of each finger), min_grip_width_mm.
o Implementation of _perform_grasp(object): Checks if object size is within
min/max grip width and if force is sufficient.
• ThreeFingerAdaptiveGripper (inherits from Gripper):
o Attributes: adaptive_range_mm, finger_compliance.
o Implementation of _perform_grasp(object): More complex logic for
conforming to object shape, potentially handling fragility.
• VacuumGripper (inherits from Gripper):
o Attributes: suction_pressure_kPa, contact_area_cm2.
o Implementation of _perform_grasp(object): Checks if object surface is
suitable for suction and if suction force is sufficient for weight.
• RobotArmInterface (Optional, for higher level control):
o Attributes: attached_gripper (reference to a Gripper object).
o Methods: pick_up_object(object_to_pick), place_object().

Submission
1. You should write 3 different classes, one for each assignment.
2. In each python file in Spyder or any other environment called OOP1_MCS23_00001.py,
OOP2_MCS23_00001.py, OOP3_MCS23_00001.py corresponding to each problem.
(00001 should be your 5-digit registration number) and input your data in the beginning of
the file.
A starter is shown below:
3. Save each file with your registration number format as usual
4. Submit the 3 files to the class rep and the captain should zip all files per program in a
single file called MCT23_OOP.zip and send to my email with subject MCS3203_OOP
with the zip file attached. Latest 20th September, 2025.

You might also like