Here is a version of the simulator for those of you who don’t have a joystick. The more experienced of you might already have noticed from the plot that the derivative gain is too high. You can find the code here.
The T-Bot simulator allows you to stabilise the T-Bot manually or use a cascading PID controller. The program allows you to develop an intuitive understanding of the stabilisation process and tuning of a balancing robot.
The macro plotter allows you to display a plot built from the recorded macro commands. This is very useful for exploring open loop control. You can run the T-Bot over a known route and compare the plot to the actual path taken. The rotation rate and speed factor on the slider bars are used to compensate for the real turning rate and speed of the T-Bot. The control values received by the robot are integers ranging from 100 to 300 with 300 corresponding to a maximum speed in one direction and 100 corresponding to a maximum speed in the opposite direction. The speeds are going to be effected by several factors such as trim, surface, slope, tuning, calibration etc.
Here is a keyboard and mouse controller for those of you who don’t have a physical joystick. This is simpler than the one found here and is easier to customize. You can find it in our GitHub Repository. Note this version does not have macro recording.
A convolution function is used to identify each of the tile types. A difference function is used to determine the grid shape. The zebra tile is taken as the starting position then some logic is used to step through neighbouring tiles. The code can be found here.
This Python code allows you to use your generic joystick or PS3/PS4 controller to control your T-Bot while streaming video in real time from the T-Bot’s helmet camera. This has been bench marked on the Raspberry Pi 4 at 30 fps. You can find it here: