Basler GigE cameras, aravis, ROS

These are some basic instructions for setting up the Basler Ace GigE cameras (A640) to work with ROS Kinetic on Ubuntu 16.04. We use the driver Aravis. Aravis changed the API at some points, and the available ROS nodes have not been well maintained. Thus, we will use older code sets to get things working.

1. Install some necessary packages:
sudo apt-get install intltool gobject-introspection gtk-doc-tools

2. Download an older version of aravis (0.3.7) here:
ftp://ftp.acc.umu.se/pub/GNOME/sources/aravis/0.3

3. From inside the aravis_0.3.7 directory, run the following commands:
./configure
make
sudo make install

4. Now you will need to set up your ethernet interface.
4a. Install a dhcp server: sudo apt-get install isc-dhcp-server
4b. Check your interfaces by running ifconfig. Note the interfaces (e.g. eth1, enp3s0f1, etc.) that correspond to the port where you intend to plug in your camera.
4c. Edit the following files, using the linked github files as templates. The …93… in the ip addresses can be whatever you like, so long as it does not collide with other ip’s on the local network.
i. /etc/network/interfaces
ii. /etc/default/isc-dhcp-server
iii. /etc/dhcp/dhcpd.conf
4d. Restart the computer. If you have trouble connecting to the internet, try removing any mention of the interface you use to connect to the internet from the /etc/network/interfaces file.

5. Download the ROS node (git clone into your catkin workspace):
https://github.com/florisvb/camera_aravis
Note: this is forked from a no longer existing github repo, which was forked from ssafarik. I keep a copy just so I can make sure I know where to find a compatible version.

6. In ROS kinetic and newer, the driver_base stack is no longer supported, but it is necessary for the camera_aravis node. You can resolve this by manually installing the following (git clone into your catkin workspace):
https://github.com/florisvb/driver_common
Note: this is forked from ros-drivers, just so I can make sure I know where to find a compatible version.

7. From inside the catkin workspace base directory run:
catkin_make

8. If all goes well, you can now run:
roscore
rosrun camera_aravis camnode
rosrun image_view image_view image:=/camera/image_raw