Thesis outline viva …another success story

Alhamdulillah as I managed to complete the viva today, Jon and Fiona gave a wonderful feedback and I am really happy….I am now preparing to finish the control algorithm for swarm aggregation and hopefully I can managed to run it using my mac this time….

For the meantime, jon is trying to fix the broken linux laptop for me so I can use it since it is difficult to show the simulation to him. If I can borrow it from him than it will be great enough!!! I don’t have to buy a new one and can use the laptop for simulation and analysis

Should be fine and great!!!!

Current status: overall result is fine, just finish your task !!!!

The bigbob tutorial

Let’s say we want to model a rubbish collecting robot called “Bigbob” and would have that robot in our  stage/player. The tutorial supposed to be handy!!!! however I think the author managed to make me screwed with her instructions!!!!

Our bob robot in an empty world:

Our bob1 robot placed in the empty world.

Our bob1 robot placed in the empty world.

To those who would like to try having your own robot in the empty world, you can give it a try!!! Creat this bigbob.inc and include it with you empty world.

define bigbob model
(
# actual size
size [1.25 1]

# centre of rotation offset
origin [0.125 0 0]

# the shape of Bigbob
polygons 3
# body
polygon[0].points 6
polygon[0].point[0] [0 0]
polygon[0].point[1] [0 1]
polygon[0].point[2] [0.75 1]
polygon[0].point[3] [1 0.75]
polygon[0].point[4] [1 0.25]
polygon[0].point[5] [0.75 0]
# first tooth
polygon[1].points 4
polygon[1].point[0] [1 0.75]
polygon[1].point[1] [1.25 0.75]
polygon[1].point[2] [1.25 0.625]
polygon[1].point[3] [1 0.625]
# second tooth
polygon[2].points 4
polygon[2].point[0] [1 0.375]
polygon[2].point[1] [1.25 0.375]
polygon[2].point[2] [1.25 0.25]
polygon[2].point[3] [1 0.25]

# positonal things
mass 10.0
drive “diff”

# sensors attached to bigbob
bigbobs_sonars()
bigbobs_eyes()
bigbobs_laser()

)
define bigbobs_sonars ranger
(
# number of sonars
scount 4
# define the pose of each transducer [xpos ypos heading]
spose[0] [ 0.75 0.1875 0 ] #fr left tooth
spose[1] [ 0.75 -0.1875 0 ] #fr right tooth
spose[2] [ 0.25 0.5 30] # left corner
spose[3] [ 0.25 -0.5 -30] # right corner
# define the field of view of each transducer
# [range_min range_max view_angle]
sview [0.3 2.0 10]
# define the size of each transducer [xsize ysize] in metres
ssize [0.01 0.05]
)

# bigbob’s blobfinder
define bigbobs_eyes ptz
(
blobfinder
(
# number of colours to look for
channels_count 2
# which colours to look for
channels [“orange” “DarkBlue”]
# camera parameters
image [160 120] #resolution
range_max 5.00
ptz [0 0 60]
)
)

define bigbobs_laser laser
(
range_min 0.0
# distance between teeth in metres
range_max 0.25
fov 20 # use this line instead of above if using stage 2.X.X
pose [0.625 0.125 270]
size [0.025 0.025]
)

I used BBEdit, however you need to buy it ( a licensed software) try Jedit, not a fan of it. Thus I use TextWrangler in creating the non .txt file…..

Moving robots..

Never had an experience in simulating robots….I refer to this guideline for installing Stage/Player in my macbook which has started in February and I have few errors and not sure how to solve it…this week, jon asked me to isntall and start playing with Stage/Player which is so much fun!!!! never thought that I managed to make it running faster this time ( as my programming skill is very low!!!!) I am not sure whether I can do the program or not, however it’s gonna better when I started to think positive which is I think allowing me to think wisely…:) . It is getting hot in the office since everyone is here and I know my progress is quite slow to this end, however I wanted to prove to myself that I am getting better with Allah’s will. Thus, this week seems an ambitious week with lots of simulation and modelling work need to be catch up…however I am happy as I have refined my PhD topics which is great!!! Indeed, the work is now more focus and clear, I need to focus more and more…

My online shop has proven beneficial as more and more buyers entering the site and we have 3737 visitors for June 2009, which is again impressive. The brilliant idea on opening the online shop by my dear hubby is GOOD!!!! I am more occupied and we our bank account is not as before and we have reached break-even!!! alhamdulillah

hmm..since the title is saying about the moving robots…..so let me finish the supposed-to-be entrance for today!!!! whoala…

Once installing Stage/player based on this guideline, now you are ready to launch and test player/stage:

player /opt/local/var/macports/software/playerstage-stage\
/*/opt/local/share/stage/worlds/simple.cfg

If you are sucessful, you should see the following window:

envi

Assuming that you managed to obtained the above-shown Figure, you can drive player/stage using an example program in another terminal:

/opt/local/var/macports/software/playerstage-player\
/*/opt/local/share/player/examples/libplayerc++/laserobstacleavoid

this will lead to the movement of the robots…which is great
Not forgetting, to compile the c code first if you are running from your own folder

another command shell and start a program that connects to the server and controls the robot’s actions.

 g++ sonar.cpp -lplayerclient -o sonar

This compiles the sonar.cpp sample program and links in the Player C++ library.

Stage/Player

In Player/Stage there are 3 kinds of file that you need to understand to get going with Player/Stage:

  • a .world file
  • a .cfg (configuration) file
  • a .inc (include) file

The .world file tells Player/Stage what things are available to put in the world. In this file you describe your robot, any items which populate the world and the layout of the world. The .inc file follows the same syntax and format of a .world file but it can be included. So if there is an ob ject in your world that you might want to use in other worlds, such as a model of a robot, putting the robot description in a .inc file just makes it easier to copy over, it also means that if you ever want to change your robot description then you only need to do it in one place and your multiple simulations are changed too.