Robot 13

 

Overview

A tall mobile robot with IR thermal sensing that will try to find people and interact with them.

 


Current status

The motor control module is working but needs some fine tuning

I haven’t figured out how to use the LIDAR on the Raspberry Pi yet

The upper module (the one with the eyeball and screen) is working well. It will be linked to the Pi with a USB cable or an ESP32.


 

Sensors

       
Panasonic GridEye

8X8 thermal sensor

AMG8833

     

LIDAR

             

This device will measure distance all the way around the robot. The manufacturer provides a test program for Windows. I gave it a try and it seems to work well There’s a screen shot above.

Communication protocol (PDF)

 


Control

I was planning to use a Raspberry Pi to control the robot, but I’m finding it to be difficult to use for that purpose. The Pi uses too much power to be used in battery powered devices.

I’m going to try an ESP32 board. It can use as little a 30mA without wifi.

It will send commands to the following modules:

  • Upper IO board – eyeball tracking and display
  • Motor control
  • LIDAR

Upper I/O board

This module uses a thermal sensor to detect and track people. Two servos move the sensor horizontally and vertically to keep it pointed toward people. The temperatures are shown on the display as both numbers and colors.

The module is controlled by an Arduino Nano clone and will connect to the Raspberry Pi with a USB cable. I’ll have to come up with a set of commands for it.

 

  

Color code

14°C and below – black
18°C – blue
22°C – magenta
26°C – red
30°C – yellow
34°C and above – white

The bottom of the screen turns green while a person is detected. That’s currently defined as anything between 28 and 34 degrees.

 


Base

 

            


Motor control board

Uses 2 LMD18220s and an Arduino Nano clone

            

Arrived March 25Here are the Eagle files.

Parts from Digikey

Software options

Option 1

I wrote a simple test program. It uses these commands:

0 stop
1 full speed forward
2 medium speed forward
3 low speed forward
4 gradual right turn
5 sharp right turn
6 gradual left turn
7 sharp left turn
8 reverse
9 brake

Option 2

Dale wrote some software that uses these commands. It uses PID. It’s in the testing and fine tuning phase.

Set speed Set direction Rotate
s0 stopped
s1 20%
s2 30%
s3 40%
s4 50%
s5 60%
s6 70%
s7 80%
s8 90%
s9 100% 
d1 turn left, 50cm radius
d2 turn left, 100cm radius
d3 turn left, 2m radius
d4 turn left, 10m radius
d5 straight ahead
d6 turn right, 10m radius
d7 turn right, 2m radius
d8 turn right, 100cm radius
d9 turn right, 50cm radius
 
x0 rotate left 180 degrees
x1 rotate left 90 degrees
x2 rotate left 45 degrees
x3 rotate left 30 degrees
x4 rotate left 15 degrees
x5 rotate right 15 degrees
x6 rotate right 30 degrees
x7 rotate right 45 degrees
x8 rotate right 90 degrees
x9 rotate right 180 degrees 

b reverse at low speed

Option 3

Albert has some software written that we could use.

 

Motors

Banebots 12VDC, 64:1 planetary gearset, 1A with no load

 

 Posted by at 10:40 AM