1 of 47

CS637 :

Embedded and Cyber Physical Systems

Mentor: Prof. Indranil Saha

Members: Pranjal Gautam 210742 Harshit Patel 210424 � Aryan Kumar 210201 Priyanshu Gangwar 210782

Shri Krishna Sahu 211011 Kartik Sharma 210495 �

2 of 47

3 of 47

Introduction

Autonomous Mobile Robots (AMRs) have seen significant advances in recent years, and they are now used in a wide range of applications across various industries. These robots can navigate environments without human intervention and are equipped with sensors, cameras, and AI algorithms to make decisions in real-time.�

Our build consists of a 4-wheel driver robot for autonomous waypoint navigation using ROS and sensor fusion which can be used in various industries from enhancing productivity and reducing lowering labor cost in warehouses and hospitals to logistics delivery and transportation of raw materials between production lines and stations in manufacturing industries.

4 of 47

Mechanical

01

5 of 47

Swedish wheel is used due to its 360 degree movement. They have roller at 90 degree to allow movement to all direction without swiveling.

Wheel

Wheels placed at the corner with two adjacent wheel at right angle. This maximize stability and provides space to place the power distribution board�

Wheel placement

It is made up of SS rod and aluminium plates having dimension 49x49x70. Dedicated laptop slot is made to having computing over it.

Chassis Design

6 of 47

7 of 47

Kinematic modelling

8 of 47

9 of 47

10 of 47

Electrical

02

11 of 47

Flowchart

12 of 47

PCB

13 of 47

14 of 47

Sensors

1-Rplidar A1M8- It used for mapping the surrounding. The generated point cloud is used for localizing the robot in indoor with other sensors��2-Sparkfun Gps- It is used to globally locate the robot in outdoor environment�

3-MPU9050 - It has accelerometer, magnetometer, gyroscpope to measure heading, orientation, and acceleration of robot in body frame��4-Zed camera- It is the stereo camera used for object detection using YOLOV10

5-OE775 encoder- It used to give number of pulse which used to measure rotation of motor shaft

15 of 47

Sensors

Lidar

GPS

IMU

Zed Camera

Encoder

16 of 47

Electrical Components

  • Teensy 4.1 - It is used our microcontroller to get sensor data and publish it on ros using rosserial for further processing. It has multiple interrupts pins to get encoder data effectively. It also allows 4 interval timer for scheduling multiple tasks

  • INA226- It is current sensor which is used to measure inflow current from battery.

  • Cytron mdd10a- It is used to control direction and speed of motor

  • Relay, kill switch- It is used as switch to power on/off the supply of the robot

17 of 47

Electrical Components

1.

2.

3.

4.

18 of 47

Code Snippets

19 of 47

20 of 47

Softwares

and

Libraries

03

21 of 47

22 of 47

23 of 47

Tf2

Tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

24 of 47

Robot State Publisher

This package allows you to publish the state of a robot to tf2. Once the state gets published, it is available to all components in the system that also use tf2. The package takes the joint angles of the robot as input and publishes the 3D poses of the robot links, using a kinematic tree model of the robot.

25 of 47

Gazebo Simulation (Video)

26 of 47

Simulation RQT Graph

27 of 47

Robot Localisation

The robot localization package is essential for helping mobile robots understand their position and orientation within a given environment. Localization is crucial for many robotics applications, especially those involving navigation and path planning. This package provides tools and algorithms for estimating a robot’s position over time using sensor data.

28 of 47

Cartographer 2D Slam

Cartographer is a high-performance SLAM (Simultaneous Localization and Mapping) algorithm developed by Google, widely used in ROS for creating 2D and 3D maps in real-time. Cartographer uses sensor data from LIDAR (Light Detection and Ranging) or other range sensors to generate detailed maps while also providing localization within the environment.

29 of 47

Cartographer (video)

30 of 47

Movebase

MoveBase is a core component in the ROS navigation stack that allows a robot to autonomously navigate to a goal position while avoiding obstacles. It’s widely used for mobile robots operating in both static and dynamic environments, such as warehouses, homes, and offices. MoveBase provides a unified interface for setting a navigation goal, which it then uses to generate a safe path while dynamically adjusting for obstacles.

31 of 47

32 of 47

Object Detection

We used the YOLO (You Only Look Once) v10 model for object detection that detects objects in images by dividing the image into a grid and predicting bounding boxes and classes for each grid cell. Unlike older methods, it processes the entire image in a single pass, making it suitable for real-time applications like autonomous driving, surveillance, and robotics.

Original Input Image

YOLO Algorithm Result

33 of 47

YOLO Object Detection

YOLO determines the attributes of these bounding boxes using a single regression module in the following format, where Y is the final vector representation for each bounding box.

Y = [pc, bx, by, bh, bw, c1, c2] �where,�pc corresponds to the probability score of the grid containing an object,�bx, by are the x and y coordinates of the center of the bounding box with respect to the enveloping grid cell

bh, bw correspond to the height and the width of the bounding box with respect to the enveloping grid cell

c1 and c2 correspond to the classes. We can have as many classes as per our case requirements

34 of 47

  • The user defines its IOU selection threshold, which can be, for instance, 0.5
  • Then, YOLO computes the IOU of each grid cell, which is the Intersection area divided by the Union Area
  • Finally, it ignores the prediction of the grid cells having an IOU ≤ threshold and considers those with an IOU > threshold ��IOU = Intersection Area / Union Area

35 of 47

Why YOLOv10?

36 of 47

Object Detection (video)

37 of 47

Model Predictive Control

  • Model Predictive Control (MPC) is an advanced control strategy that optimizes the movement of a differential mobile robot by predicting its future behavior over a finite horizon.

  • In MPC, a model of the robot’s dynamics is used to forecast its position, velocity, and orientation at each timestep. By repeatedly solving an optimization problem, MPC computes control inputs (such as wheel velocities) that drive the robot towards its target while respecting constraints, such as avoiding obstacles or limiting acceleration.

  • This approach enables precise, real-time path tracking, making MPC particularly effective for complex navigation tasks and environments requiring high adaptability and stability.

38 of 47

MATLAB Simulation (video)

39 of 47

40 of 47

41 of 47

42 of 47

Robot’s Trajectory

Path traced by the bot

Milestones given as input

43 of 47

Robot’s state over Path

44 of 47

DEMONSTRATION

45 of 47

46 of 47

Video

47 of 47

THANK YOU