Skip to content

FORCESPRO

Installation

  1. Download the FORCESPRO fingerprinter for your platform from embotech (FORCES_PRO_Fingerprinter_linux_x86_64 or FORCES_PRO_Fingerprinter_mac_x86_64); it is licensed software, so it is not redistributed here. Open a terminal, navigate to the folder where the file is saved, and run the following command to obtain the system ID fingerprint:
./FORCES_PRO_Fingerprinter_linux_x86_64
  1. Run the following command to obtain the username of your local machine:
whoami
  1. Request a FORCESPRO license for your username and fingerprint. FORCESPRO is commercial software from embotech; licenses are issued through them, and academic licenses are available. Members of a group that already holds a licence should ask their own license administrator instead.
  2. Download the FORCESPRO client folder provided with your license and save it at a location of your choice.
    (Example: /home/username/Desktop/forces_pro_client)
  3. Open .bashrc in the terminal:
gedit ~/.bashrc
  1. Paste the following two lines at the end of the file (IMPORTANT: Replace the path with your path). Note that only Python 3.6 - 3.9 are currently supported. Save and close the file.
# Add FORCES to path
export PYTHONPATH=/home/username/Desktop/forces_pro_client
  1. Test if the license works and everything is working correctly. For this open a new terminal and navigate to the following folder (Remember to use replace path_to_forces with your individual path:
cd path_to_forces/examples/Python/HighLevelInterface/RobotArmRTI/
  1. Execute the python file to test the solver generation. If 3 plots appear, the installation and setup was successful:
python3 robot_sim.py

Proxy Server

To run FORCES within a docker container the use of a proxy server is necessary. The solver sends the request to the floating license proxy, which forwards the request to embotech's online servers and returns a temporary floating license to the solver. The following steps describe how to setup said proxy correctly:

  1. Download the floating-license proxy (FORCESPRO_Floating_Licenses_Proxy_Standalone_Linux.zip) from your own embotech account and save it at a location of your choice. It is licensed software, so it is not redistributed here.
  2. Navigate to the FORCESPRO_Floating_Licenses_Proxy_Server_Linux folder and open forcespro_floating_licenses_proxy.py (for example in Visual Studio Code)
  3. Go to line 37 and change the default port to 53135

Running a FORCES experiment

  1. Open a terminal and navigate to your proxy server folder. Activate the proxy server by running the python file:
python3 forcespro_floating_licenses_proxy.py
  1. Open a new terminal and navigate to your FORCES folder. Run the following command outside of docker to generate a solver:
bash src/crs/controls/car/mpc_solvers/forces/forces_pacejka_mpcc_solver/script/create_solver.sh
  1. Enter the docker environment as usual and include FORCES in the build:
crs enable_forces
crs build
  1. Run the desired experiment (in this case an example). Make sure the used solver is FORCES in the respective experiment file:
roslaunch crs_launch sim_single_car.launch experiment_name:=pacejka_mpc_forces

Additional Material