Visibot — a Development Environment for Robotics
Visibot is a programming language and visual environment for controlling robots. It has automatic recalculation like a spreadsheet, and:
Cells contain a time series of values. Just as a cell can refer to the current value of another cell, it can also refer to a past value, like
Every tick, robot sensor values are streamed into specially named cells, the sheet is recalculated, and actuator cells are streamed to the hardware. It can run fairly large spreadsheets in real time -- say 10000 cells at 100 Hz.
When controlling simulated harware, it can run hundreds of simulations in parallel to explore variations in parameters or different random events.
It has built-in types and functions for robotics, including matrix arithmetic, control theory blocks like low-pass filters, and 3D graphics functions for visualizing robot movement.
The video below is an 8 minute demo of controlling biped robot hardware.
New: You can try Visibot in your browser. Start with a simple example: the classic Lorenz system of chaotic differential equations. Try tweaking the parameters (shift-2-finger-drag over the blue parameter knobs) to see the solutions change.
Then, try a bigger example. A simulated Pong game has two automated players. To see a game in real time, press Shift-left arrow to go to time 0, then hold down the right arrow key to advance time. Then check out the policyTerrain cell in the bottom left. The false-color topographic map shows score vs. movement speed for the two players. You might grok the shape of the surface more easily by using Command-2-finger-drag to rotate the sheet around.
Then, try controlling a simulated humanoid robot (from Mujoco):
- Just the robot with no controls. It quickly faceplants.
- Robot with a simple controller that stands and balances.
- Walking and balancing.
There are also more examples
If you log in, you'll be able to save any changes to the sheets and share them around by sending URLs.
Since you probably don't have a compatible biped robot (yet), there are some standalone examples in the examples directory.