Introduction to robotics Lab manual
Introduction to robotics Lab manual
Machines
Goal
Introduction
Steps
Deliverables
2. A brief report explaining the concept of virtualization and the steps taken
to install the virtual machine.
Assessment
Introduction
*Advantages*
Installation of Linux OS
*Installation Steps*
1. *Download the ISO file*: Download the ISO file for the chosen Linux
distribution.
2. *Create a bootable USB drive*: Use a tool like Rufus to create a bootable
USB drive.
3. *Boot from the USB drive*: Restart the computer and boot from the USB
drive.
Deliverables
Assessment
Goal
Introduction
Installation of CoppeliaSim
_System Requirements_
3. _RAM_: 8 GB or more.
_Installation Steps_
5. _Install CoppeliaSim_: Run the installer and follow the installation prompts.
6. _Verify Installation_: Launch CoppeliaSim and verify that it is working
correctly.
Deliverables
2. A brief report explaining the tools used in robotics and the steps taken to
install CoppeliaSim.
Assessment
Basic Concepts
Basic Commands
1. *Creating a New Scene*: To create a new scene, go to `File` > `New
Scene`.
4. *Moving Objects*: To move an object, select it and use the `Move` tool or
press `Ctrl + M`.
5. *Rotating Objects*: To rotate an object, select it and use the `Rotate` tool
or press `Ctrl + R`.
6. *Scaling Objects*: To scale an object, select it and use the `Scale` tool or
press `Ctrl + S`.
7. *Running the Simulation*: To run the simulation, press the `Play` button or
press `F5`.
8. *Stopping the Simulation*: To stop the simulation, press the `Stop` button
or press `F6`.
Basic Scripting
2. *Writing Script Code*: CoppeliaSim uses Lua as its scripting language. You
can write Lua code in the script editor.
3. *Running the Script*: To run the script, press the `Run` button or press
`F5`.
Object Properties
1. _Object Properties_: Each object in CoppeliaSim has properties that define
its behavior and appearance.
3. _Size and Scale_: Adjust an object’s size and scale using the properties
panel.
4. _Color and Texture_: Change an object’s color and texture using the
properties panel.
Joint Properties
Scripting
2. _Scripting API_: Use the CoppeliaSim API to interact with objects, joints,
sensors, and actuators.
3. _Script Execution_: Execute scripts using the script editor or by attaching
them to objects.
Simulation Settings
Visualization
Collaboration
2. *Create a New Scene*: Go to `File` > `New Scene` to create a new scene.
3. *Add Objects*: Add objects to the scene by going to `Insert` > `Object`
and selecting the desired object type (e.g., cube, sphere, robot).
4. *Configure Object Properties*: Configure the properties of each object,
such as position, orientation, size, and color.
5. *Add Joints and Sensors*: Add joints and sensors to the objects as needed.
1. *Start the Simulation*: Press the `Play` button or press `F5` to start the
simulation.
1. *Save the Scene*: Go to `File` > `Save Scene` to save the scene.
3. *Specify a File Name and Location*: Specify a file name and location for
the saved scene.
3. *Specify a File Name and Location*: Specify a file name and location for
the recorded video.
4. *Stop Recording*: Press the `Stop` button or press `F9` again to stop
recording.
- *Use the Scene Hierarchy*: Use the scene hierarchy to manage objects,
joints, and sensors.
- *Adjust Simulation Settings*: Adjust simulation settings to optimize
performance or achieve specific simulation goals.
*Introduction*
A two-link planar manipulator is a robotic arm with two joints that can move
in a two-dimensional plane. This type of manipulator is commonly used in
industrial robotics and is a fundamental concept in robotics.
*Modeling Requirements*
1. *Base*: A fixed base that serves as the attachment point for the
manipulator.
2. *Link 1*: A revolute joint that connects the base to the first link.
3. *Link 2*: A revolute joint that connects the first link to the second link.
4. *End Effector*: A tool or gripper attached to the end of the second link.
*Modeling Steps*
2. *Add a Base*: Insert a new object (e.g., a cube) to serve as the base.
3. *Add Link 1*: Insert a new object (e.g., a cylinder) to serve as the first link.
Attach a revolute joint to the base and link 1.
4. *Add Link 2*: Insert a new object (e.g., a cylinder) to serve as the second
link. Attach a revolute joint to link 1 and link 2.
5. *Add End Effector*: Insert a new object (e.g., a sphere) to serve as the end
effector. Attach it to the end of link 2.
*Joint Configuration*
1. *Revolute Joint 1*: Configure the revolute joint between the base and link
1 to have a range of motion (e.g., -180° to 180°).
2. *Revolute Joint 2*: Configure the revolute joint between link 1 and link 2 to
have a range of motion (e.g., -180° to 180°).
*Simulation Settings*
1. *Simulation Time Step*: Set the simulation time step to a suitable value
(e.g., 0.01 s).
*Verification*
1. *Verify Joint Movement*: Verify that the joints move correctly when the
simulation is run.
2. *Verify End Effector Movement*: Verify that the end effector moves
correctly when the simulation is run.
By following these steps, you should now have a basic two-link planar
manipulator model in CoppeliaSim.
Modeling the Two-Link Planar Manipulator (Continued)
1. _Select Joint 1_: Select the revolute joint between the base and link 1.
4. _Repeat for Joint 2_: Repeat the process for joint 2, adding a rotary motor
actuator to control the movement of link 2.
1. _Select Joint 1_: Select the revolute joint between the base and link 1.
2. _Add a Sensor_: Go to `Insert` > `Sensor` > `Joint Position Sensor` to add
a joint position sensor to joint 1.
3. _Configure Sensor Properties_: Configure the sensor properties, such as
the measurement range and accuracy.
4. _Repeat for Joint 2_: Repeat the process for joint 2, adding a joint position
sensor to measure the position of link 2.
1. _Create a New Script_: Go to `File` > `New Script` to create a new script.
2. _Write Control Code_: Write a control script that reads the sensor data and
controls the actuators to move the links to desired positions.
3. _Save and Attach Script_: Save the script and attach it to the manipulator
model.
1. _Run the Simulation_: Press the `Play` button or press `F5` to run the
simulation.
By following these steps, you should now have a complete two-link planar
manipulator model in CoppeliaSim, with actuators, sensors, and a control
script.
Differential Drive Car Modeling
Introduction
A differential drive car is a mobile robot that uses two wheels to move
around. The wheels are powered by separate motors, allowing the car to turn
and move in different directions.
Modeling Requirements
To model a differential drive car in CoppeliaSim, you will need to create the
following components:
1. _Chassis_: A rectangular body that represents the car’s main structure.
4. _Joints_: Two revolute joints that connect the wheels to the chassis.
Modeling Steps
1. _Insert two new objects_: Go to `Insert` > `Object` > `Circular` to create
two new circular objects.
2. _Configure the wheel properties_: Set the wheels’ dimensions, color, and
other properties as desired.
1. _Insert two new motor objects_: Go to `Insert` > `Actuator` > `Rotary
Motor` to create two new rotary motor objects.
2. _Configure the motor properties_: Set the motors’ properties, such as their
maximum torque and velocity.
1. _Insert two new revolute joints_: Go to `Insert` > `Joint` > `Revolute` to
create two new revolute joints.
2. _Configure the joint properties_: Set the joints’ properties, such as their
axis of rotation and limits.
1. _Attach the wheels to the chassis_: Use the revolute joints to attach the
wheels to the chassis.
2. _Attach the motors to the wheels_: Use the motor objects to power the
wheels.
Simulation Settings
1. _Simulation time step_: Set the simulation time step to a suitable value
(e.g., 0.01 s).
Verification
1. _Verify the car’s movement_: Run the simulation and verify that the car
moves correctly.
2. _Verify the wheels’ rotation_: Verify that the wheels rotate correctly when
the motors are powered.
Differential Drive Car Modeling (Continued)
1. _Add sensors_: Add sensors to the car to measure its position, orientation,
and velocity.
2. _Add control systems_: Add control systems to the car to control its
movement.
- Configure the PID controller’s properties, such as its gains and setpoints.
2. _Create a kinematic model_: Create a kinematic model of the car using the
defined parameters.
- Configure the kinematic model’s properties, such as its joint types and
limits.
1. _Create a new script_: Go to `File` > `New Script` to create a new script.
2. _Write control code_: Write control code to control the car’s movement
using the sensors and control systems.
- Use the CoppeliaSim API to read sensor data and control the car’s
movement.
3. _Save and attach script_: Save the script and attach it to the car model.
1. _Run the simulation_: Press the `Play` button or press `F5` to run the
simulation.
2. _Verify the car’s movement_: Verify that the car moves correctly in
response to the control script.
- _Use different sensor types_: Use different sensor types, such as lidar or
camera sensors, to improve the car’s perception and control.
*Kinematic Modeling*
Next, you need to define the kinematic properties of the robotic arm,
including the joint types, limits, and dependencies ¹. CoppeliaSim supports
various joint types, including revolute, prismatic, and spherical joints. You
can also define the arm’s kinematic parameters, such as the link lengths and
joint angles.
*Control Systems*
To control the robotic arm, you need to add control systems, such as PID
controllers or fuzzy logic controllers ² ³. CoppeliaSim supports various control
systems and allows you to customize them to suit your needs.
Once you have designed and configured the robotic arm, you can simulate
its movement and test its performance ¹. CoppeliaSim allows you to simulate
various scenarios, including obstacle avoidance and trajectory planning.
CoppeliaSim also allows you to customize and extend the robotic arm’s
functionality using plugins and scripts ¹. You can write custom scripts in
languages like Python or Lua to control the arm’s movement and interact
with its environment.