This is an app for controlling a robot arm with a dashboard, specifically its angle and the parameters of its PID controller.
preview.mp4
The robot runs in a separate process and it receives and send messages via a channel. The dashboard communicates with the robot via the channel, pushing new parameter updates and periodically retrieving the state of the robot.
This app showcases:
- Communication between separate entities via channels.
- Using asynchronous tasks for running long processes.
- High-frequency plot updates in real time.
Clone the repository and install the dependencies:
First cd
into the project directory then run:
$> julia --project -e 'using Pkg; Pkg.instantiate()'
Then run the app
$> julia --project
julia> using GenieFramework
julia> Genie.loadapp() # load app
julia> up() # start server
Open your browser and navigate to http://localhost:8000/