Skip to content

The SmartFactory_Vehicle-Basis is an modular part of the SmartFactory Project. It consists of three modules: Environment-Detection, Drive-Control and Hoist-Control.

License

Notifications You must be signed in to change notification settings

LMazzole/SmartFactory_Vehicle-Basis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartFactory_Vehicle-Basis

The SmartFactory_Vehicle-Basis is an modular part of the SmartFactory project.

SmartFactory_Vehicle-Basis is a vehicle which is equipped with a drive, sensors (line-detection, sonar and a camera) and a hoist. It consists of three modules:

  • Environment-Detection
  • Drive-Control
  • Hoist-Control

Multiple nested Finite State Machines (FSM) based on the pattern of the ArdFSM are used to control the processes.

Table of contents

The SmartFactory project

SmartFactory_Vehicle-Basis is part of the SmartFactory project. It provides a library with basic vehicle functions.

Other SmartFactory-components are:

A possible implementation of the SmartFactory project can be seen in the Sortic-Showcase:

The associated repositories are:
SmartFactory-Sortic
SmartFactory_Box-Sortic
SmartFactory_Vehicle-Sortic
SmartFactory_Vehicle-Basis
SmartFactory_MQTTCommunication

Tools and technologies

The source code is written in C++. To achieve this project, the following listed tools and technologies were used.

Doxygen

Doxygen is used for the documentation of the source-code.
An intorduction to Doxygen and how to install it can be found in the ArdFSM-Repo.

VSCode PlatformIO

The used IDE is VSCode with the PlatformIO-extension.

MQTT

For a description of the MQTT-Technologie take a look at the MQTTCommunication-ReadMe.

Documentation

Hardware

[Source: FTS, BA FS18, Huber,Paly]

To build a SmartVehicle the following hardware is needed:

For detailed building instructions please contact Felix Nyffenegger.

Software

All functions and files are documented on the GitHub-Page.

It is important to mention that all functions are non-blocking and as short as possible so no other processes starves.

The Sonar and PixyCam functionalities are not implemented at the moment and are crossed out.

The interface is documented in DriveCtrl, EnvironmentDetection and HoistCtrl.

Dependency graph



Click on the image to open doxygen-documentation.

Extern libraries:

Collaboration diagram

Click on the image to open doxygen-documentation.

Important functions and files

HardwareConfiguration.h

In HardwareConfiguration.h, all important settings for the vehicle-hardware are defined:

  • Setup for Drive
    • Speed, Motor-pins, PID-values
  • Setup for the Linedetector
    • Pin-number
  • Setup for Hoist
    • Pin-number, delay, minimal and maximal position
  • Setup for Sonar
  • Setup for Vision

FAQ's

I'd like to use this code in my project. What do I need to know?

All you need to do is adding the GitHub-Link to this repository under lib_deps in your platformio.ini file and you're set. All dependencies are downloaded automatically. The interface is documented in DriveCtrl, EnvironmentDetection and HoistCtrl.

ToDo's

Hardware

  • The battery of the vehicle must be recharged manually. Inductive charging while waiting would be desirable.
  • Sensors for line recognition have an unfavourable distance to the turning point. They should be placed closer to the vehicle axis to increase the accuracy of alignment.
  • The line recognition functions unreliably. This may be caused by an imperfect white background and needs to be optimized.

Software

The open ToDo's can be found in the documentation on the GitHub-Page

  • Implement Sonar
  • Implement Vision

Contributors

Changelog

V 1.0 - Release BA FS19 - Luca Mazzoleni

License

MIT License

About

The SmartFactory_Vehicle-Basis is an modular part of the SmartFactory Project. It consists of three modules: Environment-Detection, Drive-Control and Hoist-Control.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published