Drivers Tutorials
Contents
Core concept of ROS drivers
- This tutorial explains how drivers work and need to be embedded in ROS.
2. Write a ROS Wrapper (Python)
- This tutorial shows how to write a wrapper in Python for a driver in ROS.
- This tutorial shows how to write a wrapper in C++ for a driver in ROS.
4. Package and Test Your Driver
- Finally, this tutorial shows how to include the driver or wrapper in a ROS package.
Writing sensor drivers
Ultrasonic sensors
1. Distance measurement with ultrasonic sensor HC-SR04 (Python)
- This tutorial guides you through wiring a HC-SR04 ultrasonic sensor to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
2. Speed measurement with ultrasonic sensor HC-SR04 (Python)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the HC-SR04 sensor over the time.
3. Writing your HC-SR04 driver (Python)
- This tutorial will guide you through combining distance measurement and relative velocity measurement of the HC-SR04 sensor into a driver, which will be included in a ROS wrapper.
4. Distance measurement with ultrasonic sensor HC-SR04 (C++)
- This tutorial guides you through wiring a HC-SR04 ultrasonic sensor to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
5. Speed measurement with ultrasonic sensor HC-SR04 (C++)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the HC-SR04 sensor over the time.
6. Writing your HC-SR04 driver (C++)
- This tutorial will guide you through combining distance measurement and relative velocity measurement of the HC-SR04 sensor into a driver, which will be included in a ROS wrapper.
7. Distance measurement with ultrasonic sensor Parallax PING))) (Python)
- This tutorial guides you through wiring a Parallax PING))) ultrasonic sensor to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
8. Speed measurement with ultrasonic sensor Parallax PING))) (Python)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the Parallax PING))) sensor over the time.
9. Writing your Parallax PING))) driver (Python)
- This tutorial will guide you through combining distance measurement and relative velocity measurement of the Parallax PING))) sensor into a driver, which will be included in a ROS wrapper.
10. Distance measurement with ultrasonic sensor Parallax PING))) (C++)
- This tutorial guides you through wiring a Parallax PING))) ultrasonic sensor to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
11. Speed measurement with ultrasonic sensor Parallax PING))) (C++)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the Parallax PING))) sensor over the time.
12. Writing your Parallax PING))) driver (C++)
- This tutorial will guide you through combining distance measurement and relative velocity measurement of the Parallax PING))) sensor into a driver, which will be included in a ROS wrapper.
- This tutorial guides you through wiring a HC-SR04 ultrasonic sensor to an Arduino NANO and connect this via a serial connection to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
14. Speed measurement with ultrasonic sensor HC-SR04 using the Arduino with a serial connection (Python)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the HC-SR04 sensor over the time. The HC-SR04 is wired to an Arduino. The Arduino is serial connected to a Raspberry Pi.
15. Writing your HC-SR04 serial driver (Python)
- This tutorial will guide you through writing a serial driver using the HC-SR04 on the Arduino Nano, which will be included in a ROS wrapper.
- This tutorial guides you through wiring a HC-SR04 ultrasonic sensor to an Arduino Nano and connect this via an UART connection to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
17. Speed measurement with ultrasonic sensor HC-SR04 using the Arduino with an UART connection (Python)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the HC-SR04 sensor over the time. The HC-SR04 is wired to an Arduino. The Arduino is serial connected to a Raspberry Pi.
18. Writing your HC-SR04 UART driver (Python)
- This tutorial will guide you through writing a UART driver using the HC-SR04 on the Arduino Nano, which will be included in a ROS wrapper.
- This tutorial guides you through wiring a HC-SR04 ultrasonic sensor to an Arduino Nano and connect this via an I2C connection to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
20. Speed measurement with ultrasonic sensor HC-SR04 using the Arduino with an I2C connection (Python)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the HC-SR04 sensor over the time. The HC-SR04 is wired to an Arduino. The Arduino is connected to a Raspberry Pi via I2C.
21. Writing your HC-SR04 I2C driver (Python)
- This tutorial will guide you through writing a I2C driver using the HC-SR04 on the Arduino Nano, which will be included in a ROS wrapper.
Time-of-Flight (ToF) sensors
1. Distance measurement with ToF sensor VL53L1X (Python)
- This tutorial guides you through wiring a VL53L1X Time-of Flight sensor to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
2. Speed measurement with ToF sensor VL53L1X (Python)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the VL53L1X Time-of Flight sensor over the time.
3. Writing your VL53L1X driver (Python)
- This tutorial will guide you through combining distance measurement and relative velocity measurement of the VL53L1X Time-of Flight sensor into a driver, which will be included in a ROS wrapper.
4. Using multiple VL53L1X sensors at the same time (Python)
- This tutorial will show you how you can use multiple VL53L1X sensors at the same time. This makes sense because the I2C bus is used for communication. You will learn how to change the I2C address so that several sensors do not use the same address.
Infrared
1. Distance measurement with IR sensor GP2Y0A02YKOF (Python)
- This tutorial guides you through wiring a GP2Y0A02YKOF infrared sensor to a Raspberry Pi. A distance to an object can then be measured by a run-time measurement.
2. Speed measurement with IR sensor GP2Y0A02YKOF (Python)
- This tutorial guides you through calculating a relative velocity by using the distance measurement of the GP2Y0A02YKOF infrared sensor over the time.
3. Writing your GP2Y0A02YKOF driver (Python)
- This tutorial will guide you through combining distance measurement and relative velocity measurement of the GP2Y0A02YKOF infrared sensor into a driver, which will be included in a ROS wrapper.
Radar
1. Speed measurement with Radar sensor CDM324 (Python)
- This tutorial guides you through wiring a CDM324 radar sensor to a Raspberry Pi. A speed/velocity of an object can be calculated with it.
2. Writing your CDM324 driver (Python)
- This tutorial will guide you through including the speed measurement of the CDM324 radar sensor into a driver, which will be included in a ROS Wrapper.
3. Speed measurement with Radar sensor HB100 (Python)
- This tutorial guides you through wiring a HB100 radar sensor to a Raspberry Pi. A speed/velocity of an object can be calculated with it.
4. Writing your HB100 driver (Python)
- This tutorial will guide you through including the speed measurement of the HB100 radar sensor into a driver, which will be included in a ROS Wrapper.
5. Speed measurement with Radar sensor IPM-165 (Python)
- This tutorial guides you through wiring a IPM-165 radar sensor to a Raspberry Pi. A speed/velocity of an object can be calculated with it.
6. Writing your IPM-165 driver (Python)
- This tutorial will guide you through including the speed measurement of the IPM-165 radar sensor into a driver, which will be included in a ROS Wrapper.
Writing actuator/motor drivers
DC Motors
1. Control DC motor with L298N H-Bridge (Python)
- This tutorial guides you through wiring a DC motor to a Raspberry Pi using a L298N H-Bridge. A speed/velocity of an object can be calculated with it. You will also learn how the DC motor is controlled and works.
2. Write driver for DC motor with L298N H-Bridge (Python)
- This tutorial will guide you through writing the driver for the DC motor using the L298N H-Bridge. This driver will be embedded in a ROS Wrapper.
3. Control DC motor with L298N H-Bridge and PCA9685 (Python)
- This tutorial guides you through wiring a DC motor to a Raspberry Pi using a L298N H-Bridge and a PCA9685 servo controller. A speed/velocity of an object can be calculated with it. You will also learn how the DC motor is controlled and works.
4. Write driver for DC motor with L298N H-Bridge and PCA9685 (Python)
- This tutorial will guide you through writing the driver for the DC motor using the L298N H-Bridge and a PCA9685 servo controller. This driver will be embedded in a ROS Wrapper.
5. Create a 4WD with L298N H-Bridge and PCA9685 (Python)
- This tutorial guides you through wiring four DC motors to a Raspberry Pi using a L298N H-Bridge and a PCA9685 servo controller. The goal, which we want to achieve with this is a four-wheel drive (4WD).
6. Get feedback from DC motor (Python)
- This tutorial guides you through getting a feedback from DC motors using wheel encoders.
Servo Motors
1. Controlling a servo motor with Raspberry Pi (Python)
- This tutorial guides you through wiring and controlling a servo motor by using only a Raspberry Pi directly.
2. Controlling a servo motor with PCA9685 (Python)
- This tutorial guides you through wiring and controlling a servo motor by using a PCA9685 servo controller and a Raspberry Pi.
3. Write driver for servo motor with PCA9685 (Python)
- This tutorial will guide you through writing the driver for the servo motor using the PCA9685 servo controller. This driver will be embedded in a ROS Wrapper.
4. Controlling a pan-tilt kit using two servo motors
- This tutorial shows how to wire and use two servo motors to operate a pan-tilt kit using the PCA9685 servo controller and a Raspberry Pi.
5. Writing a servo calibration tool (Python)
- This tutorial shows how to write a program to calibrate servo motors. Minimum and maximum values can be set, as well as a neutral position.
6. Embed the servo calibration tool to ROS (Python)
- This tutorials show how to embed the servo calibration tool to ROS, so that a minimum, a maximum and a neutral position for a servo motor can be defined by using the client-server pattern.
7. Get feedback from servo motor (Python)
- This tutorial guides you through getting a feedback from servo motors.