Robot Hardware

Most of the hardware on the robots is auto-detected and automatically set up when you install a standard (in this case RedHat) distribution of Linux. There are, however, a few exceptions.

Orinoco Wireless

The basic problem is an IRQ problem. The wireless card must use IRQ 7. Normally, this IRQ belongs to the parallel port, but the parallel port should be disabled in the BIOS (make sure). Then to tell Linux about this, you have to edit several files:
  • /etc/pcmcia/config.opts
    • uncomment exclude irq 4
    • uncomment exclude irq 4
    • comment exclude irq 7
    • find the line that starts module "wvlan_cs", make sure there's only one, and make that line read:
      module "wvlan_cs" opts "irq_list=7 eth=0"
  • /etc/pcmcia/wireless.opts
    Find the line that says *,*,*,00:60:1D:*|*,*,*,00:02:2D:*).
    • Underneath that line, find the line that starts ESSID= and make it ESSID="CSE" (or ESSID="irish" if you're downstairs).
    • Underneath that line, find the line that starts MODE= and make it MODE="Managed"
    • Underneath that line, find the line that starts RATE= and make it RATE="auto" (and make sure it's uncommented)
    • Underneath that line, comment out the line KEY="s:secu1"
  • (OPTIONAL) /etc/pcmcia/config
    Find the line that says card "Xircom RBN56G Modem" and comment it out, as well as all lines between it and the line that says # Include configuration files for add-on drivers
  • /etc/sysconfig/network-scripts/ifcfg-wvlan0
    Make that file read:
    DEVICE=wvlan0
    BOOTPROTO=dhcp
    #IPADDR=129.74.202.
    #NETMASK=255.255.255.0
    ONBOOT=yes
    USERCTL=no
    
  • /etc/sysconfig/network
    Add to this file: GATEWAYDEV=wvlan0 and GATEWAY=129.74.202.250 (make sure that's the right IP address for the gateway).

Camera/Tuner/bttv/bt848

The camera problem is somewhat simpler, particularly if you're using a 2.4.x kernel (which you should be). On older kernels, you had to use ActivMedia's specifically modified bt848 driver, plus a dmaBuffer patch they provided (that or a bigphysarea patch). BUT, since you're using a 2.4.x kernel, you don't have to worry about any of that stuff, because the ActivMedia software can just use the built-in v4l Linux kernel video drivers. You have to compile your kernel to enable the v4l subsystem, as well as the i2c subsystem (make sure you enable the "bitbangers" i2c module), and the bttv module. Then edit /etc/modules.conf. The RedHat (or other linux) installer should have put a line in there that says alias char-major-81 bttv. If that line isn't in there, add it. Then add another line: options bttv card=29. (The 29 is specified by what specific kind of bt848 video card you have. The bttv driver documentation has the full list, if you're curious, but the ActivMedia robots come with #29.) That's it, it should work. You can (install and) launch xawtv to test it (it's a simple framegrabber program).

If you want to use ActivMedia's ACTS software with the card, you'll need to tell ACTS how to get frames from the card. After running ACTS once, it should generate a file ~/.ActivMedia/Acts.pref. Edit this file, and change the line that starts FrameGrabberStr to read FrameGrabberStr /dev/video0. Then change the line that starts FrameGrabberChannel to read FrameGrabberChannel 0. (If either or both of these lines don't exist, add them.)

Laser Range Finder

The Laser Range Finder (LRF) is connected to the third serial port on the robot's PC (NOT connected through the AUX port on the robot itself, which is only accessable through the P2OS GETAUX command).