Software
The testbed software communicates with the testbed hardware.
The majority of the testbed control software is ROS-based, although there are some peripheral utilities which run outside of ROS for simplicity. The ROS-based software driver speaks to the motors and interfaces with the ROS Control stack to allow the testbed to be driven by tools like MoveIt!.
The file software archiecture is described in the detailed software description
The core Testbed software is stored in two Gitlab repos:
- testbed_hw is concerned with driving the actual Testbed, including communicating with the Clearpath motors.
- testbed_sw contains configuration files which describe and configure the testbed. Some configuration is specific to the hardware testbed (for example, which Clearpath motors drive which axes). Other configuration files are used for Gazebo simulation, and some are used for for hardware and sim operation.

1 - Testbed Software Installation
Software installation for the testbed
Install the ROS software
These instructions assume you have at least a basic ROS install, C/C++ compilers, etc
Get prerequisities:
apt install -y python3-vcstool
On a system running ROS Noetic, create a ROS workspace and checkout out testbed_hw
:
mkdir -p testbed_ws/src
cd testbed_ws/src
git clone https://gitlab.com/rsa-manipulation-testbed/testbed_hw
Then checkout the other dependencies using the .rosinstall
file found in that repo, then use rosdep
to get any other dependencies
cd ..
vcs import testbed_hw/testbed_hw.rosinstall
rosdep install --ignore-src --from-paths . -y
Then build:
Install the Clearpath Device Driver
The Clearpath communication hub requires a special device driver. This must be built and installed manually any time the system kernel is updated. If the driver is not installed, the system hub will show up as a /tty/devACMx
device. If installed properly, the hub will show up as a /dev/ttyXRUSBx
device.
A short script install_kernel_modules.sh
is included in testbed_hw/clearpath_sc_ros
which will automate this building process. It can be run from a checkout of tha repo or:
wget -O - https://gitlab.com/rsa-manipulation-testbed/testbed_hw/-/raw/main/clearpath_sc_ros/install_kernel_module.sh | /bin/bash -
Configuration
Most system configuration is centralized in the testbed_sw
repository. This repo contains multiple sub-packages:
Most of the configuration should be set to appropriate default values, with the exception of the Clearpath motor mapping, which must be set for each Testbed site.
Motor mapping
The software must be told explicitly which Clearpath motors correspond to which testbed axes. This is done through a config file in testbed_config
called {TESTBED_SITE}_config.yaml
where {TESTBED_SITE}
is a descriptive name for a given testbed installation.
The file contains four config params which give the Clearpath serial number fo the for axis. For example uwapl_config.yaml
is:
#
# Clearpath motor serial number for APL Testbed
#
yaw_sn: 70403992
zaxis_sn: 73003302
corexy_a_sn: 65800963
corexy_b_sn: 66102023
The testbed.launch
assumes that the argument testbed_site
is set, or as a default will look for an environment variable TESTBED_SITE
!!! We strongly suggest that the environment variable TESTBED_SITE
be set automatically on the user account/computer which drives the testbed.
Clearpath motor configuration
The clearpath_config.yaml
file sets motor paramters within the Clearpath motor itself. This includes velocity, acceleration, current and jerk limits. As these limits are set in the motors they are absolute limits on motor performance.
ROS Controller configuration and tuning
The testbed_controllers.yaml
file describes the motor control interfaces exposed by the Testbed to the ROS Control system. Since the testbed uses position control loops which run within ROS this includes PID parameters for those control loops, as well as joint limits to be enforced by the software controllers.
2 - Bravo Manipulator Driver
Software installation for the Bravo Manipulator
Follow the steps listed in the README.md for intial usage of the Bravo manipulator.
3 - Tuning Testbed Motors
Download Clearpath software and run the auto-tune software
Teknic offers a software API to interface directly with their integrated servo motors. Amongst many actions within the software, there is an Auto-tune command sequence that enables tuning of individual motors based on their mechanical setup.
Download the ClearView software by:
- Registering an email with Teknic to access the software and documentation.
- This software can be found on the Teknic Downloads page.
- Clicking the dropdown menus labeled ClearPath/Software/ClearPath-SC Series Motor Setup…
- Download and install the ClearView software for your respective computer operating system.
- There is also the option to download and install the stand-alone USB port for communicating with the ClearPath-SC motors if not using a computer that does not have ClearView installed. An instance of this installation is performed in the Software/Testbed Software Installation instructions.
Run the Auto-tune command:
- Plug the Comms board into your computer.
- Power on the servo motors and Comms board.
- Open ClearView.
- Select the motor you want to tune.
- In the upper-menu boarder, select the dropdown menu Setup.
- Select Auto-tune….
- Follow the API instructions to complete this function.
Be aware that the auto-tune function will toggle motion on the selected servo. Be sure to stay away from any moving parts and that the servo axis is clear of any obstructions to avoid collisions.