๐ Course Project: ECG711 - Embedded Systems for Automation
An autonomous mobile robot platform built with ROS (Robot Operating System), featuring differential drive navigation, SLAM mapping, PID control, and real-world hardware implementation on Jetson Nano.
Tarek Z YouTube Playlist: ECG 711 Course Videos
This repository demonstrates practical applications of embedded systems concepts in robotics, including:
- ROS Architecture - Multi-node communication and topic-based messaging
- Differential Drive Kinematics - Mathematical modeling and simulation
- PID Control Systems - Autonomous goal-seeking navigation
- 3D Robot Modeling - URDF/XACRO for Gazebo and RViz
- Sensor Fusion - IMU and LiDAR integration
- SLAM Implementation - Real-time mapping with gmapping/Hector SLAM
- Embedded Hardware - Jetson Nano + STM32 motor control
graph TD
A[Driver Node] -->|cmd_vel| B[Robot Base Controller]
C[Goal Position] -->|target_pose| D[PID Controller Node]
D -->|cmd_vel| B
B -->|wheel_velocities| E[Differential Drive Kinematics]
E -->|pose| F[Localization]
G[RPLidar A3] -->|scan| H[SLAM Node<br/>gmapping/hector]
I[IMU Sensor] -->|imu_data| F
H -->|map| J[Navigation Stack]
F -->|odom| H
J -->|visualization| K[RViz]
H -->|map| K
style A fill:#4CAF50
style D fill:#2196F3
style H fill:#FF9800
style B fill:#9C27B0
style K fill:#F44336
| Category | Technology |
|---|---|
| Framework | ROS Melodic |
| Programming | Python 3 |
| Simulation | Gazebo, RViz |
| Operating System | Ubuntu 18.04 |
| Computing Platform | NVIDIA Jetson Nano |
| Microcontroller | STM32 (Motor Control) |
| Sensors | RPLidar A3, IMU |
| Algorithms | Gmapping SLAM, Hector SLAM, PID Control |
Built the foundation for robot control with a driver-simulator architecture.
Implementation:
- Driver Node: Publishes differential wheel velocity commands via
cmd_veltopic - Simulator Node: Real-time pose calculation using differential drive kinematics
Skills: ROS topics, publishers/subscribers, differential kinematics, pose estimation
Developed intelligent autonomous navigation using closed-loop PID control.
Implementation:
- Driver Node: Publishes target destinations as
Pose2Dmessages - Controller Node: PID-based trajectory planning with error minimization
Skills: PID tuning, feedback control systems, autonomous navigation algorithms
Created accurate 3D robot models for simulation and visualization.
Implementation:
- URDF/XACRO robot description with sensor integration
- RPLidar A3 sensor model and mounting configuration
- Gazebo physics simulation and RViz real-time visualization
Skills: Robot modeling (URDF/XACRO), sensor integration, simulation environments
Deployed the complete system on real hardware with full sensor integration.
Implementation:
- Hardware assembly: Jetson Nano + STM32 + motors + LiDAR + power system
- Ubuntu 18.04 and ROS Melodic installation on embedded platform
- Multi-stage calibration: IMU, linear velocity, angular velocity
- Real-world SLAM mapping using gmapping algorithm
Skills: Embedded Linux, hardware-software integration, sensor calibration, production robotics
- โ Multi-Node ROS Architecture - Distributed system design with topic-based communication
- โ Differential Drive Control - Mathematical modeling and real-time kinematics
- โ PID-based Navigation - Autonomous goal-seeking with tuned controllers
- โ SLAM Mapping - Real-time environment mapping using LiDAR
- โ Sensor Fusion - IMU and odometry integration for accurate localization
- โ Hardware Integration - Complete embedded system deployment on Jetson Nano
- โ Simulation & Visualization - Gazebo physics simulation and RViz 3D visualization
- โ Production-Ready Calibration - Systematic sensor and actuator tuning procedures
- Ubuntu 18.04 (or compatible)
- ROS Melodic
- Python 3
- Catkin build system
-
Clone this repository:
git clone https://github.com/tarekbzahid/ECG711-Embedded-Systems-for-Automation.git cd ECG711-Embedded-Systems-for-Automation -
Navigate to the specific assignment directory:
cd "Assignment 1" # or Assignment 2, 3, 4
-
Follow the instructions in each assignment's README for detailed setup and execution steps.
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bashECG711-Embedded-Systems-for-Automation/
โโโ Assignment 1/ # Differential drive simulation
โ โโโ catkin_ws/
โ โโโ images/
โ โโโ README.md
โโโ Assignment 2/ # PID controller navigation
โ โโโ catkin_ws/
โ โโโ images/
โ โโโ README.md
โโโ Assignment 3/ # URDF modeling and visualization
โ โโโ catkin_ws/
โ โโโ images/
โ โโโ README.md
โโโ Assignment 4/ # Physical robot setup
โ โโโ images/
โ โโโ README.md
โโโ README.md # This file
- Course Videos: YouTube Playlist
- ROS Documentation: http://wiki.ros.org/
- Yahboom ROS Controller: http://www.yahboom.net/study/ROSMASTER-X1
This project was developed as part of ECG711 (Embedded Systems for Automation) coursework and is intended for educational purposes.
- Course instructor and teaching assistants
- Yahboom for robot hardware and documentation
- ROS community for excellent documentation and packages




