Misc:SpinningLaser
From OpenRAVE
by Rosen Diankov
Contents |
Setting up and Working with the qwerk
- add 192.168.1.144 qwerk to /etc/hosts
- [Setup an NFS server] in /home/qwerk
- server side: add to /etc/exports: /home/qwerk qwerk(rw,no_root_squash,sync)
- server side: run export -ra
- mount on qwerk side: mount -o nolock 192.168.1.150:/home/qwerk /home/qwerk
- To reset the nfs server due to some change type
sudo /etc/init.d/nfs-kernel-server stop sudo /etc/init.d/nfs-kernel-server start
- Download the [Terk SDK]
- Read the docs/QwerkDevelopmentGuide.html in the terk SDK and install the arm tools. The kernel will have to be rebuilt with the cdc_acm module, so make sure to check out the cirrus-arm-linux kernel from the terk svn repository. Go into cirrus-arm-linux-x-x-x/linux-x.x.x.x, and during menuconfig, make sure to add
Device Drivers --->
USB support --->
USB Serial Converter support --->
<M> USB Serial Converter support
[*] USB Generic Serial Driver
<M> USB Modem (CDC ACM) support
- Now make the cirrus-arm-linux kernel and copy cdc-acm.ko and usbserial.ko modules in /home/qwerk. On the qwerk side, copy the ko modules from /home/qwerk to /opt/drivers and insmod them. Then type mknod /dev/ttyACM0 c 166 0 to create the right device.
- Download and install libltdl (the package [libextractor] has in it a libltdl folder]]). To install, type
- ./configure --build=x86-linux --host=arm-linux --prefix=/usr/local/arm/3.4
- make install.
- Note /usr/local/arm/3.4 is the directory with the cross compile tools.
- copy the resulting libltdl.so* and libltdl.a files from the cross compile directory to /home/qwerk/lib
- Download [Player] and install it to /home/qwerk by
./configure --build=x86-linux --host=arm-linux --disable-shared --disable-alldrivers --enable-urglaser --disable-debug --prefix=/home/qwerk make install
- On qwerk side in /opt/scripts/robot.init
- comment out the terkServer line, it will interfere with the qemotor driver.
- add these startup commands to end (note that the export commands have to re-executed manually)
export PATH=$PATH:/home/qwerk/bin export LD_LIBRARY_PATH=/home/qwerk/lib insmod /opt/drivers/usbserial.ko >> /opt/connectlog0.txt insmod /opt/drivers/cdc-acm.ko >> /opt/connectlog0.txt mknod /dev/ttyACM0 c 166 0 mkdir /home/qwerk
- if setting up an NFS server, use this command to load it
mount -o nolock 192.168.1.150:/home/qwerk /home/qwerk
- if all the files are on a USB drive, use
mount /dev/sda1 /home/qwerk
- if the qwerk isn't making a wired connection, try using
/opt/scripts/wiredConnect.pl eth0
- then can start the player driver with
player /home/qwerk/actuatedurg/intelactuatedurg.cfg >> /opt/playerlog.txt&
Setting up Quadrature Encoders
Unfotunately, the qwerk does not come preinstalled with quadrature encoder functionality, therefore we have to add it manually by making a new qwerk.bit file. First download Xport from Charmed Lab and the free FPGA Web Tools from Xilinx. Note that the FPGA on on the 1.2B models is Xilinx Spartan 3E XC3S100E with TQ144 packaging.
Actuated Laser Spinning
- svn checkout http://gamedev.cs.cmu.edu/repo/openrave/playerdrivers/actuatedurg into the nfs dir, compile with make.
- run with player intelactuatedurg.cfg
Troubleshooting
- If it is impossible to telnet to the qwerk, try resetting the ip address and gateway. First put the qwerk in configuration mode by holding the CFG button when turning it on. After lights flash fast, reset settings by lighting 7 LEDs, then reset ip addresses by lighting 5 LEDs. You can then go to http://192.168.1.144 to configure the rest.

