-
Building your first Educational Bot.
Posted on May 10th, 2009 No commentsBots can be useful in SL for a lot of legal and productive usages, also with reference to educational and didactical needs.
Here for instance a list of tasks an edu bot can do:- Greets effectively people when arriving, giving material of the lesson (this can also be done with scripted objects obviously, but a bot is bit more “personal” and less robotic.
For instance when a person talks close to the bot she can give indications, notecards etc.- Can actually give a sort of automated lesson, acting as a tour guide in a place: you can script what she must chat at any moment, she can receive material from the students, record their IM and chat for future usage.
- Can implement sort of “extra groups”. People can tell the edubot to be enlisted in an educational list and she can give IM, Notecards, objects when instructed grid wide to alert on special events. Using this sparingly (no SPAM), can be a boost for educational places… Be sure when using a bot like that to ask esplicit permission to people enlisting and not doing the process automatically, and letting a way for them to quit..
Many other usages can be thought.. I’m still studying about this.
What IS a bot? It is just a standard avatar, but it is currently logged in with a different program than the client you are using normally. Although there are many bot companies selling their for a huge amount of L$ like Pikkubot, you can make use of free versions. If interested I can provide more help.
What I experimented recently is the libopenmetaverse library which has an interesting demo program:
http://lib.openmetaverse.org/wiki/How_to_create_a_basic_libSL_bot
The demo just enters the bot inworld, greets everyone and quits. I slightly modified it to start a full permission animation and stay inworld for a determined period of time (used in an exhibition to have an “acting” avatar). Bots can run on an external site so that it doesn’t depend on your pc being switched on. Just move the .exe file and run it under a linux server with screen and mono .exe.
Here the method I changed in the demo:
static void Network_OnConnected(object sender) { Console.WriteLine("I'm connected to the simulator, going to greet everyone around me"); client.Self.Chat("Hello World!", 0, ChatType.Normal); Console.WriteLine("Setting the animation"); //client.Self.AnimationStart(new UUID("3772d510-3510-d38e-e56c-93ecc5101122"), true); client.Self.AnimationStart(new UUID("f6aea527-dbff-94df-f42d-532cb3b45ada"), true); //client.Self.AnimationStart(new UUID(animation), true); Console.WriteLine("Now I am going to logout of SL.. Goodbye!"); minutes = 1000000; System.Threading.Thread.Sleep(minutes*60*1000); client.Network.Logout(); }Robo2: Also this interesting GPL2 program gives a bot handler quite interesting and complete: http://trac.robo2sl.org/pages/viewpage.action?pageId=425993
Robo2 allows you to have a fully programmable “agent” and you can instruct her to do a variety of tasks such as:
(here the help notecard given with the project)
These are the currently registered commands: IM | <name> | <text> -- send an instant message to someone (**) WHISPER | <text> -- whisper in public chat SAY | <text> -- speak in public chat SHOUT | <text> -- shout in public chat -- WHO -- check who's around (**) KICK | <name> -- kick a user from an estate (**) BAN | <name> -- ban a user from an estate (**) SECURE -- create a security area (**) LISTSECURE -- list all configured areas (**) DELSECURE | number -- delete a configured area (**) ARM -- activate security for all configured areas (**) DISARM -- DE-activate security for all configured areas (**) -- FOLLOW -- let the bot follow you (**) NOFOLLOW -- let the bot stop following you (**) SIT -- let the bot sit down on the object, which the master last selected (right-clicked) (**) STAND -- let the bot stand up (**) TAXI -- get a teleport offer to whereever the bot is (**) SETHOME -- set the bot's home position (where it always logs in!) (**) GOHOME -- brings the bot back home (**) -- BALANCE -- get current L$ balance (**) PAY | person | amount -- pay someone (**) PAYME | amount -- pay yourself (**) -- FINDKEY | username -- retreive the key of a named avatar (**) FINDNAME | uuid -- retreive the name of an avatar providing a key (**) AGENTINFO | username or key -- retreive info of an avatar (**) FRIENDS -- show friendslist (**) ADDFRIEND | name or key -- add agent to friendslist (**) DELFRIEND | name or key -- remove agent from friendslist (**) -- INVENTORY -- list inventory contents (**) -- ADDUSER | uuid or name | M,C,U -- add a user to the bot controllers (**) DELUSER | uuid or name -- remove a user from the bot controllers (**) -- GROUPLIST -- list groups the bot is in (**) GROUPNOTICE | part of group name or group key | subject | message -- Send a message to a named group (**) GROUPINVITE | part of group name or group key | agent name or key [| part of role name] -- Invite an agent to a named group (**) GROUPEJECT | part of group name or group key | agent name or key -- Eject and agent from a named group (**) -- BLADD | uuid or name -- add someone to the blacklist (**) BLREM | uuid or name -- remove someone from the blacklist (**) LISTBL -- show blacklist (**) WLADD | uuid or name | minutes -- add someone to the temporary whitelist (**) LISTWL -- show whitelist (**) -- STOREPARCEL -- save all settings of the parcel the bot is on (**) RESTOREPARCEL -- restore all settings of the parcel the bot is on (**) -- SPAWN | bot name | password | master name -- spawn another bot QUIT -- shutdown bot (**) Different access levels apply for commands marked (**). You may not be able to execute them. type: 'help <command>' for more details. The bot is based on the Open Source Framework Robo?? for Second Life. Please visit http://www.robo2sl.org to find out more.
Leave a reply
You must be logged in to post a comment.


