Friday, January 29, 2010
Tuesday, January 26, 2010
23-25 Jan
xo is the command for invoking various behaviours to nao
xo ? - list all the available behaviours referred as options
these behaviours/options are written in xabsl(The Extensible Agent Behavior Specification Language) in the form of decision tree.
-------
for using our experimental jointdata, we initially tried replacing the data in kickLeftNao.mof file but there were no change in simulation
after trying we found that we have to replace the jointdata from kickNaosimulator.mof file in proper order and unit.
mof files are stored at - ...\Src\Modules\MotionControl\mof\
xo xabls files are stored at - ...\Src\Modules\BehaviorControl\BH2009BehaviorControl\Options\
our data is not working properly in simulator as Nao is falling while kicking in the simulation.
Tuesday, January 19, 2010
19th Jan
Besides, we also worked on the German code. In this case, Ravi tried to run the code on the B-human's simulator on the computer of the lab, and I tried to solve the compiling problem on my computer. Yesterday, thank to Arnoud's help, the Cygwin was run on my computer successfully, but there is still a problem with compiling "libbhuman" and "_Nao" packages. The error message is:
1>------ Building libbhuman (Release) ------
1>bhuman.cpp
1>make: *** [../Build/libbhuman/Linux/Release/bhuman.o] Error 127
1>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
1>Build log was saved at "file://d:\E-Books\UVA\AIProject\UvaProj\Build\libbhuman\Linux\Release\BuildLog.htm"
1>libbhuman - 1 error(s), 0 warning(s)
I search a lot on the Internet and also compare my Path and other parameters of the lab's computer with mine to find any thing missing in my compiling process, but there was nothing.
Friday, January 15, 2010
15 Jan
- closeHand
- openHand
- gotoAngles
- addWalkStraight
- walkSideways
- walk
Walking methodology: For making Nao move, first a walk pattern has to be created using various available methods(e.g. addWalkStaright, walkSideways are few of them) then Nao is asked for walk using walk method.
For the above tasks, some other methods were also used which involved different coding style. These didn't worked out. Definition is clear but could not understand why these didn't worked properly(May be need to explore more).
- changeAngle
- getAngle
- setPosition
Bardia's log book
Primarily, I did some research about what Nao is, how it works, and what the standard platform field of the robocup competition is. In this manner, the Standard Platform League is a RoboCup robot soccer league, in which the robots operate completely autonomously. In addition, the ball used is an orange no bounce hockey balls which is 65mm in diameter and it weighs 55g. Besides, Nao is an entirely programmable 60cm high robot. The robot's platform is linux, but it can be programmed by different programming languages on different platforms (Windows, MacOS, etc.) via cross-platform tools such as Choregraphe, Gostai, and even Microsoft Robotics Developer Studio.
Choregraphe includes all graphic interfaces, behavior libraries needed to create movements. It accepts Urbi and Python language, so it can directly call C++ modules developed separately. Gostai is developing Urbi, and also fully interfaced with C++, Java and Matlab.
Moreover, I read the report of B-Human team. So, I found out that b-human's code also included a simulator by which the sensors' data and behaviors of the robot could be examined. Therefore, we decided to read the b-human team's report plus to try to understand the applied algorithms and to compile the code. In this case, I tried to compile the code on my computer both in Windows Vista and Linux Kubuntu.
First, I tried to install the needed packages according to the report. However, in some cases, the version said in the paper were not available, and I had to install the new versions of them. After that, there were a lot of errors in compiling. The primary errors were because of the fact that a number of packages like g++ had not been installed properly. In this matter, I used the command below to solve the problem:
sudo aptitude install build-essential
However, there were still a number of errors that I could not solve. Therefore, I switched to Windows and tried to follow the report's steps to install the required packages. I installed Microsoft Visual studio, and downloaded "bhuman-cygwin.tar.bz2" and "opennao-academics-1.3.13-nao-geode.rar" packages from the aldebaran and b-human's websites. I also tried to install Cygwin version 1.5, but its mirror servers installed it in the way of the newer version. I mean that its "opt" folder consisted of a folder named "gcc-tool" instead of "crosstool"; according to some forums, this difference in the construction was due to the mirror server from which the cygwin had been installed. Moreover, their contents were also different from each other. So, I just copied the packages from the "bhuman-cygwin.tar.bz2" file to the mentioned locations. Finally, I added the path of the Cygwin folder to the environment variable. Thereafter, I could compile the code and run the simulation, but two essential packages "libbhuman" "_Nao" were not compiled. The problem was reported as below for example:
1>------ Rebuild All started: Project: libbhuman, Configuration: Release Win32 ------
1>Performing Makefile project actions
1>make: /bin/sh: Command not found
1>make: *** [clean] Error 127
1>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
1>Build log was saved at "file://d:\E-Books\UVA\AIProject\UvaProj\Build\libbhuman\Linux\Release\BuildLog.htm"
1>libbhuman - 1 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
I tried to figure out any solution on the Internet; all of the suggestions were about fixing the PATH variable, like:
export PATH=.:/home/yap/bin:`printenv PATH`
setenv PATH=.:/home/yap/bin:/bin:/usr/local/bin
However, none of them worked with my cygwin. In detail, the command "setenv" was not known for the cygwin, and the first line, although, seemed to work, it was not effective because by restarting the console, the PATH was also reset to the former addresses. Thus, modifying the PATH did not help me solving the problem.
Since dealing with the German code plus overcoming the compiling issue was very time consuming and fell us behind the schedule, we switched to the Choregraphe environment. In fact, because special actions in the code are hardcoded, it is much easier and faster to work with Choregraphe to figure out motions like kicking.
After installing the Choregraphe, we faced a problem. Some motions like walking or turning around did not work on the robot; the error alerted pointed to the lack of a package called "almotion". Finally, we figured out that this problem was because the robot's software version (bleu , 13.8) was older than our simulators' versions (13.13 and 13.17). Therefore, by connecting to the new robot (Rouge), we could run all the available motions on the robot.
14 Jan
error: Error in Python module ............... ALMotion is not defined
problem was due to: NaoQi wa 1.3.8 and choregraphe used was 1.3.13 so not compatible with each other.
when Nao with Nao 1.3.17 and choregraphe 1.3.17, everything worked fine
-----------
Green documentation disccues various things about choregraphe with tutorials about making behaviour boxes from scratch as well.
Blue documenntation discusses about API modules
using python was able to make a simple box for moving right ankel of nao
method used for this is: ALMotion.changeAngle("RAnkleRoll", 1)
--------------
different joint values mentioned in B-Human mof file seems does not contain all joint data, not clear still.
Useful Things
ping ipaddress of Nao
Nao's OS is a linux OS so it can be used like that.
to remotely run any programme or module etc, one can connect to Nao remotely using SSH like Secure Shell Client and run commands or transfer files etc.
commands for running Nao:
./status checks whether Nao and Bhuman are running or not and outputs the result.
./naoqid start|stop|restart this command starts, stops and restart NaoQi respectively.
in Nao when NaoQi starts it automatically runs some module, these modules are mentioned in autoload.ini startup file at location /opt/naoqi/modules/lib/autoload.ini
and so one need to add module's name here which is needed, then these will be automatically started with NaoQi
If any changes is made in autoload.ini then NaoQi has to be restarted to make new modules running.
all these above task can be done remotely by connecting with Nao using SSH.
Wednesday, January 13, 2010
12 Jan
Was able to connect to Nao using Choregraphe, initially connection error if fixed port was used but got connected smoothly with default port 9559
Just after connection there was an error: "Some modules are missing, Choregraphe will not fully work - ALMotion module is missing or not compatible with current version of Choregraphe. The robot will not move... "
Due to the above error the connected Nao could not be enslaved(RED), either it was in non-enslaved state(GREEN) or intermediate state(YELLOW).
The above error was due to absence of motion module in the startup(autoload.ini file) of Naoqi
autoload.ini is located at: /opt/naoqi/modules/lib/autoload.ini
python module was also missing in autoload.ini which gave error while playing any script, hence no movement
It is now clear that for each module, one is going to use it has to be started in the Naoqi.
after adding the python module and motion it was ready but still no movement in Nao.
There was a conflict between B-HUMAN and motion module as both of them were trying to move the bot.
B-human is stopped, now its working fine. Able to move Nao.
It is not clear why initially B-Human was not able to move Nao.
Monday, January 11, 2010
11 Jan
- Segmentation and region building
- Region classification
- Feature extraction
- Segmentation and region building: This step basically uses the camera image(to be read and discuss) and creates region after doing segmentation of the image. Regionizer is the method/file used for doing this step. And configuration of various parameters for various criteria or thresholding can be done in regionizer.cfg. This method gives RegionPercept which contains the segments, regions, borders etc. This is used in the next step.
- Region Classification: This step is carried by RegionAnalyzer method/class. This itereates over all the regions in RegionPercept and classifies the region as a line of ball and discards everything else. This returns LineSpots and BallSpots which contains possible candidate for line related targets(field line, goal) and ball target respectively.
- Feature Extraction: This steps involves detecting the field line, the goal and ball. The main focus related to project work is on detecting the ball. This is discussed below.
And both of these cases are implemented in the method
- 1st square is the biggest square that fits the calculated ball of BallSpot.
- 2nd square is the smallest sq. bigger than the complete ball without all the points inside the first region.
- 3rd square has an edge = square root(2)*diameter of the circle with center same as circle.
- 1st region = 90% of orange points
- 2nd region is ignored
- 3rd region = 2% of orange points