Wifi Strength Monitoring Robot



Deadspottr was built on the TurtleBot 3 Platform with custom Robotic Open Source (ROS) nodes allowing for constant signal monitoring.

Package Layout
Build Process


However, when it came time to bootload onto the OpenCR1.0 and to install the Ubuntu software onto the Raspberry Pi, some deconstruction had to be done to fully access all of the necessary ports.

Software Installation
deadspottr$ cd ~/catkin_ws/src
deadspottr$ catkin_create_pkg single_sig_test std_msgs rospy


Let’s dive further into how this code works. The full script is on my Github for this project, and I’ll break down the important chunks below—

  1. Because of the parsing that’s done in the middle of the code (omitted), you need to fill in the variable called network with the wifi-network you’re testing.
  2. The sigStrength() method is called when the python script is initialized. It creates a ROS node signal_strength and publishes to the signal_strength topic at a rate of .2 Hz.
deadspottr$ sudo visudo
myuser ALL=(root) NOPASSWD: /sbin/iwlist wlp3s0 scan


To deploy our new node, we make our signal_strength.py executable, and then catkin_make (think CMake) this package:

deadspottr$ sudo chmod +x single_sig_test/src/signal_strength.py
deadspottr$ cd ~/catkin_ws
deadspottr$ catkin_make
deadspottr$ rospack profile
host$ roscore
deadspottr$ rosrun single_sig_test signal_strength.py
Aaaaaand we’re off!


Now that deadspottr is up and running, we simply echo the signal_strength topic that our node is publishing on our host computer to see signal strength changes as we drive deadspottr around.

host$ ros echo /signal_strength
Signal Strength in action



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store