SR04 Robot
David P. Anderson

My last robot project was the SR04.   This robot won first place in the Dallas Personal Robotics Group RoboFest Contest 1998, 1999, and placed in 2001, 2002 in the QuickTrip and TTime categories, and third in 1999 in Line-Following, and appears to be  the only robot ever to have successfully completed the CanCan soda can recognition and collection task, which it has done five times. It won second place at the Seattle Robotics Society Floor Exercises competition at Robothon 2001.

I have a detailed HTML article describing the robot platform, sensors, and software, with some pictures and CAD drawings of the various mechanical and electronic sub-systems.   The same article can be downloaded in Adobe Acrobat PDF format.

I've also recently put together some HTML documentation on the SR04 can and tennis ball gripper with some photographs and exploded assembly drawings. This gripper was added to the robot in order to compete in the DPRG can collecting contest.

Here is an mpeg video (5 Mb) of the robot running the QuickTrip course.  I added an extra obstacle (cardboard box) in a flagrant to attempt to impress the judges. Here is a smaller version (1.7M) that seems to run way too fast.

Here is another mpeg video(714K) of the SR04 can gripper. Stereo sonar are used to steer the robot toward the can until it touches the pair of bend-sensor feelers on the front bumper. The feelers trigger the gripping response. Once the gripper has closed on an object, the robot re-orients itself towards its goal and attempts to return the can to the point of origin. The white flash of light beneath the gripper arms just as it grabs the can is accompanied by an electronic beep (not heard on this silent mpeg) that is part of the technique by which the robot counts the cans it has collected.
Here is an MPEG video (2.8 Mb) of the robot finding and retrieving two of the six randomly placed soda-cans during the TTime competition. You can see the stereo sonar "waggling" the robot back and forth as it acquires the coke can targets.


Here is the complete MPEG video (15 Mb) of the 2002b CanCan contest. The robot locates and retrieves all six randomly placed soda cans. Kipton Moravec MC's the competititon. After locating and fetching each can, the robot returns the cans to the starting place. It then squares itself to the contest walls and measures their distance, using it's stereo sonar. With the exact location and angle measured and stored, the robot does a 180 degree scan, looking for sonar reflections which are not from the walls (which it now knows accurately). Any can detection just stops the scan, and the robot is left pointing at a can. If no cans are found it marks this sector as empty and proceeds to the next. The cans are painted white in this contest, to simplify the process of locating them using video. This doesn't matter for the sonar technique used by SR04.


Obstacle avoidance in the attic (6.7M) of SMU's Heroy building. The robot is trying to go 24 feet straignt forward, turn around, and come 24 feet straight back, but the floor is strewn with junk we found in the attic: old equipment, trash and cables on the floor, and a couple of chairs thrown in for good measure. On the return trip it tries to go around the building rather than take the shortest path. Fortunately it collides with some trash on the floor and gets re-oriented.
Here's a (somewhat) higher resolution version (32M mpeg)

More Obstacle avoidance in the attic (7M) The robot has the same task as above but starting from the opposite end of the room. This time on the return trip it decides to explore the stairwell. That's me advising it "Don't fall down the steps!" and sticking my foot in the way to turn it around. You can hear it complaining about the situation as the audio alarms go off while I'm kicking at it. Got to get those "step detectors" working if you want to play in the attic...

Navigating 4 waypoints (6.2 M mpeg).

The robots is navigating to four waypoints in my neighbor's driveway. The right bumper is used to select "navigation waypoint list #7" (count the beeps) beginning at (0,0) and then to (0,120) to (120,120) to (120,0) and back to (0,0). This is a clock-wise path around four sides of a 10 foot square. A quarter is used as a marker for the (0,0) coordinate, which can be used to compare the robot's starting and ending positions. Here's a higher-resolution version of the same thing.(25M)

Navigating 4 waypoints with a wall in the way and a moving obstacle (33 M mpeg).

Big institutional hallways, like in the lobby of the Fondren Science Building at SMU, often have 12 inch square tiles (20" in this case) which provide a handy "graph paper" for testing and calibrating the robot's navigation. I used some masking tape to mark the origin at (0,0) to make offset errors more apparent. This route is the same clock-wise route around a 10 foot square as the previous video, with an architectual divider between the second and third coordinates. That is, the robot only "knows" about the four waypoints it is supposed to acquire. It does not have advanced knowledge that there is a divider in the way. This it must determine from its IR and SONAR sensors. The divider forces the robot to retrace its steps back toward the first waypoint in order to clear the end of the obstruction and acquire the third target. A dynamic obstacle (me) on the fourth leg of the route attempts to block the robot's access to the final waypoint. Here's a higher-resolution version of this SR04 calibration run (32M mpeg)

Navigating 4 waypoints with multiple obstacles (7.0 M mpeg).

The is a counter-clockwise version of the same four waypoints as the previous videos: (0,0), (0,120), (-120,120), (-120,0), (0,0). The robots encounters fixed obstacles (cardboard boxes) on the second leg of the journey, and another dynamic obstacle on the fourth leg of the return trip. Note that the placement of the cardboard boxes prevents the robot from arriving precisely at the first waypoint. A full-resolution version (32M mpeg) is also available.

Navigating 4 waypoints with a bunch of stuff in the way (7.8 M mpeg).

For this run the robot is rotated 90 degrees from the other routes, and is again seeking four waypoints arranged as a clock-wise, 10 foot square. There is an architectual divider between the first and second coordinates, a recycling bin between the second and third, and a trashcan between the third and fourth. A full-resolution version (32M mpeg) is also available.

Staying on the sidewalk (7.4 Mb mpeg) using sonar and IR detectors.

Here SR04 is attempting to follow a sidewalk by sensing the discontinuity between the concrete and the grass on either side. A full-resolution version (31M mpeg) is also available.


I've written some e-mail in response to questions about the robot concerning things that I haven't fully documented.  These include a PID speed controller, shaft-encoder Odometry and dead-reckoning, and stereo Sonar. There is a more comprehensive article on odometry and navigation that focuses more on the jBot robot, but includes SR04 software examples. I also have a new article on the Subsumption Programming for SR04 and jBot.

Back to my robots homepage.

(c) 1993-2013 SMU and David P. Anderson
Last update 07 July 2013 dpa