The Smalldog Project at DFRobot


BigDog is a dynamically stable quadruped robot created in 2005 by Boston Dynam-ics with Foster-Miller, the NASA Jet Propulsion Laboratory, and the Harvard University Concord Field Station. BigDog is 3 feet (0.91 m) long, stands 2.5 feet (0.76 m) tall, and weighs 240 pounds (110 kg), about the size of a small mule. It is capable of traversing difficult terrain, running at 4 miles per hour (6.4 km/h), carrying 340 pounds (150 kg), and climbing a 35 degree incline. Locomotion is controlled by an onboard computer that receives input from the robot's various sensors. Navigation and balance are also managed by the control system. (From Wiki).


As for research purpose, Boston Dynamics develop a small version of the Big Dog, which is named as LittleDog. LittleDog has four legs, each powered by three electric motors. The legs have a large range of motion. The robot is strong enough for climbing and dynamic locomotion gaits. The onboard PC-level computer does sensing, actuator control and communications. <File:smalldog4.jpg>

<File:smalldog5.jpg> <File:smalldog6.jpg>

SmallDog from DFRobot

The SmallDog developed by DFRobot composed of a main platform, serves as body, and four legs, each powered by three servos. The servo we choose here is CDS 55XX, produced by Up-tech. As for the on-board micro-controller, we use the powerful DFRduino Mega board with an expansion shield, which could realize the control of different gaits and behaviors of the robot. A wireless programmer module is also added to the robot, so that we could realize remote control of the robot through a joystick.

For the Version 1, our smalldog just like a baby dog who could take some simple actions that move forward, step backward, turning, squat down, lie down and so on. It also has a system of variable speed. That is to say it can walk very slowly like a worm or move fast vigorously.

For more advanced version,the dog can be control by a joystick or even by human voice. With proper sensor, we could also realize its auto movements, which enables the dog to avoid obstacles by itself. Xbee modules are applied in order to improve the accuracy of wireless communication. A MP3 module is also added that enables the dog bark!


How to assemble a Small Dog (Basic Version)

First choose the appropriate servo disk and put it on servo.

<File:smalldog8.jpg> Then put the servo into the servo-bracket. Please pay attention to the installation direction of them. <File:smalldog9.jpg>

All of the 12 servos should be assembled in the same way. At the same time, we must put two separate servo brackets together to make the leg of the dog.



Next, put in the servos in the brackets. Also, here we must pay close attention to the installation direction.



As we have made the legs, we should think about how to fix them to the body. We use the following two pieces,


and assemble them in the way as:

<File:smalldog15.jpg> Then put in the servo, as the hip of the dog. <File:smalldog16.jpg>

As for the foot, we choose certain part to simulate real dog’s foot. While assembling, we should still pay attention to the direction.


Then put it on the leg. Here we the long orange joint lock to stabilize the connections.



After fixing them with the hip part, then an intact finishes.


And in order to communicate with the micro ship, some cables are essential. From the user manual of the servos CDS55XX, we get the typical connection diagram as follows:


So considering we only use three servos for each leg, we need three cables.


Assemble other three legs in the same way. Then what left is an easy task, to make a body for our dog. Here we use two big carriages, connected by some interconnecting piece.

<File:smalldog24.jpg> <File:smalldog25.jpg>

Assemble the four legs on the four angels of the body, then the small dog come into being. <File:smalldog26.jpg> <File:smalldog27.jpg> <File:smalldog28.jpg>

Advanced Version

File: New_Version_Small_Dog.JPG File: New_Version_Small_Dog_2.JPG File: Zuo_Small_Dog.JPG File: Pai_Small_Dog.JPG File: Shou_Small_Dog.JPG

For the advanced version, I add a Voice Recognition module. Based on this module, the advanced version of Small Dog could be controlled by human voice. The module is based on an Arduino Uno board, then the Voice Recognition board and on the top is an I/O Expansion shield, with a Xbee module on it.

<File:Voice> Recognition_Small Dog.JPG

Now we have the following instructions to command the dog to behave in a certain way (all the instructions are spoken in Chinese Mandarin):

(1) "Kai": To make the dog move automatically

(2) "Ting": Stop all the movement

(3) "Chu Shi": Initialize the position of 12 servos

(4) "Qian Jin": Move forward

(5) "Hou Tui": Move backward

(6) "Zuo Zhuan": Turn Left

(7) "You Zhuan": Turn Right

(8) "Pa Xia": Lie Down

(9) "Zuo Xia": Sit Down

(10)"Wo Shou": Shake Hand

(11)"Pao Bu": Accelerate

(12)"Man Zhou": Decelerate

(13)"Qi Li": Stand up

In order to realize its auto movements, we need a sensor to collect the distance between the robot and the surrounding obstacle. Here we use "URM05 High Power Ultrasonic Range Finder" and a servo to detect the distance in different directions. File: Sensor_Small_Dog.JPG

Our dog cannot be a mute, so we use a DFRduino Player and a loud speaker to enable the dog to bark. <File:Mp3_Module_Small_Dog.JPG>

Our Dog could be controlled by a gamepad. Here we use the left stick to control the direction and the right stick to control the speed. Other buttons are attributed different roles such as to present various behaviors. File: Gamepad_Small_Dog.JPG

Existing Problems & Potential Solution

1. The gait of the dog is not perfect, sometimes it cannot move straight forward and would turn left automatically; this could be improved by adjusting the parameters of servos.

2. Although through the voice recognition part we realize the voice control, there always exists noise and disturbance; If on the newer version, the MONO port could function well, then the voice control should be improved with less noise.The other way is to increase the complexity of voice instruction, adding more words to it.

3. The current Voice Recognition only supports Chinese, which means all the commands should be given in Chinese Mandarin.

4. There are real-time problems when the dog control by joystick or voice.

5. In order to realize its full function, four batteries with 7.4V are needed, which results in an increase in the total weight of the robot. If there are batteries provide enough energy but less heavier, the problem will be solved.

Sample Code

1.Libraries needed for Small Dog

2.Sample Code for Small Dog should be uploaded to the Mega on the Small Dog

3.Code for GamePad includes the codes that should be uploaded to Wireless GamePad

4.Code for Voice Control Module includes the codes that should be uploaded to the arduino which contains a DFRduino Player board