Robot Inspiration Series #3: Self-Balancing Wheeled Robots - Part 3

Building a self-balancing NXTway robot is not so hard, as shown in this tutorial. The completed NXTway robot will be able to move forward and turn (to avoid objects).
For this tutorial, you will need:
- HiTechnic gyro sensor
- RobotC installed on your computer (you can download it here).
Step one:
Build the robotic platform. You may use your own idea or use the instructions provided below.
Here are some tips if you decide to build one yourself:
- Wheel size is important. I first tried wheels that were too big and the robot just flopped on its face. Why? The program I used was design for wheels of a specific size, hence wheels that are too small would also not work.
- Wheel spacing must be also considered if you want your robot to turn. If the wheels are further apart, then the robot needs more rotations to turn; if the wheels are closer together, then the robot needs fewer rotations to turn.
- Orientation of the gyro sensor is also important; if it is incorrect, the robot will fail to balance. For the correct orientation, see in the pictures below.
Here are the instructions for the simple NXTway I made:
For this tutorial, you will need:
- HiTechnic gyro sensor
- RobotC installed on your computer (you can download it here).
Step one:
Build the robotic platform. You may use your own idea or use the instructions provided below.
Here are some tips if you decide to build one yourself:
- Wheel size is important. I first tried wheels that were too big and the robot just flopped on its face. Why? The program I used was design for wheels of a specific size, hence wheels that are too small would also not work.
- Wheel spacing must be also considered if you want your robot to turn. If the wheels are further apart, then the robot needs more rotations to turn; if the wheels are closer together, then the robot needs fewer rotations to turn.
- Orientation of the gyro sensor is also important; if it is incorrect, the robot will fail to balance. For the correct orientation, see in the pictures below.
Here are the instructions for the simple NXTway I made:
(click on picture for a larger view)

Step 2:
You will need to program your NXTway. We will use a motion control algorithm that was created by Ramin, which works quite well -- much appreciation to you, Ramin, for making it available. Copy Ramin's program from here and paste it into the RobotC programming environment. Compile and download the program to NXT.
Step 3:
To operate your NXTway, you can follow these steps:
(1) Hold the robot upright on a flat surface
(2) While holding the robot upright, run the program. The program will wait a few seconds then "beep".
(3) Once the robot "beeps", let go, and it will start to balance on its own.
That’s it!!
Happy building,
Kirk
Comments
Kirk
-Jonathan
Note that if you use the code, you must modify it slightly. The code calculates the bias for the sensor (specific value, depends on your gyro). Then however, in Ramin's code, he hard-codes his bias value, 600.5. You could either replace that with your own bias or delete that line.
Jonathan,
This nxtlog project has a nxtg program and seems to balance quite well.
However, some days ago I have tried both the robotc code and the nxtg one, and none of the example programs have worked well for me :). I'll try to find a way to get my robot balanced.
Laurens
http://mindstorms.lego.com/NXTLOG/ProjectDisplay.aspx?id=4983b6bc-3a41-4d58-b525-084a0ff01e2d
Keith
Glad you got Ramin's code to work perfectly. It worked perfect for me too - no modifications needed.
Only one modification I would like is for the program to enable the robot to be remote controlled.
Kirk
- Kirk
-Ramin
-Ramin
My computer cant go to the website http://popak.org/robot/gyro_rk4_v4.c
Can somebody send me the code, just leave a comment on this side please :D
I'll fix the server once I get home.
-Ramin
Thanks,
-Ramin
the code is in the following directory of your RobotC installation:
C:\Program Files\Robotics Academy\ROBOTC for MINDSTORMS\Sample Programs\NXT\Miscellaneous
If you still can find it email me (lesswire1 at gmail.com) and I'll send it to you.
-Ramin