Installing and Running the Novint Falcon

Introduction

This tutorial describes how to install and run a Novint falcon in an Ubuntu virtual machine. This tutorial goes through how to do it from scratch.

Note: the libnifalcon repository is now forked here. Furthermore, the idealab_ros_tools repository now has the current working copy of the ros_falcon package in it. the original ros_falcon package has been forked and is now here

Instructions

  1. Go to the usb settings and add the falcon filter to virtualbox (‘Future Technology Devices International, Ltd FALCON HAPTIC [0400]’)

  2. open up virtualbox and check to see if it is found

     ```bash
     dmesg | grep FALCON
     ```
    
  3. install libusb

     ```bash
     sudo apt install -y libusb
     ```
    
  4. clone repository

     ```bash
     mkdir ~/drivers
     cd ~/drivers
     git clone https://github.com/idealabasu/libnifalcon
     cd libnifalcon
     ```
    
  5. follow instructions

     ```bash
     cd ~/drivers/libnifalcon
     mkdir build
     cd build
     cmake -G "Unix Makefiles" ..
     make
     sudo make install
     ```
    
  6. add device udev file from within the idealab_ros_tools repository

     ```
     #the default one doesn't seem to work
     #sudo cp ~/drivers/libnifalcon/linux/40-novint-falcon-udev.rules /etc/udef/rules.d/
     sudo cp ~/code/code_idealab_ros/src/ros_falcon/udev_rules/99-udev-novint.rules /etc/udev/rules.d/
     sudo chmod 644 /etc/udev/rules.d/99-udev-novint.rules
     sudo udevadm control --reload-rules && udevadm trigger
     ```
    
  7. run findfalcons several times until you see it

  8. add joy package

     ```bash
     sudo apt install -y ros-melodic-joy
     ```
    
  9. clone the ros falcon repository (optional, it is now located in the code_idealab_ros repository now)

     ```bash
     cd ~/
     git clone https://github.com/idealabasu/ros_falcon.git
     ```
    
  10. copy the folder into the src folder in your workspace (also unnecessary now, it is already there)

  11. Run node and view results

    1. in a new terminal:

       ```
       roscore
       ```
      
    2. run falcon node

       ```bash
       roscd ros_falcon
       # cd nodes
       #chmod +x joy2cmd_vel.py
       rosrun ros_falcon driver
       ```
      
    3. in a second terminal:

       ```
       rostopic echo /falconPos
       ```