That triggers Heisenbergs cat problem - the uncertainty in its position rapidly decreases (converging towards your location) while momentum becomes highly uncertain. Brace yourself
This beats my method of cat locating, which usually takes the form of increasingly urgent searching followed by noticing my target following me around wondering what I'm up to.
I like this project a lot. It makes me wonder if I put one of those Apple AirTags on her for the HomePods to sense, if I can then say, "Hey, Siri, where is the cat?"
It would be nice to get a response like, "She's in the litter box" so I know to use a different bathroom to wash my hands.
off topic: is it common to have a litter box in a bathroom? According to the things I've read, cats prefer to have their "scent soaker" in more common areas, so I've not ventured there...
Remember that the more precisely you track your cat's location, the less you will know about its momentum (although since it's a cat, you can assume it is zero for most of the day).
If you make the bump to Bluetooth 5.1+ RTLS like this get even more interesting as you can measure not only signal strength, but angle of arrival too. Nordic Semiconductor have some beautiful development kits [1] for this if you want to play. Cisco also have quite a nice write-up [2] on other approaches to location resolution from WiFi and BLE.
It's worth acknowledging that setups like this exist in most workplaces, shopping centres, stadiums and other public spaces in many developed countries. 'Free wifi' is not there for your benefit. There are useful experiences enabled by this which may make your life simpler in some contexts, but also worth being cognisant of how common this is. If the benefit provided to you does not balance the privacy loss, you may be interested in https://account.meraki.com/optout and https://optout.smart-places.org/ (you may need to pop a few addresses in here if you use private addresses on iOS).
I would have been interested in the training set initial construction. It seems like the author has been walking the cat around the house from 15:30 to 22:00 :)
There seems to be a limit to how useful home automation gets - in fact this is common across car and most other areas too.
I have a hard time describing it but the write up above triggered something.
I am interested in setting up wifi-valves on my home radiators - this would be really useful in a three storey house as getting balance right otherwise is impossible. But turning on lights and closing curtains just seems to be a foolish trade if complexity for convenience (ie we bought a big second hand car that had electric doors - they were great - till they stop working and you realise there are electric motors, sensors, relays and god knows what else where there used to be a lever.)
Anyway pretty much anyone can see that trade off (even if they do get excited by the electric doors and buy the darn thing anyway).
No the issue is the motion sensor and the lights. I have found myself in offices with those devices - it's a good idea saves electricity- and I understand how it works without any difficulty - and the solution is easy too - a motion sensor has timed out, therefore wave my arms around.
The interface is simple.
But when we add "smart" to it - when we write some algorithm to work out if a person is still in the room - either by direct sensing or cunning working out if they were in room A and now are in B, we end up in failure edge cases quite quickly.
And the problem is it is it simple or intuitive to work out how to "wave our arms" to fix it. If the room assistant is counting people in and out, what happens if I carry my daughter in, but she walks out - how many people are left in the room? How do I deregister ?
A similar thing happened with those electric doors - I let my kids jump out to go see Gran, parked too close to a tree. The electric door wanted to roll back to its full open position before coming forward to shut. But the tree won't let it go fully back. Ok the the engine back on and drive two feet - oh, I can't drive cos the door is open. Shut the door, but the door wants to go back first and hits the tree ... it took two grown men fifteen minutes to work that one out.
The problem is that software engineers like us have tried to make sensible defaults and decision trees - but we fail to cover everything.
Now FOSS is a partial solution to this - but for any appliance, for any IoT, for any thing that I am not paid professionally to understand, if I have to read the code to workout how to get around it, something is seriously wrong.
I am not sure where this leads - it's just ... user friendly usually is not. Simplicity is not just hard but sometimes orthogonal to sales and growth and, frankly I dont think most of our lives need more automation - i think we need help, actual assistance, advice and good curation.
I think I just wrote the opening paragraph on my chapter in MOOP.
I find it concerning that you couldn't turn on the car with the door open. I can understand beeping, but fully refusing to let the car turn on seems quite excessive.
It turned on - it just would not drive forward - ie drive to get away form the tree that was blocking the door from returning to fully back before coming forward and closing.
I like the idea of not letting someone drive off with the doors open. It seems sensible. But we could not work out how to override it.
Moving the car in front, reading the manual to work out how to engage neutral, remove the automatic handbrake and let it roll two feet down the hill.
It's not the solution, but that ... ok - automation is great if you are a service provider. If you are a taxi firm driving me around automate as much as you like, and you get to own the edge cases. And presumably can deal with them as it's your job. Similarly self driving car - that's a service to me.
But if you are not a service provider, if you are just "helping me but not replacing me" then that's when things fail - as a service provider you can do it your way and Indont really care how. But if you are just helping some but not all of the solution then you have to do it my way, or i have to (re)learn your way - and that means access to reading your code (maybe lessons and training for me)
really i don't want lessons on how your light bulb works, or need to watch a video on my hotel rooms AI.
We are seeeing this in
self driving cars - half automated is not enough and often far worse.
just use a infrared sensor for the light and a light switch if the other fails. Infrared doesn't need motion. Counting in and out only works with a rotary lock (side effect you have a list of people to rescue in an emergency).
PSA: Make sure to get collars for your cats that either detach under load or, perhaps best, have an elastic segment that lets them slip it off if it catches.
A couple months ago my friend found his cat dead after her collar caught while jumping over the fence. Poor little baby beast. :/ I look at my fun-loving critter basking in the sun as I write this and it breaks my heart to imagine her suffering like my friend's poor cat did.
One of our dogs disappeared for two days. Then on my way home I got a frantic call from my wife that he had come home but his leg was in a bear trap.
Turned out to be a coyote trap and there was a plastic link on the chain that attached it to the tree or whatever, that he had chewed through then limped home on three legs. If not for that link, he'd probably have died out there since the person who set it was clearly not checking it every 24 hours as required by law.
Luckily he was big enough that the trap couldn't close tightly enough to damage his leg and he was running around fine by the next day.
Each trap has a unique ID that should be traceable to an owner. We happened to know someone who worked for Animal Control and he was looking into it, but I don't recall how that worked out.
My cat will remove them within 20 minutes, never to be found. I've reluctantly settled on the non-safety collar after losing a half dozen. Although if I equipped one with RFID I could at least have a shot at locating his stash!
My cat used to do the same. But then I found out that she likes the color red (or orange). Once I switched to that collar it would only come off every few days and seemed more like an accident. She also likes the bell and when she first got it would proudly walk in a way that made a lot of noise.
So idk if this helps, but maybe try different colors and configurations and find what your cat likes. Also tightness has a lot to do with it.
Maybe replace the elastic section with a loop of fishing line that's rated at 1/4th the cat's weight (loop having 2x the rated strength). Too strong for the cat to remove, but will snap under their own weight.
Or the cat might be OK with the breakaway collar now, due to "learned helplessness".
PSA: Keep your cats inside. They will live longer, healthier, and so will the birds.
And if they are indoor make sure they have areas to run around, be sure to play with them (they are a pet! They are your responsibility!), and watch their diet (often people let them get too fat and it takes awhile for cats to lose weight).
> and watch their diet (often people let them get too fat and it takes awhile for cats to lose weight).
Given the crap that barely passes for industry pet "food" it's hard to keep an indoor animal slim (it's easier for dogs though since us can openers take them out for walks regularly). Pet foods are made to look and smell appealing primary to us can opener humans, not the pets. And dry foods are even worse for cats and dogs - they are used to stuff like grain as small part of the mice and other rodents they naturally eat, not as filler material.
PSA: Get your pets high quality food that is similar in composition to what they'd eat in nature and not highly processed crap. You don't diet on frozen pizza, burgers and full sugar soda all year, so please don't feed your pets the equivalent.
I agree that you should get them good quality food and not the cheapest, but that doesn't mean "let them hunt and kill birds and mice." Not only does that lead to the decimation of bird populations (cats kill for sport) but your cat will have more health problems as they are much more likely to be exposed to worms, fleas, parasites, and fights. The life expectancy of an outdoor cat is significantly lower than that of an indoor cat.
And you are encouraged to take your cats on walks. My friend runs a line across his backyard and attaches the cat's harness to it. She gets to run around and the bell makes birds very aware of her presence. Telling people to keep them inside doesn't mean you don't play with them (I explicitly said the opposite). I should refine that you shouldn't let them roam outside. On a leash is fine.
People don't realize this, but you can in fact train cats. My cat does tricks.
Pretty much everywhere I lived people would have their cats outside and do fine. They only got caught by the coyotes when young, old, or unlucky. So in the mean time they're killing birds. Either way, keep them inside anyways.
Once on my way from work I saw a cat jumping and catching its collar in the fence and choking. Fortunately I got there quick and released the poor thing.
We've gone through a lot of collars with our cat and he seems to tolerate the neoprene and velcro type the most. The brand I'm familiar with is Beastie Bands. They're more secure than I imagined and fit loosely without snagging or easily pulling off. Additionally, it seems to generate less matting, which is a plus.
Yes. And that's not all that bad if you use them to go for a walk with the cat, like with a dog on a leash (but then a harness is better). But it's a real problem if the cat is alone. The veterinarian looked so damn sad when talking about how important those breakaway collars are...
If you're walking them get a harness (same for a dog). Don't pull on the neck, pull on the body. This is not only better for them but you'll have more control.
Advice: be patient, use the various techniques to get your cat acclimated that are listed on the site.
Ultimately, how cats deal with being harnessed even after being acclimated is extremely individual personality-dependent. I've seen some happily walk like dogs. Mine don't particularly want to walk alongside people and very quickly want to go off under plants or other places where they can hide and stalk, and where people can't easily go. We take them out for as long as both they and we can stand, and don't jerk them around.
The Kitty Holster type harness is significantly less escape-prone than say the PetSafe style of nylon straps, and probably less uncomfortable as well.
Tracking location by signal strength is highly error prone. Antenna orientation and multi-path can change signal strength a lot (+/- 6 dB easily) without the object actually moving. So the location data you get will be VERY approximate.
Case in point: The vet. Our cat somehow knows from our behaviour that the visit is today, and disappears off the face off the earth. We had to cancel a visit because we spent more than two hours searching and were late.
So new appointment a day or 2 later, and we watch every step of the beastie like hawks. She disappears behind a cabinet, does not come out, and can be found neither behind or inside. Huh? It turns out the back of the cabinet is open, and there is a really tiny space between drawer and back. If I open a drawer, she goes up/down a layer.
I knew all the time she was less than 50cm from me, and it still took me 15 minutes to figure this out. I've been thinking about creating a tracker, but then , the cat healed enough to lower the frequency of vet visits.
The trick I've found is that when they go in a dumb hiding place act as if it is super hidden and amazing. If you really don't need them then just let them hide and pretend to search for them (never make eye contact but make sure you look like you've looked in the area). It will become their favorite hiding spot quickly and then you get to decide how to use it.
My black cat stays quiet in the living room when I am around. However, once I go to bedroom, he will move around in the house, making lots of noise. His hiding place can be the dark sofa, in front of big tv, etc.
An unfinished project on mine is to try to track my cat outside using an ESP32 LoRa module attached to his collar.
The idea is to periodically send a list of WiFi SSIDs along with RSSI's so I can triangulate the cat's location using the signal strengths of each network. Similar to how the first iPhone would find your location without needing GPS.
If somebody manages to build a reasonable-precision (tens of cm?) indoor location system with decent user experience (ie reasonably easy to set up, reliable, cheap, and stable), they have a massive hit on their hands. Never mind the cat, never lose a key or a remote ever again. Or your pills. Hugely valuable for the elderly.
They sell little fobs that you attach to your keys that make a loud noise when activated. I considered getting one, but I feel like I'd just lose the activator.
Not sure if it can help but check getfindster.com.
It works without cellular. It has two modules, gps on a dog which emits some data RF signal and a receiver in your pocket. They claim 3km range. I can confirm 1.5km. Didn’t test further. Quite magical actually
So I don't know much about ML; how much better would one expect ML (which I take in this context for 'deep neural network'?) approaches to be compared to a multinomial logistic regression, for applications like this? Is logistic regression old school and/or outdated now?
I think ML is completely unnecessary here. In the end it's triangulation of a signal. No need for ML after all.
Looks like a classic case of the famous Jurissac Park quote: "Your scientists were so preoccupied with whether or not they could, they didn’t stop to think if they should."
> In the end it's triangulation of a signal. No need for ML after all.
Triangulation works accurately in open space, however this use case is inside a home with signals being blocked, bouncing, or attenuated by walls, mirrors, appliances, etc. On top of that, the goal is to use as few BLE rx'ers as possible (meaning not one per room). Given those constraints, a trained ML model actually does make sense.
iirc BLE is not that exact and you'd also have to model/measure your sensor position. I think creating a primitive statistical model for looking up the location seems sensible but the ML aspect is definitely a little bit overrated, but I think this thing was never meant to clickbait (it's means to an end available for ~40years now).
There are no convincing reasons to consider logistic regression to be outside of ML. ML isnt just deep learning. To me its a collection of mathematical tools that help in designing predictors. This involves stats, optimization, algorithms, stochastic processes, information theory.
The main difference between stats and ml is (i) community, (ii) stress on the details of compute and the focus on prediction accuracy rather than accurate recovery of parameters. A scheme that ensures good prediction even if the parameter is not recovered, for ML that's still a success.
At least over here all cats have an RFID implant injected after their first vet visit. I'd try to work with that instead of putting a BLE on the cat. Your localization target ("Cat is in kitchen" etc.) is coarse grained enough to make it work with RBP's.
As far as I know, the usual range on those implants is no more than ~30 cm, so I expect you might need a pretty powerful transmitter to find them across a room.
That's less a hard number and more a limit of how much power you're directing at it (with limits due to the inefficiency of RF energy transmission mostly) and how sensitive your receiver is. The passport RFID tags have been read from over 200 feet away for example. (this number is from years ago too)
I assumed that given the target was to come to a 'cat in room x' resolution, a few readers placed at strategic sites (doorposts, mainly), would suffice.
See also [1], a research collaboration that did this basically 12 years ago... Iirc they also had a project where they tracked cats across a town... But most of their "experiments" were just tracking interactions between pupils and not so much the location tracking... Though I remember the original hardware (was open sourced) had this as well.
There used to be (~20years ago) a catscan website where people posted images of their cats as taken with flatbed scanners (when those were a thing). It wasn't uncontroversial.
One of my favorites was a color scan taken in multiple passes with filters. The cat was not stationary through the whole process
I know that people have done various forms of radar with wifi signals; I wonder if I could have a few sensors throughout the house and use ML to determine if various doors are open or closed.
been thinking about kitt(y)ing my cat out with a 3G+GPS module for tracking outdoors but the weight of lithium in the battery pack required for hours-long adventures has hindered any further effort
With a few other other elements (i.e. weather) added to learning model I bet this would be super accurate! Pretty neat. I love finding use at home DIY use cases with commodity hardware, ESP32s ftw.
No, just the normal utility that first "appeared in Version 1 AT&T UNIX." It uses Bing by default but you can specify a translation service in your cat.conf. Use like this:
I’m pretty sure this is the first time I’ve seen the word “localize” used to refer to spatial location and not cultural/linguistic locale. Totally makes sense but definitely threw me off when first reading the headline. :)
Localization is actually the common term, frequently used in robotics and autonomous vehicles. There's a really interesting field of research here [0].
I work at a robotics company, so we've had a perception team that manages robot localization since forever, and now that we're also internationalizing our product, there's a separate frontend team dealing with third-party localization firms to create the needed translations. :)
Yeah, _localize_ has always meant to adapt something to its location, when I've seen it used. _Locate_ means to determine the location.
Edit to add:
But I can see how in a specialized field, where methods for locating an object are frequently discussed, using localization over location would be useful for describing the process of finding something, since location is also a noun referring to the place itself.
Well and in the specific context of SLAM, the business of localizing is itself an adaptive and constructive process. "Locating" is what the user does when they simply tell the robot where it is on the map. Localization is building a continuous graph of your immediate surroundings and past movement history and fitting that to what is known about the environment.
I totally hear that. Especially if people are commenting that they were thrown off. I just wanted to make sure people knew to use this term if you're looking to learn more about the topic of this project. If anyone is looking to implement this or another method to do indoor mapping, you'll probably want to familiarize yourself with the research field of Simultaneous Localization and Mapping or SLAM.
I'm pretty sure it's actually wrong usage, and should be replaced with "Locate" in this context.
"Localize" has various meanings, but in a physical location sense is to restrict something to a particular area, e.g. "We successfully localized the fire to the Johnson farm so no other farms were damaged.".
I can't see a definition that is equivalent to "locate" or "find".
I don't know what's idiomatic here as English is not my first language, but according to my dictionary "localize" can also mean "to find the position of something"
I think one of the reasons that one is not used because usages like "Simultaneous Location And Mapping" (instead of the "Simultaneous Localization And Mapping" that SLAM stands for) would read a bit strange... "location" is more commonly used to mean "the place" and not "the act of finding the place".
'Locate' implies that you're predominately interested in the object being sought but 'localize' suggests you're more interested in the place where it is/was. I think localize can also be less-than-exact if it rules out some plausible locations, but it seems odd to partially 'locate' something.
It's used a lot in neurology/neuroscience for the process of identifying where (e.g.) a tumor is or the brain structures on which a particular behavior or process depend.
$ LANG=ca_ES.UTF-8 cat asldkj
cat: asldkj: El fitxer o directori no existeix
$ LANG=ca_ES.UTF-8 cat --help
Forma d’ús: cat [OPCIÓ]… [FITXER]…
Escriu la concatenació de tots els FITXERs a la sortida estàndard.
Sense cap FITXER, o quan FITXER és «-», llegeix l’entrada estàndard.
[...]
So I have some experience with this. I decided to add BLE beacons to my vehicles and bicycles, and an RPI to listen for the pings and retransmit them over mqtt. The idea was I could setup some Home Assistant alerts for things like "multiple vehicles are absent at once" or "vehicle went from home to away at odd hour" where "odd hour" is something like 12AM-5AM, a time when I wouldn't expect me or my vehicles to be departing.
The way I implemented it was to have each beacon transmit on I think 1s (might have been 5s to save power) intervals, and some python code on an RPI that listens for them, with a timeout for each. If the listener gets a ping it immediately forwards it to mqtt as a "home" ping, using the beacon id to set the topic. If it doesn't get a ping within the timeout then the rpi generates and sends an "away" mqtt message for that beacon. My expectation was to have it alert me within ~2-3 minutes of a vehicle going from "home" to "away". In practice:
- BLE beacons aren't very popular really, most of them are made by small foreign companies who don't sell them in places like Amazon. The ones Amazon does sell are kind of crappy. Setting them up usually involves downloading a vaguely-sketchy app to your phone (I haven't figured out how to configure them from the rpi). They all seem kind of janky honestly.
- Bluetooth and Wifi use the same (some) hardware on an rpi, meaning if you start rapidly scanning for BLE tokens your wifi performance will drop to the point of the rpi being unusable (ssh sessions timing out). I fixed this by buying a separate USB bluetooth dongle, although even that was a pain to get working in the pybluez module - in general bluetooth under linux along with the python bindings are finicky and crap out easily, it seems.
- I have my dmesg and syslog spammed with "Bluetooth: hci0: advertising data len corrected" when using bluetooth scanning, I managed to find a couple bug references to it and other people complaining about it but no fixes over multiple system updates.
- It's just... Not reliable. I don't know why. I've tried really hard to make it reliable, and maybe the problem is the RPI-as-bluetooth (maybe if I used a microcontroller as the receiver it would work better?), but I've tried all variations of scanning windows and such and dug down into the code for Bluez without figuring out either what I'm doing wrong or where the issue is. Beacons will supposedly not ping for minutes at a time despite being on a 5s interval no matter what I do, and this is for beacons maybe 6 feet from the receiver (although ones further away do timeout more).
The last thing is what finally killed the project for me. I had it (still have it) all setup in HA with notifications and schedules and such, but I just turned off all the automation for it until I get a chance to tear it down. Failed experiment.
This has much to do with fading and such. If the polarization of the antenna sending is 90 degrees from the antenna receiving, for example, you will get no signal, even if close. This sort of thing can make the signal get weak as though it was 3x as far away at random as things move.
There's commercial products for locating cats outside; probably GPS and either a mobile chip to pass the data or LoRa. $75 or so, but I'm sure they come with subscription costs as well because monies.
There's a cat in our neighbourhood with one of those, it's funny to walk out there in the middle of the night (we violate curfew and walk the dog close to midnight) and see a cat with a collar with some blinking lights staring at us from the bushes.
Kinda wish one of our cats had one of those when he went missing, but it's likely he would've lost the collar at some point anyway (he looked like he squeezed himself through a tiny hole and couldn't get out again until he lost a ton of weight two+ weeks later when he came back)
Have you actually seen a commercial LoRa small animal tracker? Most asset/animal trackers I've seen are a bit chunky to go on a cat collar so I'm working on one with a better form factor.
But my cat really doesn't like collars, so the real utility seems to be in locating where he managed to remove it...
Alternative point of view: they are a mitigation for the fact that many people cannot be trusted to behave sensibly (in terms of protecting society at large from this pandemic) if large numbers of people are out and about at night, and it is not feasible to check each individual's activities to assess whether they're "improper".
Perhaps because COVID is not more prevalent at night? Or maybe GP feels that walking ones dog at 11:45pm is safer than walking it when more people are outside? Or perhaps they are sociopathic maniacs who look for nonsensical regulations they can violate with impunity.
Agreed, and that also raises the question of why the original poster chose to include the bit about breaking curfew in the first place. The comments stands up just fine without it, it's not important to the story they were telling, and all it's done is created an irrelevant, pointless subthread. And I am a part of the problem for contributing to it.
Without anymore context, I'll assume that he's referring to a logic lacking covid curfew in the US. Those might make sense for dense downtown districts with bars, but almost nowhere else
In Germany, we have a curfew in place after 21:00 in the evening (with exceptions to go to work, visit doctors/veterinarians and other immediate needs). The goal was not to prevent people from going to bars since these are closed/take away for months now anyway, but rather to discourage people from visiting friends.