Repository of the software used for the practical sessions of the course "Haptic Human-Robot Interfaces". This includes the firmware of the control board, and the remote control application that runs on a PC.
Recent Commits
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
acbe85833c33 | rbaud | [CPP] Fixed compilation error with LLVM on MacOSX | Feb 6 2019 | ||||
ab0609bbafba | rbaud | [CPP] Fixed minor warning with clang | Feb 6 2019 | ||||
dd66314bc6ee | rbaud | [CPP] Fixed compilation issues with latest version of Qt | Feb 6 2019 | ||||
a65441b16f03 | rbaud | [Firmware] fixed wrong LED PWM frequency | Jun 14 2018 | ||||
bcafaf743972 | rbaud | [CPP] Fixed GUI freeze when ending the pause | Apr 12 2018 | ||||
58f7a79c0488 | rbaud | [CPP] fixed GUI freeze when writing while streaming | Feb 27 2018 | ||||
ed6bb64b5dfe | rbaud | [Firmware] SyncVar to set haptic controller timestep | Feb 27 2018 | ||||
941cdeaa6b36 | rbaud | [Firmware] code cleaning | Feb 27 2018 | ||||
5d41d17aa27c | rbaud | Increased max amount of SyncVars | Feb 6 2018 | ||||
2423bf098368 | rbaud | [Firmware] fixed missing linker options for math | May 30 2017 | ||||
9bce6557c720 | rbaud | [Firmware] improved the IMU read performance | May 24 2017 | ||||
97d013a6d9e4 | rbaud | Fixed issues occuring when there are many SyncVars | May 13 2017 | ||||
0b9adeeb2eb0 | rbaud | [CPP] updated the example application | May 8 2017 | ||||
dd9742905126 | rbaud | [MATLAB] added example script for the board lib | May 8 2017 | ||||
c54dbc0ecac9 | rbaud | [CPP] HriPcController: show values when streaming | May 8 2017 |
README.md
HHRI-Software
This is the software developed for the lab sessions of the "Haptics Human-Robot Interfaces" course. The most important part is the firmware of the board that controls the paddle. Two interfaces (C++/Qt and MATLAB) are also available to communicate remotely with the board.
Environment setup
Project source code
First, clone the repository using the following command: git clone ssh://git@c4science.ch/diffusion/2671/hhri-software.git.
Firmware developement environment
- Download and install Java runtime environment from Oracle's website:
http://www.oracle.com/technetwork/java/javase/downloads/index.html For Windows, the "JRE" is sufficient, but you need the "JDK" for MacOSX.
- Download and install the System Workbench IDE:
http://www.openstm32.org/Downloading+the+System+Workbench+for+STM32+installer
- Connect the ST-LINK programmer to the computer. In case it is not recognized (check in the device manager), download and install the driver. This step is not required with MacOSX.
http://www.st.com/en/embedded-software/stsw-link009.html
- Download, extract and install the USB drivers for the HRI board (more specifically, for its USB-to-UART chip). This step is not required with MacOSX.
https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
- Import the Firmware project (HHRI-Software/Firmware/.project) into System Workbench.
MATLAB interface
MATLAB 2016b (or later) is required. The only necessary toolbox is the "Instrument Control Toolbox".
C++ interface
Go to https://www.qt.io/download-open-source/, download and install the Qt development environment for Desktop PC. When in the “Select Components” page, choose the following items:
- Qt 5.8 (or a later one if available):
- MinGW 5.3.0 32 bit (or a later one if available).
- Qt Charts
- Tools:
- MinGW 5.3.0 (the one that matches your Qt version).
- Source code organization
- Firmware/: source code of the firmware of the motorboard. Most of the work during the lab sessions will be performed in the file Firmware/src/haptic_controller.c. The Doxygen code documentation can be found in Firmware/doc/firmware_documentation.html.
- CPP/: contains a ready-to-use graphical user interface similar to the MATLAB one, and an example project that shows how to make a custom user interface. The latter will be useful for some specialization projects, if high performance is required. The Doxygen code documentation can be found in CPP/doc/cpp_interface_documentation.html.
- MATLAB/: mainly contains a library and a graphical user interface to interact with the board (hri_gui.m).
Support
Please contact Romain Baud for technical support, or to report bugs.
Contributing
Please clone the repository, make a new branch, and send your patch files for review to Romain Baud.
Licence
This project is distributed under the Apache License, Version 2.0. More information can be found in the NOTICE and LICENSE files.