Connecting Baxter with workstation
When you are done with your research sdk setup, you are ready to connect the baxter to your workstation to program baxter. First we will discuss how to coneect baxter from your linux machine which is set up alone or dual boot with windows, not from any vmware. It is possible to connect baxter from a linux set up in vmware but it might have some network issues, and will unable to registrar with the master node running on baxter. So we will go for the way linux set up directly on your machine.
Step 1: you need to have avahi-daemon installed on your linux. Avahi is a Multicast DNS Service Discovery. It allows programs to publish and discover services and hosts running on a local network with no specific configuration. For example you can plug into a network and instantly find printers to print to, files to look at and people to talk to. If your machine doesn't have avahi installed, do it by
sudo apt-get install avahi-daemon
this will install the avahi-daemon on your machine.
Step 2: Make sure you have edited your baxter.sh script to communicate your baxter properly. You need to know either the hostname or ip address of your baxter, to communicate with it. You can know both the information from field service menu or your baxter catalog. For accessing field service menu, you should connect a usb keyboard to the baxter's usb port and repetedly hitting the clt+f8 button during booting, it will open the field service menu, and you will be able to know the information.
This is important to remember, either you set baxter's hostname or baxter's ip in the baxter.sh script. Setting up both the variable will cause networking error. So though you have both fields in the script, comment out one, and use the other one. I would prefer to use the hostname. You need to add .local after the hostname you got from baxter. For example the hostname would be 011403P0022, and you should use 011403P0022.local in the script. So in the script
# Specify Baxter's hostname
baxter_hostname="baxter_hostname.local" in this case it would be
The one other thing you need to specify in your script is “your_ip”, which you need to leave empty now. This needs to be remembered that, you can not set any of your workstation ip on that script. This will not work. You need to obtain a temporary ip using avahi-daemon and put that ip on your_ip fields. Lets see how to get it.
Step 3: Avahi configuration steps are given below: Shutdown Baxter and disconnect ethernet cable. Connect the laptop/workstation to Baxter using a Category-5 ethernet cable. Power up Baxter. Disable firewall of the laptop using
$ sudo ufw disable
Turn off the Ubuntu Network-Manager to prevent interference. Go to the Networking Icon drop-down menu in the top-right of the Desktop. Make sure 'Enable Networking' is unchecked (if checked, select the option in the menu to disable) You can check status of eth0:
$ ifconfig eth0
You should not see any IP addresses under 'inet'. Use Avahi to designate an IP address to eth0 (do not close the terminal after running avahi-autoipd):
$ sudo avahi-autoipd eth0
Make sure an IP address is successfully claimed. eg:
Found user 'avahi-autoipd' (UID 104) and group 'avahi-autoipd' (GID 111). Successfully called chroot(). Successfully dropped root privileges. Starting with address 169.254.8.16 Callout BIND, address 169.254.8.16 on interface eth0 Successfully claimed IP address 169.254.8.16
Keep this Terminal running in the background. Open a New Terminal to continue. Find the local hostname of the robot by running avahi-browse:
$ avahi-browse -a -r
The default local hostname of the robot is hostname of your robot. Ex: '011303P0017.local' which is you obtained earlier from field service menu and put in the baxter.sh script . You can ping the baxter's hostname and ip address from your laptop, and it should be successful. Check out the terminal where your run the avahi and you will get an ip address claimed, put that ip address in “your_ip” fields in the baxter.sh script.
Initialize the environment with $ ./baxter.sh
You should be able to run any program from your workstation now.