Checked tunis for the last time. Needed a Dell-DVI splitter and a DVI to VGA converter to get a view. My homedirectory was quite empty, the only things I found valuable were in /home/bterwijn/projects: YoubotChess (see July 3, 2017. I kept tunis, in case I still need an Ubuntu 12.04 / hydro-ros system.
That code is still available on git://sbt.science.uva.nl/home/bterwijn/git/YoubotChess/YoubotChess.git, so don't have to be copied.
December 18, 2017
New modular robotics system: the Fable system. The Entry set is 499 euro, a full class set 4700 euro.
Rodney Brooks recomments the lectures from Introduction to AI from MIT, with MiniMax and Alpha-Beta in the 6th lecture. Rodney especially recomments lecture 12 about Deep Learning.
Another nice speaker on this site is Peter Norvig.
Tried to install the Sweex camera on my Windows7 machine, but the drivers on the CD were not accepted. Only one interesting download, yet this requires a usenet account.
July 3, 2017
Tried to connect the Theta S via the mini-HDMI on the workshop computer. No /dev/video0 showed up (even after pushing power and video at the same time). Checked the video-card with command lspci | grep VGA. The Nvidia GF108GL is Qyadri 600 with a DVI and Display-port (no HDMI). Also the on-board graphics seems to have a display-port.
Installed VLC with command sudo apt-get install vlc-nox, but the graphical interface doesn't work (fall back to command-line). Installed camorama, but no /dev/video0.
Sebastian was able to have a live feed in vlc. The device was video1 (later video2). This was not shown in the dropdown menu, but could be edited manually.
The camera could be displayed with vlc on Ubuntu 12.04 (youbot) on the same machine pc-udk. Yet, dmesg shows many connects and reconnects on usb (new full-speed USB device; unable to enumerate USB device on port 5).
Switched on sudo modprobe uvcvideo. Theta must be in Live mode (power and record) before connecting. Now I am able to show the video feed in VLC on /dev/video1:
Did a git clone
git://sbt.science.uva.nl/home/bterwijn/git/YoubotChess/YoubotChess.git, but the documentation indicates that Ubuntu 12.04 is needed (workshop is 14.04 with /opt/ros/indigo).
Tried if I could get it working under 14.04. No catkin_make, so I installed catkin for indigo: sudo apt-get install ros-indigo-catkin. Yet, trick was to source /opt/ros/indigo/setup.sh.
Installed git clone git://sbt.science.uva.nl/home/bterwijn/git/YoubotChess/chessboard.git and tried to start roslaunch chessboard chess.launch (after source ~/catkin_ws/devel/setup.sh, but this failes on missing resource gazebo_ros.
Following the instructions of workshop, performed sudo apt-get install ros-indigo-gazebo5-ros-pkgs.
Now youbot_description is missing: git clone git://sbt.science.uva.nl/home/bterwijn/git/YoubotChess/youbot_description.git.
Now youbot_gazebo_control is missing: git clone https://github.com/mas-group/youbot_simulation. This fails in cmake on missing control_toolbox-config.cmake. Performed sudo apt-get install ros-indigo-ros-control ros-indigo-ros-controllers; now catkin_make works. roslaunch chessboard chess.launch fails now on multiple nodes with same name. Changing the names of piece_small and piece_large launched gazebo, yet also died directly.
Tried /opt/ros/indigo/lib/gazebo_ros/gzserver -u -e ode worlds/empty.world directly. Seems that the error is located in boost-library. Checked the version of boost with dpkg -s libboost-dev | grep 'Version', and got version 1.54.0.
Did a sudo apt-get install ros-indigo-desktop, which only installed this package. Still, same boost error. There is also a gzserver in /usr/bin/ (both are version 5.1).
Tried sudo dpgk -r libboost-dev but there are many dependencies on this package. Did apt-get remove libboost-dev, which deleted most ros-packages. Did a fresh atp-get install ros-indigo-desktop
The first Ubuntu option is 12.04 with user youbot.
In bashrc still the /opt/ros/fuerte/setup.bash is selected. There sis also groovy, but no hydro!
Did a sudo apt-get install ros-hydro-desktop-full. Configured libftk that it only accepts local connections.
Next step from gazebo: sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu precise main" > /etc/apt/sources.list.d/gazebo-latest.list', followed by wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - and sudo apt-get update. Gazebo was already version 1.9, so I didn't do sudo apt-get install gazebo.
catkin_make failed on roslint, but that was easily repaired by sudo apt-get install ros-hydro-roslint
Seems that roslaunch chessboard chess.launch, although the Connection manager failed to connect (gazebo server is also not running yet).
Starting gzserver gives error message: missing GLX on display :0, unable to create glx visual. Did sudo apt-get install gazebo.
Connected the Bumblebee2 to workshop with a Firewire cable. The machine has a FireWire PCI card (checked with lspci | grep -i firewire; LSI Corporation FW322/323 [TrueFire] 1394a Controller (rev 70).
Followed >the instruction of Ubuntu and sudo apt-get install dvgrab kino. Typing dvgrab failed: no camera exists.
The Sweex webcam works fine under Linux. When I plug it in for the first time, I receive:
[ 2662.932211] usb 3-2: New USB device found, idVendor=0c45, idProduct=6005
[ 2662.932228] usb 3-2: Product: USB camera
[ 2662.969037] Linux video capture interface: v2.00
[ 2662.972339] gspca_main: sonixb-2.14.0 probing 0c45:6005
Both cheese as vlc could display its images:
The details of the different Theta versions and protocols can be found here.
I still have a Basic license for the Construct website:
I didn't had problems to start the simulation of the GraspWorld sandbox:
June 19, 2017
The UMI-RTX is repaired. Problem is that the lifting of the arm is controlled with a plate which should compensate for the resistance going up / down. It seemed that oil had been leaked on this disk. Cleaned the robot nicely demonstrated chess ~/onderwijs/ZSB/assistance/repository/umi-drivers/chess_demo:
The new Scanse Sweep v1.0 has arrived.
Followed the instructions at Quickstart and connected the lidar to the USB-port of nb-ros. Seems that all usbserial drivers are installed correctly dmesg | tail 120
[33183.923829] usb 3-2: new full-speed USB device number 8 using xhci_hcd
[33183.946690] usb 3-2: New USB device found, idVendor=0403, idProduct=6015
[33183.946695] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[33183.946698] usb 3-2: Product: FT230X Basic UART
[33183.946699] usb 3-2: Manufacturer: FTDI
[33183.946701] usb 3-2: SerialNumber: DO004R7L
[33183.972066] usbcore: registered new interface driver ftdi_sio
[33183.972329] usbserial: USB Serial support registered for FTDI USB Serial Device
[33183.972422] ftdi_sio 3-2:1.0: FTDI USB Serial Device converter detected
[33183.972512] usb 3-2: Detected FT-X
[33183.972515] usb 3-2: Number of endpoints 2
[33183.972516] usb 3-2: Endpoint 1 MaxPacketSize 64
[33183.972518] usb 3-2: Endpoint 2 MaxPacketSize 64
[33183.972520] usb 3-2: Setting MaxPacketSize 64
[33183.972666] usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB1
Went to Downloads and selected the Visualiser for Ubuntu 14.04. The version that I received is v0.13.1. Installed it via the Ubuntu Software Center:
Tested both sensors, both were working. Only problem was that my laptop powered off once I disconnected the sensor:
Received a mini-HDMI to HDMI converter, but nb-ros has only mini-display, so put a HDMI-VGA converter, VGA-cable and VGA-mini-display converter chain. No additional /dev/video1, no response with ptpcam -i.
Read the Getting Started documentation of the Theta and found out that streaming is enabled by pushing the power and video button at the same time.
The online manual gives instructions how to do that for a Windows machine.
Didn't find the indicated options in my (Dutch) Media Player, so tried VLC media player.
In VLC Media device, the [THETA UVC HD Blender] can be selected as device (Media->Open Capture Device), but the screen stays black.
June 14, 2017
Tested if I could parse the simulator_joint.txt. This file contains 5 joints, the units of the Riser (zed) and gripper are in meters instead of milimeters. Added a -90 degrees for the wrist and ignoring the GUI commands, and it more or less works (20 cm too high).
June 12, 2017
Reserved the EV3 for the coming weeks.
June 11, 2017
Followed the suggestion from libuvc_camera and blacklisted uvcvideo in /etc/modprobe.d/uvc.conf. Even did a complete restart, but after the start v4l2-ctl --list-formats-ext, but no device showed up.
Followed the steps of Dave and activated uvcvideo again with sudo modprobe uvcvideo. Checked the Internal webcam with mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 30.
First tried to install libptp, but that seems to be only possible from sourceforge.
libmtp-runtime was already installed, but had to sudo apt-get install mtp-tools to see that mtp-detect says no raw-devices found.
The command gphoto2 --auto-detect gives more promissing results:
Model Port
----------------------------------------------------------
USB PTP Class Camera usb:003,006
Did on my Windows machine a Theta UVC register. Started the Windows Theta program, which has a Firmware update from 1.72 to 1.82 (which supports UVC 1.5 for live streaming).
Started with building libptp2-1.2.0. ./configure failed on missing libusb, solved that via sudo apt-get install libusb-dev as suggested by install_photosphere.sh. Also installed lftp, but didn't changed the lftp settings in /etc/lftp.conf.
After that, configure and make worked (some warnings). Make install needed an sudo.
Tried ptpcam -i, but that gives Could not open session!. Seems to be related with automount, the disk is dismounted and mounted on each ptpcam request. One time I received the device info! Should change the automount properties.
Created an exception rule as suggested askubuntu. Created and run the script ./bin/findUSBbyID.sh 05ca 0366 and received:
/sys/bus/usb/devices/3-1 Created with this information vi /etc/udev/rules.d/90-disable-usb-device.rules. Yet, the Theta still mounts.
Disabled automount completely with dconf-editor, as suggested by ubuntu help, still the Theta mounts.
Yet, now ptpcam -i works:
Camera information
==================
Model: RICOH THETA S
manufacturer: Ricoh Company, Ltd.
serial number: '00267739'
device version: 01.82
extension ID: 0x00000006
extension description: (null)
extension version: 0x006e
June 10, 2017
New Ricoh Theta S has arrived. There are several (86 to be precise) github repositories for the Ricoh:
Performed sudo apt-get install ros-indigo-libuvc-ros.
Checked the connection with dmesg | tail:
[23981.968854] usb 3-1: New USB device found, idVendor=05ca, idProduct=0366
[23981.968865] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[23981.968871] usb 3-1: Product: RICOH THETA S
[23981.968875] usb 3-1: Manufacturer: Ricoh Company, Ltd.
[23981.968880] usb 3-1: SerialNumber: 00267739
[23981.969187] usb 3-1: ep 0x81 - rounding interval to 8 microframes, ep desc says 10 microframes
[23981.969206] usb 3-1: ep 0x2 - rounding interval to 8 microframes, ep desc says 10 microframes
Performed lsusb -v | grep -i ricoh, which gave:
Bus 003 Device 009: ID 05ca:0366 Ricoh Co., Ltd
idVendor 0x05ca Ricoh Co., Ltd
iManufacturer 1 Ricoh Company, Ltd.
iProduct 2 RICOH THETA S
Doing lsusb -v | more showed the other needed parameter (idProduct):
idProduct 0x0366
Modified the /etc/udev/rules.d/99-uvc.rules as suggested.
Tried v4l2-ctl --list-formats-ext, and get two answers (Index 0, YUV 4:2:2) and (Index 1, MJPEG). The MJPG only has 1280x720, the YUV resolution 1280x1024, 1280x720, ..., 320x240), which seems to be the integrated webcam.
Did v4l2-ctl --list-devices, but only saw:
Laptop_Integrated_Webcam_1.3M (usb-0000:00:1a.0-1.5):
/dev/video0
No other devices are visible.
June 9, 2017
Checked the code from chesscmds.c and playall. move_list seems to be a direct copy and for both the COUPLING=0. Activated the printing of the list.
Trick is that playall executes the joints.txt in its program directory, not in the local directory, nor the one specified in the commandline.
The wrist is now nicely oriented downwards, the gripper open.
Yet, the RTX arm falls back into an old habbit: the arm is going up, but fails to go down (or very slowly). See Labbook 2013, June 6, it was not an mechanical but an electronic problem.
According to Johan Mozes, the repair in 2013 by Hans Ellermeijer. Hans will be back from holidays Monday.
June 8, 2017
Started with connecting the pl2303 converter to pc-udk. With dmesg | tail I received:
[ 438.844903] usbserial: USB Serial support registered for pl2303
[ 438.844925] pl2303 2-1.7:1.0: pl2303 converter detected
[ 438.846498] usb 2-1.7: pl2303 converter now attached to ttyUSB0
Tried to start ./rtxd /dev/ttyUSB0 in ~/onderwijs/ZSB/assistance/umi-drivers/daemon, but received the error message that /opt/prac/robotics/rtxipc/locks/rtx: Permission denied.
Created group rtxipc, added user workshop to the group and changed recursively sudo chgrp -R rtxipc /opt/prac/robotics Also changed the group of ~/onderwijs/ZSB/assistance, but still Permission denied. Starting the daemon as root solved this issue: tail /opt/prac/robotics/rtxipc/logs/rtxlog
2017-06-08 11:16:52 (RTXD) Restarting, listening to port 45253 on U020061
Tried chess in ~/onderwijs/ZSB/assistance/umi-drivers/chess_demo (Executable in main directory is 64bits, in Linux 32bits), but receive a Segmentation fault directly after init_board. Started chess with sudo, I don't get a segmentation error, but the program directly returns directly.
With gdb info stack, it is clear that it goes wrong when reading /opt/prac/robotics/data/board.rtx. The whole /opt/prac/robotics/data/ directory doesn't exist!
Copied directory data, class and bin from nb-ros. Chess continues, but fails on missing /home/arnoud/src/robotica/data/umi.rtx in robot.c:151. This file is in the robotics directory, not the umi-drivers directory (both in simulator/robot.c and xml_parser/robot.c). The executable chess loads libxmlparser.a, so it should be the latter.
Problem was not in xmlparser, but the call in inverse. Changed from -DARNOUD to -DSCIENCEPARK.
Tried to rebuild chess, but also umi-drivers uses -DARNOUD and includes from /home/arnoud/onderwijs/ZSB/assistance/repository/robotics/.
Now it compiles. Running chess as normal user gives:
downloadlib has problems connecting to socket: Permission denied
but running it as su solves this issue: first chess_demo from pc-udk.
Succesfully executed sudo playall joints.txt in ~/onderwijs/ZSB/assistance/robotics/src/playall.
Played the joints.txt from Nick. That seems to work, except that the gripper is not directed downwards.
Started rtxsh, went to arm, and started soak init_soak. The gripper is not stuck, it went downwards and opened.
Tried /tmp/joints.txt again, but doesn't open gripper, and wrong pitch angle.
Modified /tmp/joints.txt (different opening gripper, gripper in row 7, different angles in row 5 (between -90 and +90), different angles in row 6 (between -30 and 30). Still, gripper remains vertical and closed.
The file /opt/prac/robotics/rtxipc/logs/rtxlog contains to much information to be usefull.
Looked at u033089.uwp.science.uva.nl and found two joints.txt. One from 2003 (./bewegen/robotics/src/playchess) and one from 2006 (./bewegen/java/joints.txt). Content is the same.
zed is quite los, so increased the values below 300 with 40.
Still same behavior. Opened the gripper manually.
chess_demo is less functional than expected, after initialisation the program exits, with as chess.error_report: gnuchessr: No such file or directory.
gnuchessr is available in assistance/robotics/src/game/gnuchess. made the program and copied it to /opt/prac/robotics/rtxipc/bin. Gnuchess works fine (although I didn't check the location of the book for instance). Yet, at the end of each moves to robot moves out of view. At the left this OK, at the right it self-collides.
Copied the gnuchess.book to /opt/prac/robotics/rtxipc/data
Created a function write_joint_list in chesscmds.c.
Extra position is because a changed the define ARNOUD to SCIENCEPARK in inverse.c. Changed ARNOUD to latest (except for the file locations). The move_back call could be found at line 681.
The move_back is still there, although the right library is included.
Executed the just created chess_joints.txt with playall, but the wirst and gripper show the same behavior as with Nick's joints.txt.
Big difference between chess_joints.txt and joints.txt is the more subtle closing around a pawn (6.3 instead of 0.0), not that big opening (28.9 instead of 30.0). In addition, row 4 is always 0.0 for chess_joints.txt (no correction wrist / elbow). Could be added by adding the coupling-flag in print_joint_list.
June 6, 2017
Updated zsbmanual with the new descriptions of task1 and task2. In the mean time already an update was given on the chess_engine (task1). Solved it by performing an include, but latex was not allowed to write an aux-file in the other directory (even when setting export TEXMFOUTPUT=../chess_engine or export TEXMFOUTPUT=...
Solved it by creating a task1.tex which is a symbolic link to ../chess_engine/content. Was not sure if git could handle this, so put an instruction in the README.
June 4, 2017
The high-level implementation shows first the three-function game interface (get_available_moves(), next_state(move), is_gameover() with a standard implementation, followed by a more advanced implementation with a combination of the map() lambda() functions.
The lambda operator is in Python course between regular expressions and iterators & generators (not in the advanced section), just before object oriented programming with Python.
This discussion indicates that Lambda calculus is a formal system, but not directly associated with a logic. John Shutt indicated at the end:
Alonzo Church set out to construct a logic, which he hoped would avoid paradoxes without abandoning the law of the excluded middle, by instead dropping reductio ad absurdum. He set it up to have only one device for binding variables, lambda; the existential and universal quantifiers weren't binding constructs, but instead higher-order functions. The alpha rule and beta rule were two of the basic inference rules in the logic. The part about avoiding paradoxes didn't work out, so they backed off and showed that a certain subset of the inference rules would not in itself cause inconsistency, in the sense of everything being equivalent to everything else. The subset they showed consistent was just the alpha and beta rules, and that result was published by Church and Rosser and is now called the Church–Rosser Theorem.
.
Wonder if this is the same alpha-beta rule from minimax (my guess: yes).
Plan is to give on Tuesday minimax and alpha-beta pruning; this time with pseudo-code examples. Maybe show some Python examples for Tic-Tac-Toe. Deadline would be Monday 13th. Good groups could be sent to the robolab, to demonstrate it life.
The IK should be submitted the 20th.
The take-home could be given on Tuesday with a deadline at the end of the week.
The TA want to have a project-proosal on Wednesday, so that they could distribute.
Found this PhD-thesis about the ICat. In chapter 4 the Open Platform for Personal Robotics (OPPR) is described. Chapter 6 describes a graphical user interface.
Tested UMI-RTX with chess_demo on nb-ros. Used the pl2303 converter. Checked port with dmesg | grep tty and started daemon with sudo rtxd /dev/ttyUSB0 (both from ~/onderwijs/ZSB/assistance/repository/umi-drivers/. Result: 2017-05-11 16:27:26 (RTXD) Restarting, listening to port 39596 on nb-ros.
Started chess, but robot doesn't move. Commands reach daemon:
2017-05-11 16:33:27 (RTXD) 'rtx_init_comms' fails on CMD_TOGGLE_OFF
2017-05-11 16:33:27 (7) onetransaction: RTX_CMD_RESTART
2017-05-11 16:33:28 (7) onetransaction: RTX_CMD_STOP
2017-05-11 16:33:28 (RTXD) called rtx_stop(3)
2017-05-11 16:33:28 (RTXD) called rtx_do(0,1,39,0,0,0,16,0)
2017-05-11 16:33:28 (7) onetransaction: RTX_CMD_WRITE
Tried shell:
======================= ARM version 27 July 2016
init: No response
rtxsh> arm
arm> soak init_soak
arm: soak: No response
Tried the shell in /opt/prac/robotics/rtxipc/robot/linux:
======================= ARM version 27 July 2016
[armlib:downloadlib] failed
init: Opening RTX read only
init: Retry the connection
Downloaded umi-drivers directory from Google-drive and extracted it on pc-udk in directory onderwijs/ZSB/assistance/umi-drivers. Made rtxd and rtxsh executable. Made the rtxipc directories with sudo mkdir -p /opt/prac/robotics/rtxipc/logs (and for locks, ports, robot). Started sudo rtxd /dev/ttyUSB0:
2017-05-11 17:02:30 (RTXD) Restarting, listening to port 57472 on U020061
Started rtxsh, but got:
======================= ARM version 27 July 2016
downloadlib has problems connecting to socket: Permission denied
[armlib:downloadlib] failed
init: Retry the connection
Downloaded name_file, and added user 'workshop' to name_file. Still same error.
Running the rtxsh as root solved the Permission denied error. Added root to name_file. Still 'rtx_init_comms' fails on CMD_TOGGLE_OFF in /opt/prac/robotics/rtxipc/logs/rtxlog.
Problem solved: the RS232 connector wasn't connected at the RTX-side. Played chess on nb-ros (ttyUSB1).
Created a Google-drive map for the software of ZSB.
According to June 27, 2016, the latest used software is on nb-ros /opt/prac/robotics. Saved this at the Google-drive in directory nb-ros-2016. The directory robotics contained subdirectories bin, class, data and rtxipc.
Made a directory assistance in nb-ros-2016 and copied ~/onderwijs/ZSB/assistance/repository/umi-drivers/ into that directory.
The robotics.zip not only contains endgamequeen, but also endgamerookrook.
The conclusion from June 2, 2016 was that the latest drivers could be found at nb-ros, but that the java software should be found at acheron.
Copied ~/onderwijs/ZSB/assistance/java from acheron to nb-ros, and uploaded that into the nb-ros-2016 map. There was also a java32 directory on acheron, so it should be 64bits classes.
The assitance/handleiding at acheron is from May 2009. On u033089 the manual is from June 2015. That version is copied from u033089.uwp.science.uva.nl to nb-ros and uploaded to nb-ros-2016/assistance.
April 3, 2017
Found the pl2303 converter again. Should be able to test on pc-udk.
Logged in at pc-udk under workshop (from Future of Rescue). Is still Ubuntu 14.04 LTS, should be upgraded to 16.04 for ZSB 2017.
Discussed the options for this year ZSB. Plan is have the first two weeks assignments (endgame and inverse kinematics) and to update this to Python interfaces. For chess this would be pyDatalog, for inverse kinematics this would be an interface to Gazebo. This means that we need a UmiRtx model in Gazebo!
Visited the Soft Robotics Toolkit, to see if the instructions were clear enough for the BscKI students. There is a shopping list, but without price indications.
January 23, 2017
The Franka Emika robot arm is an interesting replacement for the UMI-RTX, with safe operation and a reach of 80cm, but the price is just above the budget, and the delivery will be too late for this years course.