Ubuntu 20.04, low-latency, non-realtime

Start by installing Ubuntu 20.04. If you are using Linux to write the downloaded ISO to a flash drive, this is probably the command you need:

sudo dd bs=4M if=ubuntu-blah.iso of=/dev/sdb status=progress oflag=sync

...but use 'lsblk' before and after plugging in your flash drive to ensure it really is /dev/sdb!

Install Peak CAN card hardware:


NOTE: These cards are supported by the SocketCAN driver built into Linux, however, we have found that the SocketCAN txbuffer can occasionally fail to send CAN frames without reporting an error, and this causes the WAM to E-Stop itself unexpectedly. This can happen a few seconds, a few minutes, or even several hours after starting a WAM application. Fortunately, Peak offers an alternative driver (pcan) which is still socket-based but avoids this SocketCAN bug. Do not install any Peak software now. We will install the pcan driver later, below.

Then install git:

sudo apt install git

Download the libbarrett source code:

cd && git clone https://git.barrett.com/software/libbarrett

Install the libbarrett software dependencies and scripts. This will replace the standard kernel with one compiled for low interrupt latency.

cd ~/libbarrett/scripts && ~/libbarrett/scripts/install_dependencies.sh

Reboot into the new kernel (after reboot, "uname -r" should show "lowlatency"):

sudo reboot

Build and install the Peak pcan driver:

sh ~/libbarrett/scripts/install_pcan.sh

For PCAN-ISA only, manually configure the driver (not plug-and-play):

sudo tee /etc/modprobe.d/pcan.conf <<EOF
options pcan type=isa,isa io=0x300,0x320 irq=7,5
install pcan modprobe --ignore-install pcan
echo 'pcan' |sudo tee -a /etc/modules-load.d/modules.conf

Reboot to use the new CAN driver (after reboot, both "cat /proc/pcan" and "ifconfig" should list can0):

sudo reboot

Build libbarrett (using clang):

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
cd ~/libbarrett && cmake .
make -j$(nproc)

Install libbarrett:

sudo make install

Build the libbarrett example programs:

cd ~/libbarrett/examples && cmake .
make -j$(nproc)

Get the WAM ready:

  • Connect the WAM's CAN cable to the first port of your CAN device.
  • Turn on the WAM.
  • Ensure both E-Stop buttons are released by turning them a quarter-turn clockwise.

Then run an example program:


Press Shift+Idle on the WAM's Control Pendant to exit this application.

Installing ROS

If your application is based on ROS, you can continue by installing ROS Noetic.

Then install our barrett-ros-pkg.

Last modified 3 years ago Last modified on Apr 29, 2021, 2:25:28 PM