Software Setup
This section prepares the host PC, the computer that runs your control software and communicates with the Arm Controller.
What You Need
To get started, please make sure you have gone through the Hardware Setup.
PC Network Setup
The Trossen Arm Controller communicates with the Linux PC via Ethernet. As a result, the following network configurations are required on the Linux PC.
IPv4 Method: Manual
IP Address: Any unused IP addresses under the same subnet as the Arm Controller, e.g.,
192.168.1.1Subnet Mask: The same subnet mask used by the Arm Controller, e.g.,
255.255.255.0Other settings (Gateway, DNS, etc.) can be left as default
Note
Per factory settings, the Arm Controller uses
IPv4 method: Manual
IP address:
192.168.1.2Subnet mask
255.255.255.0Gateway:
192.168.1.1DNS:
8.8.8.8
Installing the Drivers
A Trossen Arm can be controlled using either the C++ or Python driver.
Supported Platforms
Below is a list of compatible platforms for both the C++ and Python driver:
Ubuntu 20.04 |
Ubuntu 22.04 |
Ubuntu 24.04 |
MacOS 14 |
MacOS 15 |
|
|---|---|---|---|---|---|
x86_64 |
✅ |
✅ |
✅ |
||
arm64/aarch64 |
✅ |
✅ |
✅ |
✅ |
✅ |
Build System and Dependencies
The Trossen Arm Linux C++ driver is distributed from a build on Ubuntu 20.04 that links to glibc 2.31. It is provided as a static library and is statically linked to the following libraries:
Dependency |
Version |
|---|---|
Eigen3 |
3.4.0 |
spdlog |
1.15.3 |
yaml-cpp |
0.8.0 |
tinyxml2 |
9.0.0 |
console_bridge |
1.0.1 |
urdfdom_headers |
1.0.5 |
urdfdom |
4.0.0 |
pinocchio |
3.4.0 |
Boost |
1.71.0 |
Python wheels are built for Python 3.10 ~ Python 3.13 on the supported platforms.
Python
To install and use the Python driver, follow these steps.
Set up a virtual environment (optional)
Some of the popular package and environment management tools are listed below. Please setup one that suits your needs.
Install the driver
pip install trossen-arm
If you are using uv, add it to your project instead:
uv add trossen-arm
Run a script
python3 my_script.py
C++
To install and use the C++ driver, follow these steps.
Clone the repository
git clone https://github.com/TrossenRobotics/trossen_arm.git
Install the driver
cd trossen_arm mkdir build cd build cmake .. [-DCMAKE_INSTALL_PREFIX=/path/to/install] make install
If the
CMAKE_INSTALL_PREFIXargument is specified, the driver will be installed locally.static library and cmake configurations:
/path/to/install/libheader files:
/path/to/install/include.
Otherwise, the driver will be installed in the default locations.
static library and cmake configurations:
/usr/local/libheader files:
/usr/local/include.
Build a script
Here is the file structure of a minimal CMake project.
my_project/ ├── CMakeLists.txt └── my_script.cpp
The CMakeLists.txt file should have the following content.
cmake_minimum_required(VERSION 3.10) # Set the project name and version project(my_project VERSION 1.0) # Specify the C++ standard set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) # Find the libtrossen_arm package find_package(libtrossen_arm REQUIRED) # Add the executable for the test add_executable(my_script my_script.cpp) # Link the libtrossen_arm library to the executable target_link_libraries(my_script PRIVATE libtrossen_arm) # Install the executable install(TARGETS my_script DESTINATION bin)
Build the project.
cd my_project mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install make install
Run the executable.
./path/to/install/bin/my_script
Arm Network Setup
As stated above, the Arm Controller uses the following factory network settings:
IPv4 method: Manual
IP address:
192.168.1.2Subnet mask
255.255.255.0Gateway:
192.168.1.1DNS:
8.8.8.8
You may want to change the Arm Controller’s IP address to fit your application, for example to support multiple arms or to assign a static IP on your local network. To change the IP address, follow the set_manual_ip demo.
Tip
If you have a kit and are using a Trossen-supported framework like LeRobot, the expected IP addresses are:
Leader Left |
|
Leader Right |
|
Follower Left |
|
Follower Right |
|
Video Overview
What’s Next
After setting up the software, let’s configure the arm for your specific application. If your driver and Arm Controller firmware versions do not match, see Firmware Upgrade first.