Here is a version of the simulator for those of you who don’t have a joystick. The more experiences 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.
Macro recording has been added to the joystick bridge controller. This provides an excellent demonstration of open loop control. You can find it here.
Macro recording has now been added.
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:
Create your own themes for your T-Bot controller. The SVG files are available for you to play with.
The controller uses PyGame, PyBluez or Socket, OpenCV and NumPy. You can find the code here.