A standard suitcase can be difficult to have with you at all times. You may forget it on the side and leave without it. That is why we created The PursuitCase; a standard sized suitcase that follows you aroundwherever you go so you don’t need to worry about it.
Going on vacation can be difficult. The whole family has to bring a suitcase with them, whether young or old. For some, like young children or old grandparents, wheeling around a heavy suitcase can be difficult. That’s why we created The PursuitCase.
Our projects are mainly focused around a Pixy2 camera and tracking system. This camera tracks the user and sends a signal of where he or she is located relative to the camera straight to a servo motor, which directs the front wheels of the suitcase. We have direct current motors in the rear that propels the suitcase forward. We installed an ultra- sonic distance sensor to prevent collisions with various obstacles including the user himself. All this hardware paired with our algorithm is how we created The PursuitCase.
int trigPin = 12;
int echoPin = 11;
long duration, inches;
int32_t panOffset, tiltOffset;
#include <Pixy2.h>
#include <PIDLoop.h>
Pixy2 pixy;
PIDLoop panLoop(-400, 0, -400, true);
PIDLoop tiltLoop(500, 0, 500, true);
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(115200);
Serial.print("Starting...\n");
// We need to initialize the pixy object
pixy.init();
// Use color connected components program for the pan tilt to track
pixy.changeProg("color_connected_components");
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW);
duration = pulseIn (echoPin, HIGH);
inches = duration / 74 / 2;
Serial.print("Inches: ");
Serial.println(inches);
static int i = 0;
int j;
char buf[64];
// get active blocks from Pixy
pixy.ccc.getBlocks();
if (pixy.ccc.numBlocks) {
i++;
if (i % 60 == 0)
Serial.println(i);
panOffset = (int32_t)pixy.frameWidth / 2 - (int32_t)pixy.ccc.blocks[0].m_x;
tiltOffset = (int32_t)pixy.ccc.blocks[0].m_y - (int32_t)pixy.frameHeight / 2;
// update loops
panLoop.update(panOffset);
tiltLoop.update(tiltOffset);
Serial.println(panOffset);
// set pan and tilt servos
pixy.setServos(panLoop.m_command, tiltLoop.m_command);
forward();
#if 0 // for debugging
sprintf(buf, "%ld %ld %ld %ld", rotateLoop.m_command, translateLoop.m_command, left, right);
Serial.println(buf);
#endif
}
else // no object detected, go into reset state
{
stoping();
panLoop.reset();
tiltLoop.reset();
pixy.setServos(panLoop.m_command, tiltLoop.m_command);
}
}
void forward() {
// Right
if (panOffset <= 0) {
analogWrite(4, 255);
digitalWrite(5, LOW);
// Left65
analogWrite(6, 215);
digitalWrite(7, LOW);
}
if (panOffset > 0) {
analogWrite(4, 150);
analogWrite(5, LOW);
analogWrite(6, 215);
analogWrite(7, LOW);
}
}
void stoping() {
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
The PursuitCase is designed to be used by all kinds of people wearing a specific color that you can specify. As long as that color is in front of the camera, the suitcase will move towards you. That being said, the ease of use makes this product perfect for anyone of all ages, from a baby taking its first steps and on.
As of now, there is only one company that is designing a similar product, Ovis, which follows you via GPS. There are many issues with this. The first issue is that it costs $800 to buy. The PursuitCase can realisticly be sold for more than 75% less than that. Another issue is that Ovis can only follow you if you have a smartphone. The PursuitCase can follow anyone with a colored shirt on his back. A third issue with Ovis is since it uses a smartphone with new technology, it can be difficult for older people to use, which is what The PursuitCase solves.
Although The PursuitCase is an innovation ahead of its time, there are still minor bugs that can be fixed. For example, with better color tracking technology at this price point, we can make The PursuitCase work better in poorly lit environments. Furthermore, with advancements in servo-motors, The PursuitCase wouldn't lose track of the object as easily.