This document discusses robots and robotics. It covers several key topics:
- The definition and original meaning of the word "robot"
- The multi-disciplinary field of robotics, encompassing mechanical design, electronics, and artificial intelligence
- Common types of actuators used in robots including motors, pneumatics, and hydraulics
- Methods of locomotion for robots including wheels, legs, climbing, flying, and others
- Systems for controlling robot motion including differential drives, skid-steer drives, and synchronous drives
- The use of sensors to provide feedback to robots about their environment
Balancing a Segway robot using LQR controller based on genetic and bacteria f...TELKOMNIKA JOURNAL
A two-wheeled single seat Segway robot is a special kind of wheeled mobile robot, using it as a human transporter system needs applying a robust control system to overcome its inherent unstable problem. The mathematical model of the system dynamics is derived and then state space formulation for the system is presented to enable design state feedback controller scheme. In this research, an optimal control system based on linear quadratic regulator (LQR) technique is proposed to stabilize the mobile robot. The LQR controller is designed to control the position and yaw rotation of the two-wheeled vehicle. The proposed balancing robot system is validated by simulating the LQR using Matlab software. Two tuning methods, genetic algorithm (GA) and bacteria foraging optimization algorithm (BFOA) are used to obtain optimal values for controller parameters. A comparison between the performance of both controllers GA-LQR and BFO-LQR is achieved based on the standard control criteria which includes rise time, maximum overshoot, settling time and control input of the system. Simulation results suggest that the BFOA-LQR controller can be adopted to balance the Segway robot with minimal overshoot and oscillation frequency.
This document presents a project proposal for developing a self-balancing two-wheeled robot (instructabot) using an Arduino microcontroller. The robot will use sensors to read its environment and a PID controller to balance itself. The aims are to demonstrate balancing techniques, design a discrete digital control system for stability, develop the chassis and software to read sensors and control actuators to enable the robot to stay upright. A literature review covers previous work on self-balancing robots and control systems. A planning chart outlines the project timeline over 16 weeks including proposal, purchasing, prototyping, testing and completion.
IRJET- Design & Development of Two-Wheeled Self Balancing RobotIRJET Journal
This document describes the design and development of a two-wheeled self-balancing robot. An inertial measurement unit (IMU) containing an accelerometer and gyroscope is used to measure the robot's tilt angle. A PID controller applies motor speed adjustments to correct any error between the desired setpoint and actual tilt angle, balancing the robot. The PID controller is able to balance the robot with some limitations. Simulation results are compared to the hardware performance. PID tuning is also performed to improve balancing. Key components include an Arduino, motor driver, motors, IMU, and Bluetooth module. The system architecture integrates these components to enable self-balancing.
Self-Balancing Two-wheeler (Segway) was once a mysterious invention created by Dean Lawrence Kamen. The Self-Balancing Two-wheeler (Segway) Human Transporter is a personal transport device that uses a built-in computer to remain upright. The aim of this project is to mimic the design of the Self-Balancing Two-wheeler (Segway) and build a low-cost Segway. The first stage of this project is to design the mechanical structure of the transport device. According to different power and functional requirements, different mechanical and electronic components have been chosen for the implementation. The rider shifting weight and a manual turning mechanism on the handlebar are used to control the speed and direction of the Self-Balancing Two-wheeler (Segway). Gyroscope and variable resistor are used to monitor user’s physical motion. The Segway is an intelligent vehicle which uses gyroscopic sensors to detect the motion of rider, so that he can accelerate, brake or steer the vehicle. The conventional Segway available in the market are very costly as they are not available locally. Hence the need to design and fabricate a cost-efficient Segway which could be affordable and the same time be reliable to withstand a rider up to 70-80kgs. In this project an attempt has been made to design and fabricate a Segway with minimum resources.
Two wheeled self balancing robot for autonomous navigationIAEME Publication
This document summarizes a research paper on the design and testing of a two-wheeled self-balancing robot capable of autonomous navigation. The robot balances using a PID control loop applied to data from an inertial measurement unit. A complementary filter fuses gyroscope and accelerometer readings to estimate the robot's tilt angle in real-time. Autonomous navigation is achieved using an ultrasonic distance sensor and image processing system to detect obstacles and determine the robot's path. The stability of the balancing system is analyzed using real-time data plotting in MATLAB, allowing tuning of the PID controller constants.
IRJET - A Review on Multi-Functional Multi-Ability Electric VehicleIRJET Journal
This document reviews technologies for electric vehicles that provide multiple functions and abilities. It discusses adjusting vehicle ground clearance for different speeds using active or semi-active suspension systems. It also describes parallel parking systems that use sensors and controllers to autonomously steer a vehicle into a parking space. Technologies for zero turning radius are presented which allow a vehicle to rotate in place using four-wheel steering.
Autonomous Balancing of 2-wheeled segway robotJash Shah
This document describes a project to design an optimal controller for a Segway robot using linear quadratic regulator (LQR) and soft computing optimization techniques like genetic algorithm (GA) and bacteria foraging algorithm (BFOA). The project aims to derive the Segway robot's mathematical model and use LQR with GA and BFOA to tune controller parameters to stabilize the robot. Simulation results show that GA-LQR provides better performance than BFOA-LQR, achieving the robot's stabilization with less computational power. While the paper concludes BFOA is better, the values it provides do not match simulation results. The document also discusses modeling approach, methodology, observations, and opportunities for future work.
The document describes a self-balancing two-wheeled robot project. The goals of the project are to demonstrate techniques for balancing an unstable robotic platform on two wheels and to design a digital control system using a state space model. The robot uses motors, sensors like an accelerometer and gyroscope, and a microprocessor to automatically balance itself in the upright position like an inverted pendulum. It classifies the robot system into three main parts: an inertial sensor unit to read angular velocity and position, an actuator unit with motors driven by analog signals from the controller, and a logical processing unit that processes sensor inputs and controls the actuators to return the robot to vertical position when tilted.
Balancing a Segway robot using LQR controller based on genetic and bacteria f...TELKOMNIKA JOURNAL
A two-wheeled single seat Segway robot is a special kind of wheeled mobile robot, using it as a human transporter system needs applying a robust control system to overcome its inherent unstable problem. The mathematical model of the system dynamics is derived and then state space formulation for the system is presented to enable design state feedback controller scheme. In this research, an optimal control system based on linear quadratic regulator (LQR) technique is proposed to stabilize the mobile robot. The LQR controller is designed to control the position and yaw rotation of the two-wheeled vehicle. The proposed balancing robot system is validated by simulating the LQR using Matlab software. Two tuning methods, genetic algorithm (GA) and bacteria foraging optimization algorithm (BFOA) are used to obtain optimal values for controller parameters. A comparison between the performance of both controllers GA-LQR and BFO-LQR is achieved based on the standard control criteria which includes rise time, maximum overshoot, settling time and control input of the system. Simulation results suggest that the BFOA-LQR controller can be adopted to balance the Segway robot with minimal overshoot and oscillation frequency.
This document presents a project proposal for developing a self-balancing two-wheeled robot (instructabot) using an Arduino microcontroller. The robot will use sensors to read its environment and a PID controller to balance itself. The aims are to demonstrate balancing techniques, design a discrete digital control system for stability, develop the chassis and software to read sensors and control actuators to enable the robot to stay upright. A literature review covers previous work on self-balancing robots and control systems. A planning chart outlines the project timeline over 16 weeks including proposal, purchasing, prototyping, testing and completion.
IRJET- Design & Development of Two-Wheeled Self Balancing RobotIRJET Journal
This document describes the design and development of a two-wheeled self-balancing robot. An inertial measurement unit (IMU) containing an accelerometer and gyroscope is used to measure the robot's tilt angle. A PID controller applies motor speed adjustments to correct any error between the desired setpoint and actual tilt angle, balancing the robot. The PID controller is able to balance the robot with some limitations. Simulation results are compared to the hardware performance. PID tuning is also performed to improve balancing. Key components include an Arduino, motor driver, motors, IMU, and Bluetooth module. The system architecture integrates these components to enable self-balancing.
Self-Balancing Two-wheeler (Segway) was once a mysterious invention created by Dean Lawrence Kamen. The Self-Balancing Two-wheeler (Segway) Human Transporter is a personal transport device that uses a built-in computer to remain upright. The aim of this project is to mimic the design of the Self-Balancing Two-wheeler (Segway) and build a low-cost Segway. The first stage of this project is to design the mechanical structure of the transport device. According to different power and functional requirements, different mechanical and electronic components have been chosen for the implementation. The rider shifting weight and a manual turning mechanism on the handlebar are used to control the speed and direction of the Self-Balancing Two-wheeler (Segway). Gyroscope and variable resistor are used to monitor user’s physical motion. The Segway is an intelligent vehicle which uses gyroscopic sensors to detect the motion of rider, so that he can accelerate, brake or steer the vehicle. The conventional Segway available in the market are very costly as they are not available locally. Hence the need to design and fabricate a cost-efficient Segway which could be affordable and the same time be reliable to withstand a rider up to 70-80kgs. In this project an attempt has been made to design and fabricate a Segway with minimum resources.
Two wheeled self balancing robot for autonomous navigationIAEME Publication
This document summarizes a research paper on the design and testing of a two-wheeled self-balancing robot capable of autonomous navigation. The robot balances using a PID control loop applied to data from an inertial measurement unit. A complementary filter fuses gyroscope and accelerometer readings to estimate the robot's tilt angle in real-time. Autonomous navigation is achieved using an ultrasonic distance sensor and image processing system to detect obstacles and determine the robot's path. The stability of the balancing system is analyzed using real-time data plotting in MATLAB, allowing tuning of the PID controller constants.
IRJET - A Review on Multi-Functional Multi-Ability Electric VehicleIRJET Journal
This document reviews technologies for electric vehicles that provide multiple functions and abilities. It discusses adjusting vehicle ground clearance for different speeds using active or semi-active suspension systems. It also describes parallel parking systems that use sensors and controllers to autonomously steer a vehicle into a parking space. Technologies for zero turning radius are presented which allow a vehicle to rotate in place using four-wheel steering.
Autonomous Balancing of 2-wheeled segway robotJash Shah
This document describes a project to design an optimal controller for a Segway robot using linear quadratic regulator (LQR) and soft computing optimization techniques like genetic algorithm (GA) and bacteria foraging algorithm (BFOA). The project aims to derive the Segway robot's mathematical model and use LQR with GA and BFOA to tune controller parameters to stabilize the robot. Simulation results show that GA-LQR provides better performance than BFOA-LQR, achieving the robot's stabilization with less computational power. While the paper concludes BFOA is better, the values it provides do not match simulation results. The document also discusses modeling approach, methodology, observations, and opportunities for future work.
The document describes a self-balancing two-wheeled robot project. The goals of the project are to demonstrate techniques for balancing an unstable robotic platform on two wheels and to design a digital control system using a state space model. The robot uses motors, sensors like an accelerometer and gyroscope, and a microprocessor to automatically balance itself in the upright position like an inverted pendulum. It classifies the robot system into three main parts: an inertial sensor unit to read angular velocity and position, an actuator unit with motors driven by analog signals from the controller, and a logical processing unit that processes sensor inputs and controls the actuators to return the robot to vertical position when tilted.
IRJET- Self Balancing Robot using Arduino UnoIRJET Journal
This document describes a self-balancing robot project that uses an Arduino Uno, MPU6050 gyroscope/accelerometer, motor driver, Raspberry Pi 3B and Pi camera. The robot balances itself using the inverted pendulum concept with active control from a PID controller. The Arduino reads tilt angles from the MPU6050 and controls the motors via the motor driver to balance the robot. The Raspberry Pi and Pi camera allow for live video streaming to provide visuals from the robot for search and rescue applications in hazardous areas.
IRJET- A Review on Automobile Gear Transmission MechanismIRJET Journal
This document discusses various types of automatic transmission mechanisms used in vehicles. It begins by describing traditional automatic transmissions that use a torque converter to change gears hydraulically. It then outlines several other types including automated-manual transmissions, continuously variable transmissions, dual-clutch transmissions, direct shift gearboxes, and tiptronic transmissions. The advantages of automatic transmissions are noted as providing torque conversion, improved fuel economy, and reliable performance compared to manual transmissions. In conclusion, automatic transmissions are becoming more widely used as they reduce effort for the driver while optimizing efficiency.
The document describes a two-wheeled self-balancing robot project created by three students. It has two modes: balancing mode, where it automatically balances itself, and Bluetooth mode, where it can be controlled remotely via an Android phone. The robot was designed to be affordable and help disabled individuals, and incorporates a gyroscope, sensors, and an Arduino controller. The students faced challenges but created a functional prototype and discuss potential applications and future improvements.
IRJET - A Dynamic Model and Analysis of Innovative E-BikeIRJET Journal
This document presents the design and analysis of an innovative e-bike. Key features of the e-bike include a spring shock absorber, MOSFET circuit, and Shimano 7-gear drive system. The frame design incorporates a 4-bar linkage spring mechanism to absorb shock and vibrations. The e-bike can recharge itself during use via a dynamo and MOSFET circuit, reducing dependency on non-renewable fuels. Analyses are presented on motor sizing, shaft stresses, sprocket sizes, chain tensions, and battery charging time. The e-bike aims to provide convenient transportation while reducing traffic, air pollution, and greenhouse gas emissions.
Stabilized controller of a two wheels robotjournalBEEI
The Segway Human Transport (HT) robot, it is dynamical self-balancing robot type. The stability control is an important thing for the Segway robot. It is an indisputable fact that Segway robot is a natural instability framework robot. The case study of the Segway robot focuses on running balance control systems. The roll, pitch, and yaw balance of this robot are obtained by estimating the Kalman Filter with a combination of the pole placement and the Linear Quadratic Regulator (LQR) control method. In our system configuration, the mathematical model of the robot will be proved by Matlab Simulink by modelling of the stabilizing control system of all state variable input. Furthermore, the implementation of this system modelled to the real-time test of the Segway robot. The expected result is by substitute the known parameters from Gyro, Accelero and both rotary encoder to initial stabilize control function, the system will respond to the zero input curve. The coordinate units of displacement response and inclination response pictures are the same. As our expected, the response of the system can reach the zero point position.
The document introduces the Technology Robotix Society (TRS) of IIT Kharagpur, which aims to advance robotics education. It discusses that TRS started in 2001 and organizes the annual Robotix festival, which has grown significantly over the years with thousands of participants. TRS conducts workshops across India to spread robotics and supports projects like autonomous vehicles, bipedal robots, and applications on the Microsoft Robotics Studio platform.
Design and fabrication of delta robot.pptx igniteAbhishekKash2
A Delta robot is a parallel robot that consists of three arms connected to several joints at the base. The proposed project introduces the two arms planar delta robot which is used for producing high torque for the handling of small objects. Applications - these type of robots is used for picking and placing products in groups and placing them in a container or in an assembly pattern.
IRJET- Automated Guided Vehicle using Servo Motor in Indoor Positioning S...IRJET Journal
This document summarizes an academic paper that proposes an automated guided vehicle (AGV) system using servo motors for indoor positioning. Key points:
- The system uses low-cost servo motors rather than expensive laser or GPS systems to navigate AGVs indoors through coordinate system conversions.
- Servo motors are controlled through pulse-width modulation to determine angular position. This provides accurate indoor positioning without high costs.
- The path decision process and navigation architecture are described, including differential speed control of wheels, programmed path selection, and coordinate tracking for location.
- It is concluded that the proposed low-cost servo motor system can help automate material transportation in a flexible and efficient way to reduce labor costs
Modeling, Simulation, and Optimal Control for Two-Wheeled Self-Balancing Robot IJECEIAES
Two-wheeled self-balancing robot is a popular model in control system experiments which is more widely known as inverted pendulum and cart model. This is a multi-input and multi-output system which is theoretical and has been applied in many systems in daily use. Anyway, most research just focus on balancing this model through try-on experiments or by using simple form of mathematical model. There were still few researches that focus on complete mathematic modeling and designing a mathematical model based controller for such system. This paper analyzed mathematical model of the system. Then, the authors successfully applied a Linear Quadratic Regulator (LQR) controller for this system. This controller was tested with different case of system condition. Controlling results was proved to work well and tested on different case of system condition through simulation on matlab/Simulink program.
1) The document discusses opportunities in the robotics field, including the robotics market, required skill sets, and popular robotic products.
2) It describes the author's first robotic arm project, including modular design, pick and place demonstration, and hardware.
3) The author's vision is to design more advanced robotic arms and home service robots through opportunities that bring together a multi-disciplinary team with a common goal.
This document summarizes a student project to build a self-balancing robot controlled by a mobile phone using Bluetooth. A group of 6 students from ITM Vocational University developed the robot under faculty guidance. The robot uses an Arduino, gyroscope, accelerometer, motor driver and DC motors. It balances itself using PID control and can be operated remotely from a mobile app connected via Bluetooth. The presentation covers the objectives, components, circuit diagrams, software, advantages and applications of the self-balancing robot.
1) The document describes the design and implementation of a pick and place robot using a PIC microcontroller, sensors, and DC motors. It includes the mechanical design of the robotic arm and gripper.
2) Simulation results show the robot arm moving in response to signals from the PIC microcontroller to the DC motors. The real-world behavior is then compared to the simulation results.
3) Different robot configurations - including Cartesian, cylindrical, parallel, and SCARA - are evaluated in terms of their advantages and disadvantages for various applications. The document concludes that the articulated robot arm performed pick and place tasks as intended.
An overview to segway and its working principal.It is a self balancing robot, used for transportation purpose.It failed due to many of its disadvantages
This document discusses the design and implementation of a DELTA parallel robot. It describes the key components of a DELTA robot including the triangular base with three arms attached at uniform joints. Each arm is connected to an actuator and separated by 120 degrees. The robot consists of two links where a pair of parallel bars comprises the lower link, restricting movement to three translations along the X, Y, and Z axes. Popular applications of DELTA robots include high-speed packaging and medical/pharmaceutical uses due to their stiffness. Several variants of DELTA robots have been developed with different degrees of freedom.
This document reports on the development of a self-balancing robot. It describes the key modules of the robot's mechanical and electronic systems. The mechanical system uses a wooden structure and two wheels. The electronic system includes a processor module using an Arduino Mega, sensor modules consisting of an IMU and quadrature encoders, actuator modules with DC motors and motor drivers, and a communication module using Zigbee wireless. It then discusses modeling the dynamics of the DC motors and robot, and designing control systems using PID and state space control approaches.
The document summarizes a project report for an autonomous robot named NA-YATR submitted to The Robotics Club. The report describes the components used including Arduino, motors, sensors, and software. It explains the working of the robot using A* pathfinding and ultrasonic sensors for obstacle avoidance. Experimental results showed the robot could efficiently detect obstacles and change paths to reach its destination. Future enhancements are discussed to improve functionality.
Wheeled robots are often utilized for various remote sensing and telerobotic applications because of their ability to navigate through dynamic environments, mostly under the partial control of a human operator. To make these robots capable to traverse through terrains of rough and uneven topography, their driving mechanisms and controllers must be very efficient at producing and controlling large mechanical power with great precision in real-time, however small the robot may be. This paper discusses an approach for designing a quad-wheeled robot, which is wirelessly controlled with a personal computer (PC) by medium-range radio frequency (RF) transceiver, to navigate through unpaved paths with little or no difficulty. An efficient servo-controlled Ackerman steering mechanism and a high-torque driving power-train were developed. The robot’s controller is programmed to receive and respond to RF control signals from the PC to perform the desired motions. The dynamics of the robot’s drivetrain is modeled and analyzed on MATLAB to predict its performances. The robot was tested on various topographies to determine its physical capabilities. Results show that the robot is capable of non-holonomically constrained motions on rough and uneven terrains.
In India majorly, the transport is done by the trains. Hence, we have a large railway
network spread throughout the country. Due to its large use maintenance of the railway track has to be
done on a regular basis. Because of which, we have huge number of patrolling and monitoring staff
workers in the Indian Railways. These workers have to travel a long distance onto the tracks to reach
the site location. At places where there are no side roads on sideways of the railway track these
workers have to walk to the site. Hence to provide them ease and helping them in reaching the site
location quickly we have introduced this Railway Track Patrolling Bicycle, which is the modified
version of railway bicycle currently in use. This bicycle will also help the workers to detect any type of
crack on the railway tracks. The Track Pedal contains an ultrasonic sensor that will automatically
detect the cracks on the track. This report gives you a brief introduction about the Track Pedal. It runs
at maximum speed of 15 kmph. It weighs less than 30kg. The report contains literature review in detail.
The report also explains about the problem statement of the project. The main objectives of this project
is also listed in the report. The appropriate solution to the problem statement is been provided in the
proposed methodology chapter. The report contains various figures including some CAD model image
which give the complete visualization of the project. Finally, the conclusion of the project is covered in
the last chapter. At the end there is a list of references from where the important information it is been
collected.
IRJET- Design and Analysis of Plug-in Hybrid Motorcycle ChassisIRJET Journal
This document describes the design and analysis of a plug-in hybrid electric motorcycle (PHEM) chassis. A half-duplex cradle chassis design is analyzed for its ability to accommodate the additional components of a PHEM powertrain within the constrained space of a motorcycle frame. The chassis is modeled in 3D CAD software and analyzed for stress distribution, displacement, and strain using finite element analysis software. The analysis identifies critical points with the highest stress to guide further chassis design and development of a safe prototype.
Robust composite nonlinear feedback for nonlinear Steer-by-Wire vehicle’s Yaw...journalBEEI
Yaw control is a part of an Active Front Steering (AFS) system, which is used to improve vehicle manoeuvrability. Previously, it has been reported that the yaw rate tracking performance of a linear Steer-by-Wire (SBW) vehicle equipped with a Composite Nonlinear Feedback (CNF) controller and a Disturbance Observer (DOB) is robust with respect to side wind disturbance effects. This paper presents further investigation regarding the robustness of the combination between a CNF and a DOB in a nonlinear environment through a developed 7-DOF nonlinear SBW vehicle. Moreover, in contrast to previous studies, this paper also contributes in presenting the validation works of the proposed control system in a real-time situation using a Hardware-in-Loop (HIL) platform. Simulation and validation results show that the CNF and DOB managed to reduce the influence of the side wind disturbance in nonlinearities.
Cyber crime is a growing problem in India as internet usage increases. There are various types of cyber crimes like hacking, denial of service attacks, and software piracy. India is a major target for phishing scams due to its large number of internet and mobile users. The government has enacted laws like the Information Technology Act 2000 to combat cyber crimes. Individuals should take safety precautions like using antivirus software and firewalls to protect themselves from cyber criminals.
Monika Siyal is seeking an entry-level position where she can utilize her technical and analytical skills. She has a three-year diploma in interior designing and decoration from L S Raheja School of Architecture. She has experience with software like AutoCAD, Photoshop, and SketchUp. Her areas of interest include designing residential, commercial, retail, and hospitality spaces. She has project experience designing a personal office space.
IRJET- Self Balancing Robot using Arduino UnoIRJET Journal
This document describes a self-balancing robot project that uses an Arduino Uno, MPU6050 gyroscope/accelerometer, motor driver, Raspberry Pi 3B and Pi camera. The robot balances itself using the inverted pendulum concept with active control from a PID controller. The Arduino reads tilt angles from the MPU6050 and controls the motors via the motor driver to balance the robot. The Raspberry Pi and Pi camera allow for live video streaming to provide visuals from the robot for search and rescue applications in hazardous areas.
IRJET- A Review on Automobile Gear Transmission MechanismIRJET Journal
This document discusses various types of automatic transmission mechanisms used in vehicles. It begins by describing traditional automatic transmissions that use a torque converter to change gears hydraulically. It then outlines several other types including automated-manual transmissions, continuously variable transmissions, dual-clutch transmissions, direct shift gearboxes, and tiptronic transmissions. The advantages of automatic transmissions are noted as providing torque conversion, improved fuel economy, and reliable performance compared to manual transmissions. In conclusion, automatic transmissions are becoming more widely used as they reduce effort for the driver while optimizing efficiency.
The document describes a two-wheeled self-balancing robot project created by three students. It has two modes: balancing mode, where it automatically balances itself, and Bluetooth mode, where it can be controlled remotely via an Android phone. The robot was designed to be affordable and help disabled individuals, and incorporates a gyroscope, sensors, and an Arduino controller. The students faced challenges but created a functional prototype and discuss potential applications and future improvements.
IRJET - A Dynamic Model and Analysis of Innovative E-BikeIRJET Journal
This document presents the design and analysis of an innovative e-bike. Key features of the e-bike include a spring shock absorber, MOSFET circuit, and Shimano 7-gear drive system. The frame design incorporates a 4-bar linkage spring mechanism to absorb shock and vibrations. The e-bike can recharge itself during use via a dynamo and MOSFET circuit, reducing dependency on non-renewable fuels. Analyses are presented on motor sizing, shaft stresses, sprocket sizes, chain tensions, and battery charging time. The e-bike aims to provide convenient transportation while reducing traffic, air pollution, and greenhouse gas emissions.
Stabilized controller of a two wheels robotjournalBEEI
The Segway Human Transport (HT) robot, it is dynamical self-balancing robot type. The stability control is an important thing for the Segway robot. It is an indisputable fact that Segway robot is a natural instability framework robot. The case study of the Segway robot focuses on running balance control systems. The roll, pitch, and yaw balance of this robot are obtained by estimating the Kalman Filter with a combination of the pole placement and the Linear Quadratic Regulator (LQR) control method. In our system configuration, the mathematical model of the robot will be proved by Matlab Simulink by modelling of the stabilizing control system of all state variable input. Furthermore, the implementation of this system modelled to the real-time test of the Segway robot. The expected result is by substitute the known parameters from Gyro, Accelero and both rotary encoder to initial stabilize control function, the system will respond to the zero input curve. The coordinate units of displacement response and inclination response pictures are the same. As our expected, the response of the system can reach the zero point position.
The document introduces the Technology Robotix Society (TRS) of IIT Kharagpur, which aims to advance robotics education. It discusses that TRS started in 2001 and organizes the annual Robotix festival, which has grown significantly over the years with thousands of participants. TRS conducts workshops across India to spread robotics and supports projects like autonomous vehicles, bipedal robots, and applications on the Microsoft Robotics Studio platform.
Design and fabrication of delta robot.pptx igniteAbhishekKash2
A Delta robot is a parallel robot that consists of three arms connected to several joints at the base. The proposed project introduces the two arms planar delta robot which is used for producing high torque for the handling of small objects. Applications - these type of robots is used for picking and placing products in groups and placing them in a container or in an assembly pattern.
IRJET- Automated Guided Vehicle using Servo Motor in Indoor Positioning S...IRJET Journal
This document summarizes an academic paper that proposes an automated guided vehicle (AGV) system using servo motors for indoor positioning. Key points:
- The system uses low-cost servo motors rather than expensive laser or GPS systems to navigate AGVs indoors through coordinate system conversions.
- Servo motors are controlled through pulse-width modulation to determine angular position. This provides accurate indoor positioning without high costs.
- The path decision process and navigation architecture are described, including differential speed control of wheels, programmed path selection, and coordinate tracking for location.
- It is concluded that the proposed low-cost servo motor system can help automate material transportation in a flexible and efficient way to reduce labor costs
Modeling, Simulation, and Optimal Control for Two-Wheeled Self-Balancing Robot IJECEIAES
Two-wheeled self-balancing robot is a popular model in control system experiments which is more widely known as inverted pendulum and cart model. This is a multi-input and multi-output system which is theoretical and has been applied in many systems in daily use. Anyway, most research just focus on balancing this model through try-on experiments or by using simple form of mathematical model. There were still few researches that focus on complete mathematic modeling and designing a mathematical model based controller for such system. This paper analyzed mathematical model of the system. Then, the authors successfully applied a Linear Quadratic Regulator (LQR) controller for this system. This controller was tested with different case of system condition. Controlling results was proved to work well and tested on different case of system condition through simulation on matlab/Simulink program.
1) The document discusses opportunities in the robotics field, including the robotics market, required skill sets, and popular robotic products.
2) It describes the author's first robotic arm project, including modular design, pick and place demonstration, and hardware.
3) The author's vision is to design more advanced robotic arms and home service robots through opportunities that bring together a multi-disciplinary team with a common goal.
This document summarizes a student project to build a self-balancing robot controlled by a mobile phone using Bluetooth. A group of 6 students from ITM Vocational University developed the robot under faculty guidance. The robot uses an Arduino, gyroscope, accelerometer, motor driver and DC motors. It balances itself using PID control and can be operated remotely from a mobile app connected via Bluetooth. The presentation covers the objectives, components, circuit diagrams, software, advantages and applications of the self-balancing robot.
1) The document describes the design and implementation of a pick and place robot using a PIC microcontroller, sensors, and DC motors. It includes the mechanical design of the robotic arm and gripper.
2) Simulation results show the robot arm moving in response to signals from the PIC microcontroller to the DC motors. The real-world behavior is then compared to the simulation results.
3) Different robot configurations - including Cartesian, cylindrical, parallel, and SCARA - are evaluated in terms of their advantages and disadvantages for various applications. The document concludes that the articulated robot arm performed pick and place tasks as intended.
An overview to segway and its working principal.It is a self balancing robot, used for transportation purpose.It failed due to many of its disadvantages
This document discusses the design and implementation of a DELTA parallel robot. It describes the key components of a DELTA robot including the triangular base with three arms attached at uniform joints. Each arm is connected to an actuator and separated by 120 degrees. The robot consists of two links where a pair of parallel bars comprises the lower link, restricting movement to three translations along the X, Y, and Z axes. Popular applications of DELTA robots include high-speed packaging and medical/pharmaceutical uses due to their stiffness. Several variants of DELTA robots have been developed with different degrees of freedom.
This document reports on the development of a self-balancing robot. It describes the key modules of the robot's mechanical and electronic systems. The mechanical system uses a wooden structure and two wheels. The electronic system includes a processor module using an Arduino Mega, sensor modules consisting of an IMU and quadrature encoders, actuator modules with DC motors and motor drivers, and a communication module using Zigbee wireless. It then discusses modeling the dynamics of the DC motors and robot, and designing control systems using PID and state space control approaches.
The document summarizes a project report for an autonomous robot named NA-YATR submitted to The Robotics Club. The report describes the components used including Arduino, motors, sensors, and software. It explains the working of the robot using A* pathfinding and ultrasonic sensors for obstacle avoidance. Experimental results showed the robot could efficiently detect obstacles and change paths to reach its destination. Future enhancements are discussed to improve functionality.
Wheeled robots are often utilized for various remote sensing and telerobotic applications because of their ability to navigate through dynamic environments, mostly under the partial control of a human operator. To make these robots capable to traverse through terrains of rough and uneven topography, their driving mechanisms and controllers must be very efficient at producing and controlling large mechanical power with great precision in real-time, however small the robot may be. This paper discusses an approach for designing a quad-wheeled robot, which is wirelessly controlled with a personal computer (PC) by medium-range radio frequency (RF) transceiver, to navigate through unpaved paths with little or no difficulty. An efficient servo-controlled Ackerman steering mechanism and a high-torque driving power-train were developed. The robot’s controller is programmed to receive and respond to RF control signals from the PC to perform the desired motions. The dynamics of the robot’s drivetrain is modeled and analyzed on MATLAB to predict its performances. The robot was tested on various topographies to determine its physical capabilities. Results show that the robot is capable of non-holonomically constrained motions on rough and uneven terrains.
In India majorly, the transport is done by the trains. Hence, we have a large railway
network spread throughout the country. Due to its large use maintenance of the railway track has to be
done on a regular basis. Because of which, we have huge number of patrolling and monitoring staff
workers in the Indian Railways. These workers have to travel a long distance onto the tracks to reach
the site location. At places where there are no side roads on sideways of the railway track these
workers have to walk to the site. Hence to provide them ease and helping them in reaching the site
location quickly we have introduced this Railway Track Patrolling Bicycle, which is the modified
version of railway bicycle currently in use. This bicycle will also help the workers to detect any type of
crack on the railway tracks. The Track Pedal contains an ultrasonic sensor that will automatically
detect the cracks on the track. This report gives you a brief introduction about the Track Pedal. It runs
at maximum speed of 15 kmph. It weighs less than 30kg. The report contains literature review in detail.
The report also explains about the problem statement of the project. The main objectives of this project
is also listed in the report. The appropriate solution to the problem statement is been provided in the
proposed methodology chapter. The report contains various figures including some CAD model image
which give the complete visualization of the project. Finally, the conclusion of the project is covered in
the last chapter. At the end there is a list of references from where the important information it is been
collected.
IRJET- Design and Analysis of Plug-in Hybrid Motorcycle ChassisIRJET Journal
This document describes the design and analysis of a plug-in hybrid electric motorcycle (PHEM) chassis. A half-duplex cradle chassis design is analyzed for its ability to accommodate the additional components of a PHEM powertrain within the constrained space of a motorcycle frame. The chassis is modeled in 3D CAD software and analyzed for stress distribution, displacement, and strain using finite element analysis software. The analysis identifies critical points with the highest stress to guide further chassis design and development of a safe prototype.
Robust composite nonlinear feedback for nonlinear Steer-by-Wire vehicle’s Yaw...journalBEEI
Yaw control is a part of an Active Front Steering (AFS) system, which is used to improve vehicle manoeuvrability. Previously, it has been reported that the yaw rate tracking performance of a linear Steer-by-Wire (SBW) vehicle equipped with a Composite Nonlinear Feedback (CNF) controller and a Disturbance Observer (DOB) is robust with respect to side wind disturbance effects. This paper presents further investigation regarding the robustness of the combination between a CNF and a DOB in a nonlinear environment through a developed 7-DOF nonlinear SBW vehicle. Moreover, in contrast to previous studies, this paper also contributes in presenting the validation works of the proposed control system in a real-time situation using a Hardware-in-Loop (HIL) platform. Simulation and validation results show that the CNF and DOB managed to reduce the influence of the side wind disturbance in nonlinearities.
Cyber crime is a growing problem in India as internet usage increases. There are various types of cyber crimes like hacking, denial of service attacks, and software piracy. India is a major target for phishing scams due to its large number of internet and mobile users. The government has enacted laws like the Information Technology Act 2000 to combat cyber crimes. Individuals should take safety precautions like using antivirus software and firewalls to protect themselves from cyber criminals.
Monika Siyal is seeking an entry-level position where she can utilize her technical and analytical skills. She has a three-year diploma in interior designing and decoration from L S Raheja School of Architecture. She has experience with software like AutoCAD, Photoshop, and SketchUp. Her areas of interest include designing residential, commercial, retail, and hospitality spaces. She has project experience designing a personal office space.
Broadband networking through human bodyMayank Garg
The document discusses RedTacton technology, which allows for data transmission through the human body using electric fields. RedTacton uses the human body as a transmission medium by producing a minute electric field from a transmitter. A receiver uses an electric field sensor to detect the signal. It works through direct contact between the body and transceiver and does not require wires. RedTacton offers secure data transmission without interference and can achieve speeds up to 20Mbps. It has applications in areas like sharing contact information or photos with a touch and streaming music without headphones.
1. The document discusses problems related to calculating work done, including work done by a hydraulic cylinder, heating of air in a piston cylinder, and compression/expansion of gases.
2. Sample problems are worked out step-by-step showing calculations of work done using principles of pressure, volume, temperature and properties of ideal gases.
3. The problems cover a range of scenarios involving hydraulic systems, gases in pistons, and the effects of heating, compression and polytropic processes on gas properties. Work values and other parameters are calculated.
This presentation showcases the research work carried out by me under the able guidance of Dr. Rajkumar S. Pant at the Lighter-than-Air laboratory at IIT Bombay
Study on 32-bit Cortex - M3 Powered MCU: STM32F101Premier Farnell
The document summarizes the features and applications of the STM32F101 microcontroller. It has a Cortex-M3 CPU, flash memory, SRAM, low power modes, and various peripherals like ADC, DAC, timers, serial interfaces. It is suitable for industrial equipment, appliances, consumer devices, and other applications requiring a low-cost ARM MCU. Development tools include compilers, debuggers, evaluation boards, and USB-to-JTAG adapters for programming and debugging the STM32F101.
The document provides an overview of the Stellaris 9000 family of ARM Cortex-M3 microcontrollers from Texas Instruments. It describes the four generations of Stellaris MCUs, their features and applications. It also discusses the ARM Cortex-M3 processor core, development tools and software support for the Stellaris family.
ARM Cortex -M3 based Motor Controling with Infineon Embedded Power ICsInfineon4Engineers
This Slideshare provides a variety of interesting information regarding Infineon Embedded Power ICs which target mainly the automotive market. In particular these are 3-phase motor control IC TLE987x and 2-Phase motor control IC TLE986x. Both chips are based on ARM Cortex -M3 and thus offer a lot of powerful opportunities.
Main applications of both ICs are driving high-end sunroofs, windows lifting, H-bridge DC motor controlling and much more. Interesting aspect is the software development tool chain Infineon provides with its motor control ICs.
Min femte berättelse är en fristående fortsättning av Josephine. Alla mina berättelser handlar om transpersoner och deras liv, förhoppningar och möjligheter. Det är berättelser som är i fiktiv form, men platser och händelser kan ha verklighetsbakgrund, likaså med personerna i mina berättelser.
Publicerad i augusti 1998
Arm cm3 architecture_and_programmer_modelGanesh Naik
The document provides an overview of the ARM Cortex-M3 architecture and programmer's model. It discusses the Cortex-M3 register set including general purpose registers, stack pointers, link register, program counter, and special registers. It also covers the Cortex-M3 operation modes of handler mode and thread mode, as well as privileged and user access levels. Finally, it describes exceptions and interrupts handling in Cortex-M3 through vector tables.
1: Interfacing using ARM Cortex M4 || IEEE SSCS AlexSC IEEE SSCS AlexSC
This document provides an overview of ARM architecture, including ARM Cortex-M4 and M3 specifications, and peripherals of the TM4C123GH6PM microcontroller. It discusses the history and development of ARM architecture, from its origins at Acorn Computers to the current licensing model. ARMv7 architecture profiles including A-Profile for application processors, R-Profile for real-time systems, and M-Profile for microcontrollers are also covered. Specific topics to be discussed include GPIO, ADC, interrupts, SPI, I2C, UART, DMA, and timer interfacing.
Neha is seeking a career opportunity to enhance her knowledge and skills. She has a Three Year Diploma in Textile Design with 74.87% marks. Her educational qualifications include passing Matric in 2009 and 12th standard in 2011 from Kendriya Vidyalaya. Her strengths include being hard working, self confident, and having a positive attitude and good communication skills. She was school captain and sports captain. Her hobbies include listening to music, communicating with people, and dancing.
Graco Inc. (GGG) has managed to maintain consistent performance despite recent market turmoil. GGG has strengthened their technological moat through highly synergistic acquisitions. They have a long-term history of high returns on equity and returns on invested capital. Low debt levels and high returns allow GGG to maintain their market position. Discrepancies between earnings and stock price suggest holding the stock. The recommendation is to add GGG to the watchlist and hold the stock.
The document provides an overview of the ARM architecture and Cortex-M3 processor. It discusses ARM Ltd.'s history and business model as an IP licensing company. It then describes the Cortex-M3 microcontroller, including its programmer's model, exception and interrupt handling, pipeline, and instruction sets. Key points are the Cortex-M3's stack-based exception model, 3-stage pipeline, conditional execution support, and AHB/APB system design integration.
The document discusses the SPI protocol used in the LPC2148 microcontroller. It describes the SPI communication modes of master and slave. It explains the various SPI registers used for configuration - SPCCR for clock settings, SPCR for control settings like CPHA and CPOL, SPDR for data transfer, and SPSR for status. It provides steps for initialization and data transfer in both master and slave modes. The document also discusses factors like clock frequency, data length, and interrupt handling related to SPI communication using LPC2148.
this ppt only for beginner who want to understand concept of Timer counter operation of LPC2148 step by step.
hope it may help u.
always welcoming ur suggestion.
The document contains multiple assembly language programs (ALPs) that perform operations like addition, finding minimum/maximum values, conversions between hexadecimal and ASCII, generating Fibonacci numbers, and calculating factorials and multiplication of numbers.
1. The document discusses different types of locomotion systems for mobile robots, including differential drive, car type drive, and skid steer drive.
2. It also covers actuators that convert electrical energy to mechanical motion, specifically DC motors which can be controlled to run in different directions and speeds.
3. Sensors that provide feedback are also mentioned as an important component for mobile robots.
IRJET- Hands-Free Electric Vehicle for Disabled PeopleIRJET Journal
The document describes a hands-free electric vehicle designed for people with disabilities in their upper limbs. The vehicle uses a leg-operated pedal mechanism for steering that incorporates a sprocket chain mechanism. A battery-powered electric motor provides propulsion. Two additional rear wheels were added for safety and balance. The design was tested and able to bear a maximum weight of 110kg. The vehicle aims to provide independent mobility for disabled users.
Electricity Generation using Treadmill TricycleIRJET Journal
1. Students at the Sree Narayana Institute of Technology designed a treadmill tricycle that allows people to exercise and generate electricity at the same time.
2. The tricycle replaces the pedals with a treadmill. As the user exercises on the treadmill, it drives the rear wheels of the tricycle via a chain drive, allowing the user to travel while exercising.
3. Small generators are attached to rotating parts of the tricycle. As the parts rotate due to the user's exercise, the generators produce electrical energy that can be stored in a battery. This stored energy can then be used to power devices during emergencies or power outages.
IRJET- Automatic Side Stand and Foot Rest Retrieval SystemIRJET Journal
1. The document describes an automatic system for lifting a side stand and unlocking a footrest on a two-wheeler vehicle.
2. The system uses microcontrollers, potentiometers, servo motors, gears and other components to sense when the ignition is turned on or a passenger is seated and automatically lift the side stand or unlock the footrest.
3. The goal is to reduce accidents caused by forgetting to lift the side stand or unlock the footrest, and improve convenience for the rider and passenger.
It is basically a structure composed of a platform and two wheels placed transversely driven by two electric motors. The system itself is stabilized by sophisticated electronic circuitry which controls the motors, taking into account not only the movements of the driver, but also the state of the vehicle, allowing it to remain always in a vertical position. The driver standing on the platform controls the running speed simply by moving the steer knob forward or backward, while the inclination to the right or left, allows turns. The mechanism that allows the Segway not to fall down is at same time brilliant and intuitive: engines give power in case you lean forward and less if you lean backwards. Obviously the control board are powered by appropriate motion sensors (similar to those that allow smartphones to change the orientation of the display) to alert the on-board microprocessor constantly on the exact orientation of the vehicle. The real secret of the Segway is not so much in the electro-mechanical part, but in the code that takes into account the physics implemented with a significant mathematical complexity.
IRJET- Survey on Gear Shifting Strategies in the VehiclesIRJET Journal
The document discusses gear shifting strategies in vehicles. It provides an overview of manual and automatic transmissions. For manual transmissions, the driver operates the clutch and shifts gears. Automatic transmissions electronically change gears based on speed without driver input. The document also reviews recent research on improving manual shift quality and developing automated manual transmissions. It describes how automated systems reduce effort and ensure smooth gear changes but are more complex than manual. Electromagnetic systems are presented as an alternative for situations requiring frequent shifting.
The document describes a proposed method for generating electricity from speed breakers on roads. A mechanism is developed using a rack and pinion system to convert the kinetic energy of moving vehicles into rotational motion. As vehicles pass over speed breakers, the downward motion of the rack is converted to rotational energy via pinions connected to gears and a shaft. This shaft powers a generator to produce electricity. The electricity could be stored in batteries and used locally. Initial tests showed that a single speed breaker could generate around 1 kW of power per hour from 100 passing vehicles. The system aims to harness wasted kinetic energy and provide a renewable source of small-scale electricity generation.
IRJET- Design and Fabrication of Multi Legged RobotIRJET Journal
1. Students designed and fabricated an eight-legged walking robot based on the Klann linkage mechanism to test new walking algorithms.
2. The Klann mechanism converts rotary motion of a crank into linear movement of the leg, simulating an animal's gait. Two linkages are coupled 180 degrees out of phase to allow the robot to walk.
3. An analysis of the robot and leg mechanisms was performed using ANSYS software to evaluate stresses, deformations, and fatigue over time. The results provide data to optimize the robot's design qualities and walking performance.
Design and Development of Lever Operated WheelchairIRJET Journal
This document describes the design and development of a lever-operated wheelchair. The wheelchair is designed to require little user effort to operate compared to conventional wheelchairs and be more affordable. It uses a ratchet and pawl mechanism connected to bicycle wheels via levers to propel the wheelchair forward with minimal effort from the user. Calculations are shown for design parameters like forces, torque, speed. CAD models and structural analysis are presented. The final working model is developed and its advantages over traditional wheelchairs are highlighted, such as increased speed and torque with less effort.
IRJET - Development of Smart & Regenerative Electric BikeIRJET Journal
The document describes the development of a smart, regenerative electric bike with two variants. One variant is designed for normal riders and uses a two-wheel drive with optional supporting wheels. It has sensors for 360-degree monitoring of obstacles. The other variant is for physically handicapped people and has two extra stabilizing wheels along with sensors and alarms to notify the rider of obstacles. Both variants feature regenerative braking and anti-lock braking systems. The goal is to provide environmentally friendly transportation that is also accessible to handicapped individuals.
IRJET- Design of Combined Brake and Accelerator PedalIRJET Journal
This document describes the design of a combined brake and accelerator pedal meant to reduce accidents caused by pressing the wrong pedal in emergencies. The pedal was designed using CATIA software and a prototype was created and tested. The combined pedal allows for both braking and accelerating with a single foot pedal through use of two pivot points and springs. Testing showed the combined pedal reduces the time needed to switch between braking and accelerating compared to separate pedals, lowering the risk of accidents. The simple design has potential to improve safety without difficulty of use.
The document presents a design for an automatic reverse wheel locking mechanism for vehicles using a ratchet and pawl connected to the rear drive shaft that is controlled by an inclination sensor and actuator to prevent uncontrolled reverse motion on hilly terrain. The mechanism aims to increase safety by restricting reverse motion when the inclination sensor detects a slope over 15 degrees and allowing reverse only when in the proper gear. It provides a simple and economical solution to prevent accidents caused by loss of control during unintended reverse movement on inclines.
1) The document describes the design of a hybrid motorcycle that combines a petrol engine with an electric hub motor and batteries.
2) The electric motor is intended to power the motorcycle for speeds up to 50km/hr, at which point the petrol engine will engage to allow for higher speeds.
3) The project aims to achieve a mileage of 150km on Rs. 100 worth of fuel by utilizing both the petrol and electric systems. Future work planned includes testing under different load conditions and optimizing the motor and controller programming.
This document describes the design and fabrication of an automatic bike stand system. The system uses sensors and a microcontroller to automatically retract a bike's side stand based on the bike's operating conditions. When the ignition is turned on, sensors detect the change in condition and send a signal to a microcontroller, which activates a motor. The motor moves the side stand from a vertical parked position to a horizontal position clear of the ground. This helps prevent accidents that can occur when riders forget to lift the side stand before starting to ride. The system aims to improve bike safety without interfering with normal bike operation or performance.
The constant rise in fuel prices on a day to day basis, maximum performance with minimum compromise on the front of fuel economy and emissions is highly desirable and expected from a vehicle’s transmission system. These friction drive CVTs were common in automotive use until engines capable of producing higher torques became common and necessitated the move to geared, fixed-ratio transmissions capable of high torque transfer and having better wear characteristics than friction dependent CVTs. Only in the past few years, with the advent of advanced materials and technology, have friction dependent CVTs returned to commercial application in the automotive industry. To provide a foundation and motivation for the research presented, this chapter first presents a definition of a continuously variable transmission.
IRJET- Design and Fabrication of Hybrid Go-KartIRJET Journal
This document describes the design and fabrication of a hybrid go-kart. The hybrid go-kart uses both an internal combustion engine and an electric motor to improve fuel efficiency. Testing showed the IC engine alone achieved 35km/liter, the electric motor alone achieved 15km on a full battery charge, and the hybrid system achieved 50km total. The hybrid go-kart was designed with a parallel hybrid configuration, using a 98cc 2-stroke gasoline engine and a 48V 1500W brushless DC electric motor. It was built with an open frame chassis and features such as disc brakes, a 3.75L fuel tank, and a 48V battery pack made of four 12V batteries. The hybrid system is
This document discusses the fabrication of a continuously variable transmission (CVT) operated motorcycle. It begins with background on CVT technology, noting its advantages over traditional transmissions like fuel efficiency and smooth shifting. It then describes the specific CVT design for the motorcycle, using two variable diameter pulleys connected by a metal belt, with one pulley on the engine crankshaft and the other on the drive wheel. Drawings and descriptions of the fabricated CVT components and their operation are provided. The objectives of the CVT motorcycle design are given as providing a gearless transmission that varies ratios continuously for optimal engine efficiency. Prior research on CVT technology is also reviewed.
IRJET - Designing and Prototype Building of Self-Balancing ‘Electric Uni-...IRJET Journal
This document describes the design, prototype building, and testing of an electric self-balancing unicycle called the Electric Uni-wheeler (EUW). The EUW uses a gyroscope sensor to detect the vehicle's angle and a microcontroller to control the hub motor, allowing it to balance on a single wheel. Key aspects summarized are:
1) The EUW uses a 350W hub motor powered by lead-acid batteries that can reach speeds up to 25 km/h.
2) A gyroscope sensor reports the vehicle's angle to a microcontroller which controls the hub motor speed and direction to maintain balance.
3) CAD software was used to design the frame from chromoly steel and analyze it
The document outlines the design of a prototype electric scooter. It aims to develop an affordable, compact scooter that allows for both pedaling and electric motor-powered transportation over short distances of 10-15 km. The design process involves researching existing scooter models, understanding market demands, designing the scooter in CAD software, analyzing the design in ANSYS, and manufacturing it using scrap bicycle parts. The proposed scooter will use a hybrid transmission with both a pedaling mechanism and a hub motor attached to the rear wheel for electric power.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfflufftailshop
When it comes to unit testing in the .NET ecosystem, developers have a wide range of options available. Among the most popular choices are NUnit, XUnit, and MSTest. These unit testing frameworks provide essential tools and features to help ensure the quality and reliability of code. However, understanding the differences between these frameworks is crucial for selecting the most suitable one for your projects.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
5. The word robot originally was supposed to
mean a slave
It is a machine which performs a variety
of tasks, either using manual external
control or intelligent automation
A manually controlled car or a ASIMOV
trying to kick a football are all robots
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
6. ž Robotics is a multi disciplinary field of
engineering encompassing the vistas of
› Mechanical design
› Electronic control
› Artificial Intelligence
ž It finds it’s uses in all aspects of our life
› automated vacuum cleaner
› Exploring the ‘Red’ planet
› Setting up a human colony there :D
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
8. Ø Locomotion System
Ø Actuators
Ø Power Supply System
Ø Transmission System
Ø Switches
Ø Sensory Devices For Feedback
Ø Sensor Data Processing Unit
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
9. Ø A mobile robot must have a system to
make it move. Ob.
Ø This system gives our machine the ability
to move forward, backward and take
turns
Ø It may also provide for climbing up and
down
Ø Or even flying or floating J
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
10. Ø Each type of locomotion requires
different number of degrees of freedom
Ø More degrees of freedom means more the
number of actuators you will have to use
Ø Although one actuator can be used to
control more than one degree of freedom
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
12. Ø The kind of locomotion most frequently
used in robotics at the undergrad level
Ø This involves conversion of electrical
energy into mechanical energy (mostly
using motors)
Ø The issue is to control these motors to
give the required speed and torque
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
13. Ø We have a simple equation for the
constant power delivered to the motor:
› P = ζ X ω
Ø Note that the torque and angular velocity
are inversely proportionally to each other
Ø So to increase the speed we have to
reduce the torque
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
14. Ø The dc motors available have very high
speed of rotation which is generally not
needed
Ø At high speeds, they lack torque
Ø For reduction in speed and increase in
“pulling capacity” we use pulley or gear
systems
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
16. Ø Simplest, easiest to implement and most
widely used.
Ø It has a free moving wheel in the front
accompanied with a left and right wheel. The
two wheels are separately powered
Ø When the wheels move in the same direction
the machine moves in that direction.
Ø Turning is achieved by making the wheels
oppose each other’s motion, thus generating
a couple
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
18. Ø In-place (zero turning radius) rotation is
done by turning the drive wheels at the same
rate in the opposite direction
Ø Arbitrary motion paths can be implemented
by dynamically modifying the angular
velocity and/or direction of the drive wheels
Ø Total of two motors are required, both of
them are responsible for translation and
rotational motion
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
19. Ø Simplicity and ease of use makes it the most
preferred system by beginners
Ø Independent drives makes it difficult for
straight line motion. The differences in
motors and frictional profile of the two
wheels cause them to move with slight
turning effect
Ø The above drawback must be countered with
appropriate feedback system. Suitable for
human controlled remote robots
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
20. Ø Uses synchronous rotation of its wheels to
achieve motion & turns
Ø It is made up of a system of 2 motors.
One which drive the wheels and the other
turns the wheels in a synchronous fashion
Ø The two can be directly mechanically
coupled as they always move in the same
direction with same speed
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
21. The direction of motion is given by
black arrow. The alignment of the
machine is shown by red arrow
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
22. Ø The use of separate motors for translation
and wheel turning guarantees straight
line motion without the need for dynamic
feedback control
Ø This system is somewhat complex in
designing but further use is much simpler
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
23. Ø Actuators, also known as drives, are
mechanisms for getting robots to move.
Ø Most actuators are powered by
pneumatics
(air pressure), hydraulics (fluid pressure),
or motors (electric current).
Ø They are devices which transform an
input signal (mainly an electrical signal))
into motion
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
24. Ø Widely used because of their
small size and high energy output.
Ø Operating voltage: usually 6,12,24V.
Ø Speed: 1-20,000 rpm..
Ø Power: P = ζ X ω
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
25. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
ØThe stator is the
stationary outside part of a
motor.
Ø The rotor is the inner
part which rotates.
Ø Red represents a
magnet or winding with a
north polarization.
Ø Green represents a
magnet or winding with a
south polarization.
Ø Opposite, red and
green, polarities attract.
Ø Commutator contacts
are brown and the brushes
are dark grey.
26. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Ø Stator is composed of two or more
permanent magnet pole pieces.
Ø Rotor composed of windings which are
connected to a mechanical commutator.
Ø The opposite polarities of the energized
winding and the stator magnet attract and the
rotor will rotate until it is aligned with the
stator.
Ø Just as the rotor reaches alignment, the
brushes move across the commutator contacts
and energize the next winding.
Ø A yellow spark shows when the brushes
switch to the next winding.
27. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
ØIt is an electric
motor that can divide a
full rotation into a large
number of steps.
Ø The motor's position
can be controlled
precisely, without any
feedback mechanism.
Ø There are three
types:
Ø Permanent
Magnet
Ø Variable
Resistance
Ø Hybrid type
28. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Ø Stepper motors work in a similar way to
dc motors, but where dc motors have 1
electromagnetic coil to produce movement,
stepper motors contain many.
Ø Stepper motors are controlled by
turning each coil on and off in a sequence.
Ø Every time a new coil is energized, the
motor rotates a few degrees, called the
step angle.
30. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Full Step
Ø Stepper motors have 200
rotor teeth, or 200 full steps
per revolution of the motor
shaft.
Ø Dividing the 200 steps
into the 360º's rotation
equals a 1.8º full step angle.
Ø Achieved by energizing
both windings while
reversing the current
alternately.
31. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
ØServos operate on the principle of negative
feedback, where the control input is compared to
the actual position of the mechanical system as
measured.
ØAny difference between the actual and wanted
values (an "error signal") is amplified and used to
drive the system in the direction necessary to
reduce or eliminate the error
ØTheir precision movement makes them ideal for
powering legs, controlling rack and pinion steering,
to move a sensor around etc.
32. Ø Suitable power source is needed to run
the robots
Ø Mobile robots are most suitably powered
by batteries
Ø The weight and energy capacity of the
batteries may become the determinative
factor of its performance
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
33. Ø For a manually controlled robot, you can
use batteries or voltage eliminators
(convert the normal 220V supply to the
required DC voltage 12V , 24V etc.)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
35. Ø Gears are the most common means of
transmitting power in mechanical
engineering
Ø Gears form vital elements of mechanisms in
many machines such as vehicles, metal
tooling machine tools, rolling mills, hoisting
etc.
Ø In robotics its vital to control actuator speeds
and in exercising different degrees of
freedom
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
37. Ø To achieve torque magnification and
speed reduction
Ø They are analogous to transformers in
electrical systems
Ø It follows the basic equation:
Ø ω1 x r1 = ω2 x r2
Ø Gears are very useful in transferring
motion between different dimension
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
38. Ø An arrangement of gears to convert
rotational torque to linear motion
Ø Same mechanism used to steer wheels
using a steering
Ø In robotics used extensively in clamping
systems
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
41. Ø It allows for mechanical power, torque,
and speed to be transmitted across axes
Ø If the pulleys are of differing diameters, it
gives a mechanical advantage
Ø In robotics it can be used in lifting loads
or speed reduction
Ø Also it can be used in a differential drive
to interconnect wheels
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
43. Ø Sprocket is a profiled wheel with teeth that
meshes with a chain
Ø It is similar to the system found in bicycles
Ø It can transfer rotary motion between shafts
in cases where gears are unsuitable
Ø Can be used over a larger distance
Ø Compared to pulleys has lesser slippage due
to firm meshing between the chain and
sprocket
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
45. Ø For picking and placing many mechanisms
can be used:
vHook and pick
vClamp and pick
vSlide a sheet below and pick
vMany other ways
vLots of Scope for innovation
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
47. ž Image Processing is a tool for
analyzing image data in all areas of
natural science
ž It is concerned with extracting data
from real-world images
ž Differences from computer graphics is
that computer graphics makes
extensive use of primitives like lines,
triangles & points. However no such
primitives exist in a real world images.
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
48. ž Increasing need to replicate human
sensory organs
ž Eye (Vision) : The most useful and
complex sensory organ
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
51. ž Automated visual inspection system
Checking of objects for defects visually
ž Remote Sensing
ž Satellite Image Processing
ž Classification (OCR), identification
(Handwriting, finger prints) etc.
ž Detection and Recognition systems
(Facial recognition..etc)
ž Biomedical applications
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
52. ž Camera, Scanner or any other image
acquisition device
ž PC or Workstation or Digital Signal
Processor for processing
ž Software to run on the hardware platform
(Matlab, Open CV etc.)
ž Image representation to process the
image (usually matrix) and provide spatial
relationship
ž A particular color space is used to
represent the image(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
53. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Image Acquisition Device
(Eg. CCD or CMOS Camera)
Image Processor
(Eg. PC or DSP)
Image Analysis Tool
(Eg. Matlab or Open CV)
Machine Control Of Hardware
through serial or parallel interfacing
54. ž Using a camera
ž Analog cameras
ž Digital cameras
› CCD and CMOS cameras
ž Captures data from a single
light receptor at a time
ž CCD – Charge Coupled Devices
ž CMOS – Complementary MOSFET Sensor
based
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
55. ž Digital Cameras
› CCD Cameras
– High quality, low noise images
– Genarates analog signal converted using ADC
– Consumes high power
› CMOS Cameras
– Lesser sensitivity
– Poor image quality
– Lesser power
ž Analogue cameras require grabbing card
or TV tuner card to interface with a PC
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
59. ž Two types: Vector and Raster
ž Vector images store curve information
ž Example: India’s flag
ž Three rectangles, one circle and
the spokes
ž We will not deal with vector images at
all
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
60. ž Raster images are different
ž They are made up of several dots
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
61. ž If you think about it, your laptop’s
display is a raster display
ž Also, vector images are high level
abstractions
ž Vector representations are more
complex and used for specific purposes
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
62. ž Raster
› Matrix
ž Vector
› Quadtrees
› Chains
› Pyramid
Of the four, matrix is the most general.
The other three are used for special
purposes. All these representations must
provide for spatial relationships
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
63. ž Computers cannot handle continuous
images but only arrays of digital
numbers
ž So images are represented as 2-D
arrays of points (2-D matrix)(Raster
Represenatation)
ž A point on this 2-D grid (corresponding
to the image matrix element) is called
PIXEL (picture element)
ž It represents the average irradiance
over the area of the pixel
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
64. ž Each pixel requires some memory
ž Color depth : Amount of memory each
pixel requires
ž Examples
› 1-bit
› 8-bit
› 32-bit
› 64-bit
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
65. ž Pixels are tiny little dots of color you see on
your screen, and the smallest possible size
any image can get
ž When an image is stored, the image file
contains information on every single pixel in
that image i.e
› Pixel Location
› Intensity
ž The number of pixels used to represent the
image digitally is called Resolution
ž More the number of pixels used, higher the
resolution
ž Higher resolution requires more
processing power
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
68. ž MATLAB stands for MATrix LABoratory,
a software developed by Mathworks
Inc (www.mathworks.com). MATLAB
provides extensive library support for
various domains of scientific and
engineering computations and
simulations
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
69. ž When you click the MATLAB icon (from
your desktop or Start>All Programs),
you typically see three windows:
Command Window, Workspace and
Command History. Snapshots of these
windows are shown below
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
70. ž This window shows the variables
defined by you in current session on
MATLAB
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
71. ž Command History stores the list of
recently used commands for quick
reference
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
72. ž This is where you run your code
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
73. ž This is where you run your code
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
74. ž In MATLAB, variables are stored as
matrices (singular: matrix), which
could be either an integer, real
numbers or even complex numbers
ž These matrices bear some
resemblance to array data structures
(used in computer programming)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
75. ž Let us start with writing simple
instructions on MATLAB command
window
ž To define an integer,
ž Type a=4 and hit enter
ž >>a=4
ž To avoid seeing the variable, add a
semicolon after the instruction
ž >>a=4;
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
76. ž Similarly to define a 2x2 matrix, the
instruction in MATLAB is written as
ž >> b=[ 1 2; 3 4];
ž If you are familiar with operations on
matrix, you can find the determinant
or the inverse of the matrix.
ž >> determin= det(b)
ž >> d=inv(b)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
77. ž Images as we have already seen are
stored as matrices
ž So now we try to see this for real on
MATLAB
ž We shall also look into the basic
commands provided by MATLAB’s
Image Processing Toolbox
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
78. ž Once you have started MATLAB, type the
following in the Command Window
ž >> im=imread(‘sample.jpg');
ž This command stores the file image file
‘sample.jpg’ in a variable called ‘im’
ž It takes this file from the Current-
Directory specified
ž Else, entire path of file should be
mentioned
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
79. ž You can display the image in another
window by using imshow command
ž >>figure,imshow(im);
ž This pops up another window (called as
figure window), and displays the image
‘im’
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
80. ž The ‘imview’ command can also be
used in order toview the image
ž imview(im);
ž Difference is that in this case you can
see specific pixel values just by moving
the cursor over the image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
81. ž To know the breadth and height of the
image, use the size function,
ž >>s=size(im);
ž The size function basically gives the
size of any array in MATLAB
ž Here we get the size of the IMAGE
ARRAY
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
82. ž Now that we have our image stored in
a variable we can observe and
understand the following:
ž How pixels are stored?
ž What does the values given by each
pixel indicate?
ž What is Image Resolution?
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
83. ž Have a look at the values stored
ž Say the first block of 10 x 10
ž >>im(1:10,1:10);
ž Or Say view the pixel range 50:150 on
both axis
ž >>
figure,imshow(im(50:150,50:150));
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
85. ž 1-bit = BLACK or WHITE
ž 8-bit = 28 different shades
ž 24-bit = 224 different shades
ž 64-bit images – High end displays
ž Used in HDRI, storing extra
information per pixel, etc
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
86. ž This is another name for 1-bit images
ž Each pixel is either White or Black
ž Technically, this is a black & white
image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
88. ž Another name for 8-bit images
ž Each pixel can be one of 256 different
shades of gray
ž These images are popularly called
Black & White. Though, this is
technically wrong.
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
90. ž Again, each pixel gets 8 bits
ž But each of the 256 values maps to a
color in a predefined “palette”
ž If required, you can have different
bit depths
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
91. ž We won’t be dealing with indexed
images
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
92. ž 8-bits is too less for all the different
shades of colors we see
ž So 24-bits is generally used for color
images
ž Thus each pixel can have one of 224
unique colors
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
94. ž Now, a new problem arises:
ž How do you manage so many different
shades?
ž Programmers would go nuts
ž Then came along the idea of color
spaces
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
96. ž A color space can be thought of as a
way to manage millions of colors
ž Eliminates memorization, and
increases predictability
ž Common color spaces:
› RGB
› HSV
› YCrCb or YUV
› YIQ
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
98. ž Each pixel stores 3 bytes of data
ž The 24-bits are divided into three 8-bit
values
ž The three are: Red, Green and Blue i.e
the primary colours
ž Mixing of primary colours in right
proportions gives any particular colour
ž Each pixel has these 3 values
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
99. ž 1 byte = 8 bits can store a value
between 0-255
ž We get pixel data in the form RGB
values with each varying from 0-255
ž That is how displays work
ž So there are 3 grayscale channels
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
102. ž HSV makes image processing easier
ž Again, 24 bits = three 8-bit values or 3
channels
ž The 3 channels are:
› Hue
› Saturation (Shade of Colour)
› Value (Intensity)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
103. ž The Hue is the tint of color used
› It represents the colour of the pixel (Eg. Red
Green Yellow etc)
ž The Saturation is the “amount” of
that tint
› It represents the intensity of the colour (Eg.
Dark red and light red)
ž The Value is the “intensity” of that
pixel
› It represents the intensity of brightness of the
colour
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
105. ž Advantages:
› The color at a pixel depends on a single
value
› Illumination independent
ž Disadvantages:
› Something
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
106. ž Intuitively RGB might seem to be the simpler
and better colour space to deal with
ž Though HSV has its own advantages
especially in colour thresholding
ž As the colour at each pixel depends on a
single hue value it is very useful in
separating out blobs of specific colours even
when there are huge light variations
ž Thus it is very useful in processing real
images taken from camera as there is a large
amount of intensity variation in this case
ž Hence, ideal for robotics applications
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
107. ž Widely used in digital video
ž Has three 8-bit channels:
› Y Component:
– Gives luminance or intensity
› Cr Component:
– It is the RED component minus a reference value
› Cb Component:
– It is the BLUE component minus a reference
value
ž Hence Cr and Cb components represent
the colour called “Color Difference
Components”
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
108. ž Advantages:
› Used in video processing
› Gives you a 2-D colour space hence helps
in closer distinguishing of colours
ž Disadvantages:
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
110. ž The camera returns images in a certain
color space
ž You might want to convert to different
color spaces to process it
ž Colour space conversions can take
place between RGB to any other colour
space and vice versa
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
111. ž Since cameras usually input images in
rgb
ž We would like to convert these images
into HSV or YCrCb
ž Conversions:
› RGB->HSV
› HSV->RGB
› RGB->YCrCb
› YCrCb->RGB
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
114. ž >>h = rgb2hsv(im)
ž This converts the RGB image to HSV
ž The new colour space components can be
seen using
ž >> imview(h)
ž >> imview(h(:,:,1)) “—HUE—”
ž >> imview(h(:,:,2)) “—Saturation—
”
ž >> imview(h(:,:,3)) “—Value—”
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
115. ž >>R = hsv2rgb(im)
ž This converts the HSV image to RGB
ž The new colour space components can
be seen using
ž >> imview(R)
ž >> imview(R(:,:,1)) “—Red—”
ž >> imview(R(:,:,2)) “—Green—”
ž >> imview(R(:,:,3)) “—Blue—”
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
116. ž >> Y = rgb2ycbcr(im);
ž This converts the RGB image to YCbCr
ž The new colour space components can be
seen using
ž >> imview(Y)
ž >> imview(Y(:,:,1)) “—Luminance—”
ž >> imview(Y(:,:,2)) “—Differenced
Blue—”
ž >> imview(Y(:,:,3)) “—Differenced
Red—”
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
117. ž >> R = ycbcr2rgb(im);
ž This converts the YCbCr image to RGB
ž The new colour space components can
be seen using
ž >> imview(R)
ž >> imview(R(:,:,1)) “—Red—”
ž >> imview(R(:,:,2)) “—Green—”
ž >> imview(R(:,:,3)) “—Blue—”
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
118. ž Formulae for conversion are very
complex
ž But the best thing is, you don’t need to
remember these formulae
ž Matlab and OpenCV have built-in
functions for these transformations :-)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
121. ž OpenCV is a collection of many
functions that help in image processing
ž You can use OpenCV in C/C++, .net
languages, Java, Python, etc as well
ž We will only discuss OpenCV in C/C++
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
122. ž It is blazingly fast
ž Quite simple to use and learn
ž Has functions for machine learning,
image processing, and GUI creation
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
124. ž Download the latest OpenCV package
from
http://sourceforge.net/projects/opencv
/
ž Install the package, and note where
you installed it (like C:Program
FilesOpenCV)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
125. ž Now, we need to tell Microsoft Visual
Studio that we’ve installed OpenCV
ž So, we tell it where to find the OpenCV
header files
ž Start Microsoft Visual Studio 2008
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
128. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Type
these
paths
into the
list
129. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Type
these
paths
into the
list
130. ž Right now, Visual Studio knows where
to find the OpenCV include files and
library files
ž Now we create a new project
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
132. ž Accept all default settings in the
project
ž You’ll end up with an empty project
with a single file (like Mybot.cpp)
ž Open this file, we’ll write some code
now
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
133. ž Add the following at the top of the
code
#include <cv.h>
#include <highgui.h>
ž This piece of code includes necessary
OpenCV functionality
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
134. ž Now, we get to the main() function
int main()
{
ž The main function is where for
program execution begins
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
135. ž Next, we load an image
IplImage* img = cvLoadImage("C:hello.jpg");
ž The IplImage is a data type, like int,
char, etc
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
136. ž Comes built-into OpenCV
ž Any image in OpenCV is stored as an
IplImage thingy
ž It is a “structure”
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
138. ž Now we show this image in a window
cvNamedWindow("myfirstwindow");
cvShowImage("myfirstwindow", img);
ž This uses some HighGUI functions
(comes along with OpenCV)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
139. ž Creates a window with the caption title
ž This is a HighGUI function
ž You can add controls to each window
as well (track bars, buttons, etc)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
140. ž Shows img in the window with caption
title
ž If no such window exists, nothing
happens
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
141. ž Finally, we wait for an input, release
and exit
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
142. ž Waits for time milliseconds, and
returns whatever key is pressed
ž If time=0, waits till eternity
ž Here, we’ve used it to keep the
windows from vanishing immediately
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
143. ž Erases img from the RAM
ž Get rid of an image as soon as
possible. RAM is precious J
ž Note that you send the address of the
image (&img) and not just the image
(img)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
145. ž Right now, Visual Studio knows where
OpenCV is
ž But it does not know, whether to use
OpenCV or not
ž We need to tell this explicitly
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
152. ž src is the original image
ž dst is the destination
ž code is one of the follow:
› CV_BGR2HSV
› CV_RGB2HSV
› CV_RGB2YCrCb
› CV_HSV2RGB
› CV_<src_space>2<dst_space>
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
153. ž src should be a valid image. Or an
error will pop up
ž dst should be a valid image, i.e. you
need a blank image of the same size
ž code should be valid (check the
OpenCV documentation for that)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
154. ž Allocates memory for an image of size
size, with bits bits/pixel and chan
number of channels
ž Used for creating a blank image
ž Use cvSize(width, height) to specify
the size
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
159. ž IC 7805 Voltage Regulator
ž L293D Motor Driver
ž MCT2E Opto-Coupler
ž Parallel Port Male-Connector
ž RF-RX Connector
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
160. ž It’s a three terminal linear 5 volt
regulator used to supply the board and
other peripherals
ž Prescribed input voltage to this
component is about 7-9 Volts
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
161. ž Voltage fluctuations can be controlled
by using low pass filter capacitors
across output and input
ž Higher input voltage can be applied if
heatsink is provided
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
162. ž Used to control Dc and Stepper Motors
ž Uses a H-Bridge which is an electronic
switching circuit that can reverse direction of
current
ž It’s a Dual-H bridge
ž Basically used to convert a low voltage input
into a high voltage output to drive the motor
or any other component
ž Eg: Microcontrollerà Motor Driverà
Motor
(5 Volts) (12
Volts)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
163. ž Different Motor Driver ICs
› L293D
– 600mA Current Rating
– Dual H-bridge (Dc and Stepper Motors)
› L298N
– 1 Amp Current Rating
– Dual H-bridge (Dc and Stepper Motors)
› L297-L298 (Coupled)
– For stepper motor overdriving
– Dual H-bridge (Dc and Stepper Motors)
– 2 Ics in parallel
› ULN2003/ULN2803
– 500mA Current Rating
– For unipolar stepper motors
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
169. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
ž There are many situations where
signals and data need to be transferred
from one subsystem to another within
a piece of electronics
ž Relays are too bulky as they are
electromechanical in nature and at the
same time give lesser efficiency
ž In these cases an electronic
component called Optocoupler is used
170. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
ž They are generally used when the 2
subsystems are at largely different
voltages
ž These use a beam of light to transmit
the signals or data across an electrical
barrier, and achieve excellent isolation
171. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
ž In our circuit, Opto-isolator (MCT2E) is
used to ensure electrical isolation
between motors and the PC parallel port
during wired connection
ž The Viz-Board has four such chips to
isolate the four data lines (pin 2, pin 3,
pin 4, pin 5) coming out of the parallel
port
173. ž Along with the Viz-Board 2 extensions
have been provided i.e
› The Rf Transmitter Module
› The Rf Reciever Module
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Transmitt
er
Receive
r
174. ž Radio frequency modules are used for
data transmission wirelessly at a certain
frequency
ž It sends and receives radio waves of a
particular frequency and a decoder and
encoder IC is provided to encode and
decode this information
ž Wireless transmission takes place at a
particular frequency Eg. 315Mhz
ž Theses modules might be single or dual
frequency
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
175. ž Antenna is recommended on both of
them - just connect any piece of 23 cm
long to the Antenna pin
ž The kit has a dual frequency RF
module with frequencies 315/434 Mhz
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
182. ž The encoder IC encodes the parallel
port data and sends it to the RF
transmitter module for wireless
transmission
ž They are capable of encoding
information which consists of N
address bits and (12-N) data bits
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
183. ž The HT12E Encoder IC has 8 address
bits and 4 data bits
ž A DIP-Switch can be used to set or
unset the address bits A0-A7
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
186. ž The decoder IC decodes the RF
transmitter data and sends it to the
parallel port for wireless transmission
ž They are capable of encoding
information which consists of N
address bits and (12-N) data bits
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
187. ž The HT12D Decoder IC has 8 address
bits and 4 data bits
ž A DIP-Switch can be used to set or
unset the address bits A0-A7
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
192. ž Serial Port
ž Parallel Port
ž USB
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
193. ž Data is transferred serially i.e packets
are sent one after the other through a
single port
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
195. ž Data is transferred in parallel through
different data pins at the same time
ž Communication is pretty fast
ž Found in old printer ports
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
198. ž Parallel port is faster than serial
ž A mass of data can be transmitted at
the same time through parallel ports
ž Though parallel and serial ports are not
found these days in laptops
ž Desktops and old laptops have these
ports
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
199. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Direct Output from parallel port
Output from motor driver
206. ž All this sampling and quantization puts
in extra noise on the image!
ž Noise can be reduced by
› Using hardware
› Using software: filters
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
208. ž Why do we need to enhance images?
ž Why filter images?
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
209. ž Large amounts of external
disturbances in real images
ž Due to different factors like changing
lighting and other real-time effects
ž To improve quality of a captured image
to make it easier to process the image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
210. ž First step in most IP applications
ž Used to remove noise in the input
image
ž To remove motion blur from an image
ž Enhancing the edges of an image to
make it appear sharper
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
211. ž Generally used types Of Filtering
› Averaging Filter
› Mean Filter
› Median Filter
› Gaussian Smoothing
› Histogram Equalization
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
212. ž The Averaging filter is used to sharpen
the images by taking average over a
number of images
ž It eliminates noise by assuming that
different snaps of the same image
have different noise patterns
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
213. ž Noise is gaussian in nature i.e follows a
gaussian curve
ž Hence, summing up noises infinite times
approaches zero
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
216. ž This is extremely useful for satellites
that take intergalactic photographs
ž The images are extremely faint, and
there is more noise than the image
itself
ž Millions of pictures are taken, and
averaged to get a clear picture
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
217. ž The Mean is used to soften an image
by averaging surrounding pixel values
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Center pixel =
(22+77+48+150+77+158+0+77+219)/9
218. ž The center pixel would be changed
from 77 to 92 as that is the mean
value of all surrounding pixels
ž This filter is often used to smooth
images prior to processing
ž It can be used to reduce pixel flicker
due to overhead fluorescent lights
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
219. ž This replaces each pixel value by the
median of its neighbors, i.e. the value
such that 50% of the values in the
neighborhood are above, and 50% are
below
ž This can be difficult and costly to
implement due to the need for sorting
of the values
ž However, this method is generally very
good at preserving edges
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
221. ž Its performance is particularly good for
removing short noise
ž The median is calculated by first sorting all
the pixel values from the surrounding
neighborhood into numerical order and then
replacing the pixel being considered with the
middle pixel value
ž If the neighborhood under consideration
contains an even number of pixels, the
average of the two middle pixel values is
used
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
222. ž Used to `blur' images and remove
detail and noise
ž The effect of Gaussian smoothing is to
blur an image
ž The Gaussian outputs a `weighted
average' of each pixel's neighborhood,
with the average weighted more
towards the value of the central pixels
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
223. ž A Gaussian provides gentler smoothing
and preserves edges better than a
similarly sized mean filter
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Before
Blurring
After
Blurring
224. ž It is very useful in contrast enhancement
ž Especially to eliminate noise due to
changing lighting conditions etc
ž Transforms the values in an intensity
image so that the histogram of the output
image approximately matches a specified
histogram
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
227. ž ‘Imfilter’ function is used for creating
different kinds of filters In MATLAB
ž B = imfilter(A,H,’option’) filters the
multidimensional array A with the
multidimensional filter H
ž The array A can be a nonsparse numeric
array of any class and dimension
ž The result B has the same size and class as A
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
228. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
ž Options in imfilter
ž Convolution is same as correlation except
that the h matrix is inverted before applying
the filter
229. ž h = ones(5,5) / 25;
ž imsmooth = imfilter(im,h);
ž Here a mean filter is implemented using
the appropriate ‘h’ matrix
ž imshow(im), title('Original Image');
ž figure, imshow(imsmooth),
title('Filtered Image')
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
231. ž FSPECIAL is used to create predefined
filters
ž h = FSPECIAL(TYPE);
ž FSPECIAL returns h as a computational
molecule, which is the appropriate
form to use with imfilter
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
232. ž FSPECIAL is used to create predefined
filters
ž h = FSPECIAL(TYPE);
ž FSPECIAL returns h as a computational
molecule, which is the appropriate
form to use with imfilter
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
238. ž Things aren’t as simple as they were in
Matlab
ž C/C++ needs a bit of syntax and
formalities
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
239. ž We’ll try doing the following right now
› Gaussian filter
› Median filter
› Bilateral filter
› Simple blur
› Averaging filter
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
240. ž Start Microsoft Visual Studio 2008
ž I assume you have OpenCV installed
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
253. ž Blur: The plain simple Photoshop blur
ž Gaussian: The best result (preserved
edges and smoothed out noise)
ž Median: Nothing special
ž Bilateral: Got rid of some noise, but
preserved edges to a greater extend
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
259. ž There are no built-in functions for this
ž So, we’ll code it ourselves
ž And this will be a good exercise for
getting better at OpenCV
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
266. #include <cv.h>
#include <highgui.h>
int main()
{
IplImage* imgRed[25];
IplImage* imgGreen[25];
IplImage* imgBlue[25];
Holds the R, G and B
channels separately
for each of the 25
images
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
267. IplImage* imgBlue[25];
for(int i=0;i<25;i++)
{
IplImage* img;
char filename[150];
sprintf(filename, "%d.jpg", (i+1));
img = cvLoadImage(filename);
• Generate the strings “1.jpg”,
“2.jpg”, etc and store them into
filename
• Load the image filename
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
269. imgBlue[i] = cvCreateImage(cvGetSize(img), 8,
1);
cvSplit(img, imgBlue[i], imgGreen[i],
imgRed[i], NULL);
cvReleaseImage(&img);
}
• Split img into constituent channels
• Note the order: B G R
• Release img
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
270. ž We created 75 grayscale images: 25
for red, 25 for green and 25 for blues
ž Loaded 25 color images in the loop
ž Split each image, and stored in an
appropriate grayscale image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
271. CvSize imgSize = cvGetSize(imgRed[0]);
IplImage* imgResultRed = cvCreateImage(imgSize, 8,
1);
IplImage* imgResultGreen = cvCreateImage(imgSize,
8, 1);
IplImage* imgResultBlue = cvCreateImage(imgSize,
8, 1);
IplImage* imgResult = cvCreateImage(imgSize, 8,
3);
• This will hold the final, filtered image
• It will be a combination of the
grayscale channels imgResultRed,
imgResultGreen and imgResultBlue
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
272. IplImage* imgResult = cvCreateImage(imgSize, 8,
3);
for(int y=0;y<imgSize.height;y++)
{
for(int x=0;x<imgSize.width;x++)
{
• Two loops to take us through the
entire image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
273. for(int x=0;x<imgSize.width;x++)
{
int theSumRed=0;
int theSumGreen=0;
int theSumBlue=0;
for(int i=0;i<25;i++)
{
• To figure out the average, we need to
find the numerator (the sum) over all
25 images
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
275. theSumRed = (float)theSumRed/25.0f;
theSumGreen = (float)theSumGreen/25.0f;
theSumBlue = (float)theSumBlue/25.0f;
cvSetReal2D(imgResultRed, y, x,
theSumRed);
cvSetReal2D(imgResultGreen, y, x,
theSumGreen);
cvSetReal2D(imgResultBlue, y, x,
theSumBlue);
}
}
• Once we have the sum, we divide by
25 and set the appropriate pixels
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
276. cvMerge(imgResultBlue, imgResultGreen,
imgResultRed, NULL, imgResult);
cvNamedWindow("averaged");
cvShowImage("averaged", imgResult);
cvWaitKey(0);
return 0;
}
• Merge the three channels, and
display the image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
277. ž cvLoadImage always loads as BGR
ž cvSplit to get the individual channels
ž cvMerge to combine individual
channels into a color image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
278. ž IplImage to store any image in
OpenCV
ž cvCreateImage to allocate memory
ž cvReleaseImage to erase an image
from the RAM
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
279. ž cvWaitKey to get a keypress within
certain milliseconds
ž cvNamedWindow to create a window
ž cvShowImage to show an image in a
window
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
280. ž cvGetReal2D to get value at a pixel in
grayscale images
ž cvSetReal2D to set the value at a pixel
ž CvSize to store an image’s size
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
281. ž you can always refer to the OpenCV
documentation
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
284. ž The process of extracting image
components that are useful in
representation of image for some
particular purpose
ž Basic morphological operations are:
› Dilation
› Erosion
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
285. ž The operation that grows or thickens
objects in a binary image
ž The specific manner of thickening is
controlled by a shape referred to as
“structuring element”
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
289. ž Erosion shrink or thins objects in a
binary image
ž The manner of shrinkage is controlled
by the structuring element
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
293. ž In practical image processing dilation
and erosion are performed in various
combinations
ž An image can undergo a series for
diltions and erosion using the same or
different structuring element
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
294. ž In practical image processing dilation
and erosion are performed in various
combinations
ž An image can undergo a series for
diltions and erosion using the same or
different structuring element
ž Two Common Kinds:
› Morphological Opening
› Morphological Closing
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
295. ž It is basically one erosion followed by
one dilation by the same structuring
element
ž They are used to smooth object
contours, break thin connections and
remove thin protrusions
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
298. ž It is basically one dilation followed by one
erosion by the same structuring element
ž They are used to smooth object contours
like opening
ž But unlike opening they generally join
narrow breaks, fill long thin gulfs and fills
holes smaller than the structuring
element
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
305. ž Dilation in matlab is done using the
following command:
ž >>bw2=imdilate(bw,st)
ž Bw = Original image
ž St = Structuring element
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
306. ž Erosion in matlab is done using the
following command:
ž >>bw2=imerode(bw,st)
ž Bw = Original image
ž St = Structuring element
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
307. ž Opening in matlab is done using the
following command:
ž >>bw2=imopen(bw,st)
ž Bw = Original image
ž St = Structuring element
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
308. ž Closing in matlab is done using the
following command:
ž >>bw2=imclose(bw,st)
ž Bw = Original image
ž St = Structuring element
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
311. ž By default, OpenCV uses the zero
structuring element (all are zeros)
ž You can explicitly specify your
structuring element as well
ž Check the OpenCV Documentation for
more information
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
313. ž Computers can manipulate images
very efficiently
ž But, comprehending an image with
millions of colors is tough
ž Solution: Figure out interesting
regions, and process them
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
315. ž Each pixel is checked for its value
ž If it lies within a range, it is marked as
“interesting” (or made white)
ž Otherwise, it’s made black
ž Figuring out the range depends on
lighting, color, texture, etc
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
318. ž MATLAB provides a facility to execute
multiple command statements with a
single command. This is done by
writing a .m file
ž Goto File > New > M-file
ž For example, the graythresh function
can be manually written as a m-file as:
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
320. ž Observe that, comments (in green) can
be written after the symbol ‘%’. A
commented statement is not considered
for execution
ž M-files become a very handy utility for
writing lengthy programs and can be
saved and edited, as and when required
ž We shall now see, how to define your own
functions in MATLAB.
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
321. ž Functions help in writing organized
code with minimum repetition of logic
ž Instead of rewriting the instruction set
every time, you can define a function
ž Syntax:
ž Create an m-file and the top most
statement of the file should be the
function header
ž function [return values] = function-
name(arguments)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
322. ž The inbuilt graythresh function in
matlab is used for thresholding of
grayscale images
ž It uses the Otsu’s Method Of
thresholding
ž A sample thresholding opreation has been
shown in the next slide
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
323. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
Image thresholded for
the colour blue
324. (c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa |
Ajusal Sugathan & Utkarsh Sinha
The Real thing J
325. ž Thresholding of a grayscale image can
be done in MATLAB using the following
commands:
ž >> level=graythresh(imGRAY);
ž >> imBW = im2bw(imGRAY,level);
ž >> imview(imBW);
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
326. ž The graythresh command basically gives
an idea as to what exactly the threshold
value should be
ž Graythresh returns a value that lies in the
range 0-1
ž This gives the level of threshold which is
obtained by a complex method called the
Otsu’s Method of Thresholding
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
327. ž This level can be converted into pixel
value by multiplying by 255
ž Lets say, level=.4
ž Then threshold value for the grayscale
image is:
ž 0.4 x 255 =102
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
328. ž What this indicates is that for the given
image the values below 102 have to
be converted to 0 and values from
103-255 to the value 1
ž Conversion from grayscale to binary
image is done using the function:
ž >>imBW = im2bw(imGRAY,level);
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
329. ž Here level is the threshold level
obtained from graythresh function
ž This function converts pixel intensities
between 0 to level to zero intensity
(black) and between level+1 to 255 to
maximum (white)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
331. ž In order to threshold an RGB colour
image using the graythresh function, the
following have to be done:
› Conversion of the RGB image into its 3
grayscale components
› Subtracting each of these components from
the other 2 to get the pure colour intensities
› Finding level for each of the grayscale using
graythresh
› Thresholding the image using imbw and the
level
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
336. ž Using a manually designed thresh_tool
function to adjust the levels as
required
ž To get a feel of how levels vary
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
338. ž Splitting of HSV image into
components
ž Using the Hue channel and
thresholding it for different values
ž Since the hue value of a single colour
is constant it is relatively simple to
threshold and gives better accuracy
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
339. ž Splitting of HSV image into
components
ž Using the Hue channel and
thresholding it for different values
ž Since the hue value of a single colour
is constant it is relatively simple to
threshold and gives better accuracy
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
340. function [temp] = ht(im,level1,level2)
s=size(im);
temp=im;
for i=1:s(1,1)
for j=1:s(1,2)
if (temp(i,j)<level2 & temp(i,j)>level1)
temp(i,j)=1;
else
temp(i,j)=0;
end
end
end
imview(temp);
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
341. ž To this function we give the input
arguments as the upper and lower
bounds of the threshold levels
ž These levels can be obtained by
having a look at the range of hue
values for the particular colour
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
342. Now that you know the
basics
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa |
Ajusal Sugathan & Utkarsh Sinha
347. ž After thresholding, we get a binary
image
ž We want useable information like
centers, outlines, etc
ž There geometrical properties can be
found using many methods. We’ll talk
about moments and contours only.
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
349. ž Consider xorder=0 and yorder=0 for a
binary image
ž So you’re just summing up pixel values
ž This means, you’re calculating the area
of the white pixels
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
350. ž Now consider xorder=1 and yorder=0
for a binary image
ž You sum only those x which are white
ž So you’re calculating the numerator of
an average
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
351. ž The number of points where the pixel
is white is the area of the image
ž So, dividing this particular moment
(xorder=1, yorder=0) by the earlier
example (xorder=0, yorder=0) gives
the average x
ž This is the x coordinate of the centroid
of the blob
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
352. ž Similarly, for xorder=0 and yorder=1,
you’ll get the y coordinate
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
353. ž The order of a moment =
xorder+yorder
ž So, the area is a zero order moment
ž The centroid coordinate = a first order
moment / the zero order moment
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
354. ž There are entire books written on this
topic
ž You can find complex geometrical
properties, like the eccentricity of an
ellipse, radius of curvature of objects,
etc
ž Also check for Hu invariants if you’re
interested
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
356. ž These are pixels of an image that are
conencted to each other forming
separate blobs in an image
ž They can be seperated out and labelled
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
357. ž >>L = bwlabel(BW,n)
ž Returns a matrix L, of the same size as
BW, containing labels for the connected
objects in BW
ž n can have a value of either 4 or 8, where
4 specifies 4-connected objects and 8
specifies 8-connected objects; if the
argument is omitted, it defaults to 8
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
358. ž >>L = bwlabel(BW,n)
ž Returns a matrix L, of the same size as
BW, containing labels for the connected
objects in BW
ž n can have a value of either 4 or 8, where
4 specifies 4-connected objects and 8
specifies 8-connected objects; if the
argument is omitted, it defaults to 8
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
359. ž STATS = regionprops(L,properties)
ž Measures a set of properties for each
labeled region in the label matrix L
ž The set of elements of L equal to 1
corresponds to region 1; the set of
elements of L equal to 2 corresponds
to region 2; and so on
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
360. ž 'Area'– The actual number of pixels in the
region
ž 'Centroid'-- The center of mass of the region.
Note that the first element of Centroid is the
horizontal coordinate (or x-coordinate) of the
center of mass, and the second element is
the vertical coordinate (or y-coordinate)
ž 'Orientation' -- Scalar; the angle (in degrees)
between the x-axis and the major axis of the
ellipse that has the same second-moments
as the region. This property is supported
only for 2-D input label matrices
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
362. ž Label into an RGB image for better
vizualization
ž RGB = label2rgb(L)
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
363. ž Binary area open remove small objects
ž BW2 = bwareaopen(BW,P)
ž Removes from a binary image all
connected components (objects) that
have fewer than P pixels, producing
another binary image, BW2.
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
368. ž For robotics purposes, moments are
fine till have one single object
ž If we have multiple objects in the same
binary image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
370. ž You can think of contours as an
approximation of a binary image
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
371. ž You get polygonal approximation of
each connected area
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
372. ž The output you get for the previous
binary image is:
› Four “chains” of points
› Each chain can have any number of points
› In our case, each chain has four points
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
374. ž Contour plot of an image im can be made
in MATLAB using the command:
ž im = imread(‘img.jpg');
ž imcontour(im,level)
ž Level=number of equally spaced contour
levels
ž if level is not given it will choose
automatically
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
375. ž OpenCV linked lists to store the
“chains”
ž We’ll see some code to find out the
squares in the thresholded image you
saw
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
376. CvSeq* contours;
CvSeq* result;
CvMemStorage *storage = cvCreateMemStorage(0);
• The chains are stored in contours
• result is a temporary variable
• storage is for temporary memory allocation
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha
377. cvFindContours(img, storage, &contours, sizeof(CvContour),
CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));
• img is a grayscale thresholded image
• storage is for temporary storage
• All chains found would be stored in the contours sequence
• The rest of the parameters are usually kept at these values
• Check the OpenCV documentation for details information about the
last four variables
(c) 2009-2010 Electronics & Robotics Club, BITS-Pilani, Goa | Ajusal Sugathan & Utkarsh Sinha