Skip to content

Embedded control system (ECS) software controls the overall behavior of ScanBot3D, an autonomous 3D reconstruction robot

Notifications You must be signed in to change notification settings

ndouard/ScanBot_ECS

Repository files navigation

ScanBot3D project

Short presentation: https://www.youtube.com/watch?v=i2ye-qNZSvg

Our goal is to perform 3D reconstruction using mobile embedded systems. The developed solution is capable to generate the 3D model of indoor spaces. We’re using an infrared (IR) sensor embarked on a vehicle in order to do so.

The vehicle offers several navigation options:

  • Manual remote control
  • GPS-based autonomous navigation outdoors
  • Software override using input from external embarked module (autonomous navigation indoors for 3D reconstruction with 3D IR module, autonomous car control module)

Communication is possible:

  • From radio control unit to main navigation board
  • Between a computer or a tablet/smartphone and the main navigation board for configuration and telemetry as well as waypoints definition
  • Between the main navigation board and embarked modules

The main software stack used for navigation is open enough to allow future implementations, and aforementioned communication between the main navigation board and external modules.

Find out more about this project here: https://github.com/QBitor/ScanBot_ECS/blob/master/ScanBot3D.pdf

ScanBot3D ECS software

Embedded control system (ECS) software handles inter-board data interaction (client–server model) and controls the overall behavior of the vehicle.

The master Raspberry Pi board, known as master board sends data to and receives data from other boards, including:

  • Arduino Uno board for turret servo control using Nanpy - USB link
  • Navigation Raspberry Pi/Navio2 board running ArduRover using custom server/client library - Ethernet link
  • Logger/Minnowboard running custom Logger1 for RGB-D logging - Ethernet link

This led to the following architecture:

alt text

In the server/client approach, the navigation board client sends RC input data to the master board server via TCP/IP which uses this data to control the turret in manual mode. These packets consist in a stream of integers.

ECS software is invoked through remote GCS via SSH. On startup, the user has to choose between two capture modes: manual or autonomous. Once done, the user should specify how long capture will last so the logger board can be configured.

In manual mode, this system is used to retrieve 3 position switch RC input data used to control turret orientation (left, right, center). Navigation is done via RC control. In autonomous mode on the other hand, the vehicle navigates using US sensors and swipes the room in order to get as many points as possible. It then stops when capture duration is reached.

This behavior can be summarized as follows:

Manual mode

  • Write capture duration on logger board
  • Start server on master board
  • Start client on navigation board
  • Write servo position based on client data while running

Autonomous mode

  • Write capture duration on logger board
  • Start server on navigation board
  • Start client on master board
  • Initialize US sensors (via Nanpy)
  • Send PWM data from master to navigation board to control vehicle and turret behavior while running

About

Embedded control system (ECS) software controls the overall behavior of ScanBot3D, an autonomous 3D reconstruction robot

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages