Eddie's Weekly Senior Seminar Journal

Fri 7th Sept:

I know my senior sem topic will either be in Robotics or in Networks and Networking - two of the classes I enjoyed most. I've decided on robotics as my topic. My intent is to implement the software for a task(s) that the handyboard robot(s) I will put together will accomplish. I havent' decided on a task yet. I'm continually coming up with interesting new ideas.


Wed 12th Sept:

Weekly meetings with Jim have helped develop these ideas. During one of our talks, he came up with the idea of deriving complex behaviors from a combination of simple ones - a concept known as cellular automata. The robots, following a simple set of rules could exhibit complex behavior through the interaction of these simple rules. In these weekly meetings with Jim Rogers, the issue of electrical/mechanical/electronic failure arose. His valid concern was that if the bots malfunctioned for any reason, I wouldn't have much to show for my project in terms of what I had done towards my goals. It was, for this reason, decided that I should scout around for a simulator that emulated the functionality and capabilities of the handyboard. This would serve both the purpose of getting me started on developing the software structure and task-oriented algorithms, as well as having a way in which to demonstrate/test what my code was actually doing, and if the behavior exhibited was that expected - in the absence of an actual bot. Submitted chapter one study questions


Tue 18th Sept:

I did more research in the cellular automata topic area as agreed (weekly meetings with Jim), which formed the basis of my bibliography, since I hadn't yet come up with a topic/task on which I would have done a reasonable amount of research on - to show for the bibliography due tomorrow.


Mon 24th Sept:

Over the past few weeks, I've been trying to pin down a task for my robotics senior seminar project. There are two things that have kept me from making constructive headway in my project. One is the fact that the handyboards and accessories that I intend to work with are buried in Charlie's basement. I need to 'exhume' them to determine what is or isn't present/working, which will help me greatly in picking a topic/task to begin programming the bots for. Once I know exactly what sensors (especially) are available, and in what quantity/condition they are in, I'll be in a much better position to make an informed decision, of what task(s) the handy bots are capable of performing. Presently, the bot mining from Charlie's dungeons is tentatively scheduled for weekend after next, though I'll ask if we can plan to do it sometime sooner during the week, since this weekend is bad for him, and time is slowly slipping by. What will I do in the meantime?

Brings me to progress impediment #2. I've been having trouble locating a robot simulator. The ones I've come across are either costly commercial versions, too robot (machine) specific, or too simple to take advantage of majority of the handyboard's capabilities (Karel). Many of the simulators I've come across are java simulators, which don't help my project which I intend to code purely in C. Those simulators I've checked out, (and discarded, for some) I've located on the Google search engine, which I continue to use in my quest to obtain a suitable simulator.


Mon 1st Oct:

Things picked up this week. Charlie brought in the handy-bots and placed them in the E&I lab which will also double up as the robotics lab next sememster. At this point and time, it seems like there are only two previously used handy boards, but there's a box of fully assembled handy boards that don't appear to have been used. I'll have to inquire whether those will be available for my use. There was a galore of sensors, some whose nature/identity I couldn't figure out, but I don't think that should be a long-term hurdle. There seem to be enough lego parts to assemble at least three bots - if I end up needing that many. The only other thing I may be lacking at this time is a serial communication able computer that I can use at the E&I lab for compiling and downloading the programs I write to the handy boards. When I took the class, we used some ancient but functional macs that we plugged the bots to. I don't know where those are at the moment, but I could ask if they're still around - and available. If they're not, I may have to resort to using a borrowed laptop or somthing.

I think I also found a viable simulator. It is the RPI robot simulator - a by-product of the Rossum Project. The only downside to this simulator is that it's java based - meaning I'll have to learn java make any reasonable use of the simulator :^(

There's also supposedly a free java implementation that runs on the 68hc11 chip - the chip that drives the handy board. This was the most promising aspect of this simulator. The link to the download location of this Simple Real-Time Java implementation is SERIOUSLY broken, and I can't seem to find it elsewhere - BOMBER!!


Mon 8th Oct:

I've installed JDK version 1.1.8 on my PC and have been able to run some one of the demos that came with it, but some of the other demos yield errors upon compliation. I want to get all the demos going, prior to installing the RPI simulator, just to make sure everything is functional - from a debugging standpoint, from the very onset. After much sniffing around, I managed to locate the elusive java implementation for the 68C11 chip - Yipee! I found it at the simple RTJ (Real-Time Java) homepage, under the 68C11 section. I've downloaded all the software I'll need at this point, but haven't gotten to the point of installing it for the reasons sited above. I've also downloaded a ton of documentation on the software I've downloaded, as well as on java (tutorials) - that I haven't gotten to - yet.


Mon 15th Oct:

I Installed the RPI robot simulator on in my home directory, and now have it successfully running the demos, thanks to Ned's helpful java path configuration pointers. I'm in the process of installing and trying to get up and running, the free handyboard java implementation.

Submitted chapter 5 study questions this week. I FINALLY have a task to build my project around! The task was honed and approved by jim the boss rogers just today! The much anticipated task will be one of an autonomous robot seeking out a parking spot it can fit in, in a partially full parking lot, and park in that spot. A fun yet challenging project - what more can one ask for? The plan as it currently stands is to have a bot capable of parking in a conventional ( \ \ or / / ) parking spot, but a parallel parking implementation should be in the pipeline soon afterward. I'm yet to figure out how to represent, and navigate a parking lot using the RPI robot simulator - this will involve 'decipering' the code conveniently provided with the simulator.


Mon 22nd Oct:

Worked on my proposal - did substantial research for topics (and their backgrounds) pertaining to my project. Dug up AI and robotics material that I might find useful both for my project and the paper accompanying it. I Began laying out my project presentation coming up on wednesday. I've come up with a few interesting/fun ideas. I'm not sure I'll be able to fire up a power point presentation on the classroom linux box, so I may have to plan to bring in a windows machine for the presentation.

I've been reading the simulator user guide and have a reasonably good idea of how the various pieces come together. The current release of the simulator allows only one bot in the environment at a time, which rules out testing two or more bots hunting for parking spaces concurrently - a situation I'd like to see when I'm running the actual bots. This limitation is marked for eradication in future simulator releases. I plan to nose-dive into the simulator code, and start getting better aquainted with java, as well as with the guts of the simulator. This will be essential if I'm to make any sort of progress with regard to simulation implementations.

Began thinking about taking a look at the sample GRE questions... I'm still thinking about doing them.... It is, after all, my birthday ;^)


Mon 29nd Oct - Mon 5th Nov:

Worked some more on putting together my proposal presentation, which I eventually presented in class on Wednesday the 24th. Have been having trouble running the RP1 robot simulator on my machine at home. I can't access the simulator in my directory on the cs server because my house doesn't yet have internet connectivity, and even if it did, X11 tunnelling has been disabled on quark and I can't run the simulation remotely anyway. I have to be in the acl lab to be able to work on my project, a drag I'm trying hard to avoid by attempting to get the simulator running on my linux box @ home.

I've given up trying to get JS2 (linux version) working on my computer - even the demos don't run without errors which indicates there's something probably amiss with the installation. I instead installed the windows version which works fine, and I'm using that to begin understanding how the demo client interacts with the server in the simulation, so I can model that structure in creating my own client.

I've started to get my hands dirty with the java code provided, and things look a bit 'murky' as of now. Hopefully, the murk will clear up and some 'rays' will begin to shine down on the simulated version of my project. The plan is to have somthing to show in class on wednesday the 7th, though whether I'll be able to get that far remains to be seen - I'm working on it though!


Mon 12th Nov:

Wasn't able to bring in a working sample of code to class last Wednesday. Have been Looking at the RP1 robot simulator java client code some more. I think I have a much better understanding of how things piece together now. I'm in the process of re-coding my own client, that will connect to the server simulator, load its body plan, and enter an event loop awaiting feedback from the environment (server). For now, this feedback will consist of range sensor readings that will enable the robot to follow a wall. I will have to configure the existing environment and simplify it to consist of just four walls for the purposes of the wall following demo I intend to show in class this coming Wednesday. The client code I'm currently working with is not-GUI based. I will incorporate the GUI portion of the client once I get the above-mentioned basic client-server functionality up and running.


Mon 19th Nov:

Worked on coding my wallfollowing client. I have what I think is working code but I have no way to test it out because I can't get the code I've written to compile - both on my machine and on the acl machines. I can't figure out what the problem is. Will have to go to class with uncompiled code - i.e. nothing concrete to show.

After Jim & Ned help me out with the details of CLASSPATH environment settings that kept my code from compiling, and after a little debugging, I now have a client that connects to the server, beams it's body plan on-board, and scuttles around. This is a large step. I can only build on this - and I plan to, esp over the upcoming thanksgiving break.


Mon 26th Nov:

Managed to work some more on my robot client over thanksgiving break. My client now makes use of it's Eddie-given contact sensors to intelligently explore its environment. It does this by sending motion requests to the server, which responds with feedback in form of events. The event handlers I've written are what the robot uses to decide what sets of actions the robot is going to execute, given a set of server events.

For now the robot trots around a four-wall room, and uses feedback from front mounted contact sensors to navigate the closed room. Next in line is to give the robot posterior contact sensors, followed by a range sensor that will enable the bot to sense the walls before running into them, and begin taking evasive action. The contact sensors at the range sensor stage will be 'back-ups', should the range sensor not detect an obstacle in its path, or if the obstacle in question is an object other than one of the four walls that make up the room.