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:
- PCAN-PCI
- PCAN-PCIe
- PCAN-USB
- PCAN-ISA
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 EOF 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:
./ex04_display_basic_info
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.