huzaifaahmad-blog
huzaifaahmad-blog
Indoor Navigation
8 posts
Indoor navigation, indoor positioning or indoor localization is actually a system to map the inside structure of a building. In other words, it is an indoor global positioning system (GPS) that not only detect the objects inside but also let you know its location, position and even their orientation.
Don't wanna be here? Send us removal request.
huzaifaahmad-blog · 7 years ago
Text
Communication Protocols
MQTT Protocol:
The Communication protocols used for transfer of data between the master node and the smart band here is the MQTT protocol. MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks. The design principles are to minimize network bandwidth and device resource requirements whilst also attempting to ensure reliability and some degree of assurance of delivery. These principles also turn out to make the protocol ideal of the emerging “machine-to-machine” (M2M) or “Internet of Things” world of connected devices, and for mobile applications where bandwidth and battery power are at a premium. As of March 2013, MQTT is in the process of undergoing standardization at OASIS. The protocol specification has been openly published with a royalty-free license for many years, and companies such as Eurotech (formerly known as Arcom) have implemented the protocol in their products.
Tumblr media
Security:
You can pass a user name and password with an MQTT packet in V3.1 of the protocol. Encryption across the network can be handled with SSL, independently of the MQTT protocol itself (it is worth noting that SSL is not the lightest of protocols and does add significant network overhead). Additional security can be added by an application encrypting data that it sends and receives, but this is not something built-in to the protocol, in order to keep it simple and lightweight.
Advanced Encryption Standard (AES) protocol:
The Advanced Encryption Standard (AES) is a specification for the encryption of electronic data established by the U.S. National Institute of Standards and Technology (NIST) in 2001.
AES is a subset of the Rijndael cipher developed by two Belgian cryptographers, Vincent Rijmen and Joan Daemen, who submitted a proposal to NIST during the AES selection process. Rijndael is a family of ciphers with different key and block sizes.
For AES, NIST selected three members of the Rijndael family, each with a block size of 128 bits, but three different key lengths: 128, 192 and 256 bits.
AES has been adopted by the U.S. government and is now used worldwide. It supersedes the Data Encryption Standard (DES), which was published in 1977. The algorithm described by AES is a symmetric-key algorithm, meaning the same key is used for both encrypting and decrypting the data. This protocol is not used in the project because it is little slower than MQTT protocol and we need is the real time processing and very fast end to end transfer of data.
0 notes
huzaifaahmad-blog · 7 years ago
Text
Hardware (part 3)
Battery Management System TP4056:
The TP4056 is a complete constant-current/constant-voltage linear charger for single cell lithium-ion batteries. Its SOP package and low external component count make the TP4056 ideally suited for portable applications. In a Navigation Band, small 8000 mAh rechargeable LiPo cell battery is being used to power the internal circuitry of the smart band that is Node MCU, OLED, Rotary Encoder, GY80 and GY471. Over some time of consumption, it needs to be recharged in order to make the band working. TP4650 is a battery charging system IC that automatically start charging the battery when needed and cut of the charging when the battery is full.
Tumblr media
Features:
Programmable Charge Current Up to1000mA
No MOSFET, Sense Resistor or BlockingDiode Required
Complete Linear Charger in SOP-8Package for Single Cell Lithium-IonBatteries
Constant-Current/Constant-Voltage Charges Single Cell Li-Ion Batteries Directlyfrom USB Port
Preset 4.2V Charge Voltage with 1.5%Accuracy
Automatic Recharge
Two Charge Status Output Pins
C/10 Charge Termination
2.9V Trickle Charge Threshold (TP4056)
Soft-Start Limits Inrush Current
Available Radiator in 8-Lead SOP Package,the Radiator need connect GND or impending
Rotary Encoder:
A rotary encoder, also called a shaft encoder, is an electro-mechanical device that converts the angular position or motion of a shaft or axle to an analog or digital signal. In a smart Band, it is used to shift the menu options up and down and to select the desired option off the OLED screen. The internal circitry is also shown below.
Tumblr media Tumblr media
0 notes
huzaifaahmad-blog · 7 years ago
Text
Hardware (part 2)
GY80:
This board combines 5 sensors into a single tiny package. Convenient to experiment with different sensors or used together as an inertial management unit. They are all accessible via I2C bus.
Sensor Name                            Part Number           I2C Address
3 Axis  Gyro                                    L3G4200D                0x69
3 Axis Accelerometer                 ADXL345                   0x53
3 Axis  Magnetometer               MC5883L                   0x1E
Barometer +Thermometer      BMP085                     0x77
Tumblr media
All sensors are accessible via I2C bus for basic operation so you will only need 4 wires to get started:
GND - Ground
Supply voltage. GY80 is 5v and 3.3v compatible. Use one of the     following depending on your interface voltage:
            ·         VCC -         +5v power for Arduino UNO, mega e.t.c
           ·         VCC_3.3v  +3.3v power for boards such as Arduino Due.
 SCL - I2C Clock
SDA - I2C Data
 OLED 192x64:
Winstar WEO012864C is a small OLED display which is made of 128x64 pixels, diagonal size only 0.96 inch. The WEO012864C 128x64 OLED Display has the outline dimension of 26.70 x 19.26 mm and AA size 21.74 x10.86 mm; it is built in with SH1106G controller IC and it communicates via 6800/8080 8-bit parallel, I2C and 4-wire serial interface.  The WEO012864C is a small COG OLED display which is very thin; lightweight and low power consumption.  It is suitable for handheld instruments, meters, mp3, wearable device, IoT, etc. The standard emitting colour for this item is yellow, but options are available in white and sky blue. WEO012864C module can be operating at temperatures from –40℃ to +80℃; its storage temperatures range from -40℃ to +80℃.
Tumblr media
In our project, it displays date and time, temperature, wifi, battery life, and navigation arrows.
0 notes
huzaifaahmad-blog · 7 years ago
Text
Hardware (part 1)
Intel’s Joule:
The Intel Joule Compute Module is Intel’s newest and highest-performing compute module. The platform features high-end compute and graphics, large memory, low-power consumption, a range of high-speed I/Os, and an open software and hardware ecosystem. It is an ideal platform for innovative IoT edge compute applications and products requiring advanced computer vision. The Joule dev board is small, about as wide as a quarter, and allows you to quickly prototype a concept and take into production, saving both time and money. Intel’s Joule also offers more memory and storage, 4K video capture and display, varied high-speed physical interfaces, and broader OS support. The Joule Kits will be available in two different versions: the 550x, which features a 1.5GHz quad-core Atom T5500 processor, 3GB of RAM and 8GB of storage; and the 570x includes a 1.7GHz quad-core Atom T5700 CPU, 4GB of RAM and 16GB of storage. Both models have “laptop class” 802.11AC wireless, Intel graphics, and a Linux-based OS.
Tumblr media
Node MCU (ESP8266 Wi-Fi Module)
Node MCU is an open source IoT platform. It includes firmware which runs on the ESP8266 Wifi module SoC (System on Chip) from Espressive Systems, and hardware which is based on the ESP-12 module. The term "Node MCU" by default refers to the firmware rather than the development kits. The firmware uses the Lua scripting language. It is based on the eLua project, and built on the Espressif Non-OS SDK for ESP8266. It uses many open source projects, such as lua-cjson and spiffs. The main core of the Smart band is the Node MCU. All the sensors, encoders and OLEDs are integrated with it. It has the wifi module (esp8266) wich transfers and receives the sensors data from and to the master Node which is Joule and finally operate OLED accordingly.
Tumblr media
0 notes
huzaifaahmad-blog · 7 years ago
Text
Implementation
In the implementation, the first thing you need is the Intel’s Joule which will act as your operating system. The Intel Joule Compute Module is Intel's newest and highest-performing compute module. The platform features high-end compute and graphics, large memory, low-power consumption, a range of high-speed I/Os, and an open software and hardware ecosystem. It's an ideal platform for innovative IoT edge compute applications and products requiring advanced computer vision. This fast computing device has your building lay out plan and an Rviz (a robotic simulation software) based simulation running on robot operating system. In the simulation, you have a humane model walking inside a given layout plan in accordance with the orders given through input.
Tumblr media
This simulation is synchronized with the second major module that is a smart wrist band. The smart band has the required sensors to measure the direction, acceleration, height and step count of the user. As the band user walks, his direction, acceleration and steps count values are send to the processor which assign these values to the simulation model and the person in the simulation moves accordingly. Similarly, when a turn or stairs arrive, Joule quickly processes the layout plan and send the information (turn or climb) to the smart band user. On arriving the room or office, selected from the options on a band, simulation is process the layout plan and send the message “Goal Reached” to the user.
Tumblr media
0 notes
huzaifaahmad-blog · 7 years ago
Text
In the implementation of Indoor navigation, the basic software infrastructure is provided by the Robot operation system. Before going thoroughly deep into the procedure we followed to implement the navigation protocol, one needs to have basic knowledge of Robot Operating system. ROS (Robot Operating System) actually provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.
Tumblr media
What is ROS?
Robot Operating System is a software platform that is used to control and process our robots. It allows you with hardware abstraction, low level device control and communication between two or more nodes. It actually provides you all the services that you would expect from other operating system. Most importantly, it provides algorithms, tools and libraries for obtaining, building, writing, and running code across multiple computers.
Why ROS?
ROS implements several different styles of communication, including synchronous RPC (remote procedure call) style communication over Service, asynchronous streaming of data over topics, and storage of data on a Parameter Server.
ROS is a distributed framework of processes that enables executable to be individually designed and loosely coupled at runtime. These processes can be grouped into Packages and Stacks, which can be easily shared and distributed. ROS also supports a federated system of code Repositories that enable collaboration to be distributed as well. This design, from the file system level to the community level, enables independent decisions about development and implementation, but all can be brought together with ROS infrastructure tools.
ROS is language independent. It can be programmed in many modern programming languages like C++ Python and Lisp. Some libraries are also written in Java and Lua.
As far as accurate sensing and precision is the need, nothing better than ROS. With tilted sensors, lasers and sensors attached to moving parts, it provide you with high accuracy.
Ros is powerful and flexible tool. It uses OpenCV library in many interesting ways. Also, it supports many robot simulation soft wares such as Gazebo and Rviz etc.
 Operating System
ROS work only on Unix based platforms. Soft wares integrated with ROS are only tested on Ubuntu and Mac OS. ROS can be useful with Windows OS, but it is not fully explored.
 ROS Concepts
Coordinate Frames: The “tf” (is a package in ROS that) provides a distributed, ROS-based framework for calculating the positions of multiple coordinate frames over time.
Action or Tasks: provides a standardized interface for interfacing with preempt-able tasks. Examples of this include moving the base to a target location, performing a laser scan and returning the resulting point cloud, detecting the handle of a door, etc.
Message ontology: The Common messages stack provide a base message ontology for robotic systems. It defines several classes of messages, including:
actionlib msgs: messages for representing actions
diagnostic msgs: messages for sending diagnostic data
geometry msgs: messages for representing common geometric primitives
nav msgs: messages for navigation
sensor msgs: messages for representing sensor data
 Plugins: pluginlib provides a library for dynamically loading libraries in C++ code.
Filters: The filter package provides a C++ library for processing data using a sequence of filters.
Client Libraries
A ROS client library is a collection of code that eases the job of the ROS programmer. It takes many of the ROS concepts and makes them accessible via code. In general, these libraries let you write ROS “nodes”, publish and subscribe to “topics”, write and call “services”, and use the Parameter service. Such a library can be implemented in any programming language, though the current focus is on C++ and Python support.
Main client libraries:
roscpp: roscpp is a C++ client library for ROS. It is the most widely used ROS client library and is designed to be the high-performance library for ROS
rospy: rospy is the pure Python client library for ROS and is designed to provide the advantages of an object-oriented scripting language to ROS. The design of rospy favors implementation speed over runtime performance so that algorithms can be quickly prototyped 
1 note · View note
huzaifaahmad-blog · 7 years ago
Text
Why Indoor Navigation
Smart Cities and mega structures are no more far away. Smart mega structures refer to buildings that control their power consumption efficiently, alarm in case of any maintenance issue automatically and much safer toward the natural disasters.
Tumblr media
To add some contribution toward smart cities, we are building a wrist band. This band acts as a common watch normally and becomes a local guide inside a building like google map as you enter it. In a big unfamiliar building, it takes you to the room or shop of your desire. The main idea is to connect smart buildings to smart devices like smart wrist bands.
Smart Wrist Band, a building inside a watch
Wrist band has a complete processed layout plan of the building you enter. Suppose you are in a mall having multiple floors and dozens of rooms. You want to visit a famous cloth shop, you heard about but never visited, to buy something special for your special one. And too, you are spared with a little time to shop. Now you cannot spend time on finding the shop, hence, need a guide that help you to reach there as soon as possible. Here comes the Smart band for rescue!
Tumblr media
In such a scenario, the band provides you with various categories associated with the rooms and shops inside that mall. You just select cloth, then select shop name and that is all you need to do. After you select option, a map showing complete shortest path toward that shop appears on LED of the Band. You follow the map and you would be in front of the shop in a moment. Does not sound Interesting? 
How?
You have to keep patience for a little as my next post will talk about how we do it. So, keep following!
0 notes
huzaifaahmad-blog · 7 years ago
Photo
Tumblr media Tumblr media
What if you are in a hurry and have to visit a person inside a building with dozens of rooms and floors ? What will you do if you want to shop clothes from a big mall and do not want to waste time ? Here Comes the idea of Indoor navigation. Indoor navigation provides you with inner maps of buildings and malls. Also it helps you guide all the way through to your required room or shop.
Indoor navigation is being used in many products since a long time. Smartphone apps and hardware based devices are usually used for this purpose. The major problem in indoor navigation is the extensive use of SLAM using depth cameras or hardware Beacons etc. For example Bluetooth beacons and other RF based beacons frequently become under consideration for this purpose. In order to eliminate the need of cameras and beacons and too, to make a stand alone indoor navigation device, relying just on IMU is inevitable.
The proposed solution is based on a data publishing master node installed at entrance of a building containing floor layout plan (stored after some preprocessing), and a Client Node (a smart band) with 10 DOF IMU subscribed to the publishing Master node. Both of the Nodes are running ROS (Robot Operating System), in the case of Master node ROS, it is pre-processing and publishing the data to save the processing overhead that might be faced by Client Node. While the Client node, with ROS, is running Odometery and Navigation planning algorithms to allow standalone indoor navigation.
The goal was to have a standalone navigation smart band with simplest User Interface for navigation between different apartments of a buildings.
0 notes