The RoboHUD GUI stack provides a user interface for controlling a robot running on any Dynamixel servos. Currently, the GUI is undergoing a major redesign, with the following functionality currently implemented:
- Support for any Dynamixel running either protocol 1 or 2 (and both at the same time)
- "Remote Dynamixel Wizard", to control every item in a servo's control table
- Graphical creation of robots, with custom group mapping
Features on the roadmap (may be already implemented, check the projects page for more current information):
- Controller configuration & profiles
- Custom sensors & graphing
- Multiple camera streams
- Gyroscope/accelerometer/magnetometer positional visualisation
- Full customisability through settings
If you have any issue with the software, please feel free to create an issue, and we can take a look at addressing your problem. To view the currently tracked bugs, take a look at the bugs project page. There is also a feature requests project if you would like to see what other people are asking for!
If you have an idea and don't need much guidance - great! The specifications document might have some useful information surrounding more detailed information, so you don't have to go looking through the code.
Check the feature requests project, or the issue tracker. Take a look around, ask questions, and see what interests you! Additionally, you can always come down to TG11 to have a chat, see what we're working on and discuss what you can contribute.
The work-in-progress guide may also be of some help for those starting development.
The file lint.py can be utilised to easily lint code that you have been working on. For example, if you want to lint your HTML file and supporting JS file, you can use the following code:
python3 Scripts/lint.py App/index.html App/JS/client.js
Once your code has been written, make a pull request so that your contributions can be merged into the repository's master branch!
There are multiple options for installation. With the installation script, you can install the client and/or the server software. To do so, simply use the provided installation script in Scripts/install.sh.
To install the GUI on a UNIX-based system (Linux or MacOS), run the following command:
curl -o- -L https://raw.githubusercontent.com/CCGSRobotics/RoboHUD/master/Scripts/install.sh | sh
To copy the server across to the robot, you will need to have run the necessary setup scripts, so that the SSH server and WiFi are properly configured. To install the server, make sure that you are in the RoboHUD directory cd RoboHUD/
and run the following command, making sure to replace HOSTNAME with the robot's hostname (in most cases this will be pi@192.168.100.1):
cd RoboHUD; chmod +x Scripts/install.sh && ./Scripts/install.sh -o -h HOSTNAME
The hostname is made up of 2 parts: the username (usually pi) @ the ip address (usually 192.168.100.1). That is why the standard hostname is pi@192.168.100.1.
To install both parts of the GUI, run:
curl -o- -L https://raw.githubusercontent.com/CCGSRobotics/RoboHUD/master/Scripts/install.sh | sh -ss -- -h HOSTNAME
As mentioned previously, the script is located in the Scripts directory, for use when the GUI is already downloaded (as demonstrated in Installing the server).
Screenshots are soon to come! :)