A bit whelmed at the moment of the project I have taken on in getting COG to work better. While I have no doubt that the tasks can be completed, they need to be listed out and taken down one at a time. At the moment it feel a bit like treading water.
The List:
AI: Cog needs some interactive capabilities.
AIML: A language for bots that can 'chat'. It's fairly simple in terms of it is mostly just a challenge response type bot, but it is a good starting point for make things work. There are other things out there and certainly a few that seem better, but this is free, just poorly documented. And quite possibly the biggest/longest task that may never be finished.
Pidgin AIML Plugin: This is give COG an online presence while the batteries are being charged. It will simply be AIML running through pidgin as a plug-in. It is a good place to start for recording logs and trying to get some adaptation/feedback from people.
Text-2-Speech: This can be done through a number of libraries. The current front runner is Microsofts Speech API. It's built into all versions past XP. So not so terrible to get up and running. There are already plenty of voices, etc. It just also limits the platform and there are other TTS systems.
Voice Recognition: All of them are terrible in this regard. Current front runners are CMU's Sphinx because of it's flexibility, but the second here is again Microsoft's SAPI. Both will require some crazy training to get to working properly.
So pulling all of these together gains the ability for COG to carry on a conversation with people.
Body: The goal is get the robot up to about 4-5 feet in height, fortunately including the monitor as a 'face'. This requires some changes
4x4: First the 2 wheels + casters is great for indoor control, and I wish the tracks had worked, but 4x4 will make COG much more stable, and able to drive off road. It would be nice to add suspension to make a smoother ride, I just do not have the skills for that (yet).
Wiring: Determined a completely new wiring scheme for COG currently everything is a bit ad hoc. I have designed a 12V/5V/USB bus for getting power and communication to all levels of the robot. The current plan is use PCI-Express 6 pin Y cables as the main section of the bus, then creating a few 6-pin to USB connectors using the 5V rail and USB parts. The this should also push past some of the USB limitations. USB from the PC only has a certain limited amount of power. They can usually only support a couple of devices on a bus before they run out of power, but USB can support 128 devices per connection. The power is a problem, not the number of devices. So we need to test out the 5V USB system and make sure it works.
Arms: Need to the arms attached and working. Currently the 1/4" boards used for the sides are just not going to support that weight. Time to switch to 1" pine and build a sturdier outer box.
Layers: Eventually the goal is to have the system attach together with layers that can be swapped in and out to change the capabilities/function of COG. To this end I think the layers need to be changed to using a quick-trunk like connection system in addition to having the 6-pin molex exposed. Currently this is 4 long screws and big whole in the middle. Which works great, but can be a pain to work with to getting access to various levels.
Style: Have to maintain the 'steam punk' style of cog. A the wife suggested, make each of the layers look like a trunk then the final version of COG looks like a big stack of trunks. Which would be cool.
Actuators: Need keep interaction with COG
Drive: Currently have two motors and controller, will need to pick up two more of each to get to 4x4 mode.
Arms: Need to re-wire the current ARM to get the 3V DC motors under control. These we also need sensors. Either that or this just needs to be rebuilt with servo motors:
Pan-Tilt: Need pan tilt control for the cameras. Possibly better cameras altogether web cams are in expensive, but you get what you pay for.
Sensors: To view the world.
IO Board: First have to get the IO board working. That is making progress as I have found many of the bugs of the original boards. It needs a boot loader, so that it can be tinkered with at home, but that should not be much of a problem.
Sonar: Need to test out the sonar modules and determine where we are going to place them. Possibly on a servo mount for now, though I'd like to make a full ring of sonar.
IR: We will place these next to the sonar, they are cheaper so not worried about getting more of them.
Cameras: Currently have 2 logitech communication STX cameras. They are working for taking stereo pictures. Need to write code to interpret the data.
Shaft encoders: Need to acquire these and attach to the wheels.
GPS: Currently have a working GPS. Need to get google maps working for aerial placement of COG as he moves around.
Software Integration: Getting it all together.
3D view: Create a 3D model of COG and place it in maps as COG builds up his environment.
World Integration: Would like to tie COG to light controls, both DMX and X10. I will require communication with another host computer, so more software required for that.
Thought Control: Take EEG brain signals and control the motion of COG. Should be a fun project. Need to get the EEG working.
That's just for starters. I'll get it done, it just may take some time ;).
The List:
AI: Cog needs some interactive capabilities.
AIML: A language for bots that can 'chat'. It's fairly simple in terms of it is mostly just a challenge response type bot, but it is a good starting point for make things work. There are other things out there and certainly a few that seem better, but this is free, just poorly documented. And quite possibly the biggest/longest task that may never be finished.
Pidgin AIML Plugin: This is give COG an online presence while the batteries are being charged. It will simply be AIML running through pidgin as a plug-in. It is a good place to start for recording logs and trying to get some adaptation/feedback from people.
Text-2-Speech: This can be done through a number of libraries. The current front runner is Microsofts Speech API. It's built into all versions past XP. So not so terrible to get up and running. There are already plenty of voices, etc. It just also limits the platform and there are other TTS systems.
Voice Recognition: All of them are terrible in this regard. Current front runners are CMU's Sphinx because of it's flexibility, but the second here is again Microsoft's SAPI. Both will require some crazy training to get to working properly.
So pulling all of these together gains the ability for COG to carry on a conversation with people.
Body: The goal is get the robot up to about 4-5 feet in height, fortunately including the monitor as a 'face'. This requires some changes
4x4: First the 2 wheels + casters is great for indoor control, and I wish the tracks had worked, but 4x4 will make COG much more stable, and able to drive off road. It would be nice to add suspension to make a smoother ride, I just do not have the skills for that (yet).
Wiring: Determined a completely new wiring scheme for COG currently everything is a bit ad hoc. I have designed a 12V/5V/USB bus for getting power and communication to all levels of the robot. The current plan is use PCI-Express 6 pin Y cables as the main section of the bus, then creating a few 6-pin to USB connectors using the 5V rail and USB parts. The this should also push past some of the USB limitations. USB from the PC only has a certain limited amount of power. They can usually only support a couple of devices on a bus before they run out of power, but USB can support 128 devices per connection. The power is a problem, not the number of devices. So we need to test out the 5V USB system and make sure it works.
Arms: Need to the arms attached and working. Currently the 1/4" boards used for the sides are just not going to support that weight. Time to switch to 1" pine and build a sturdier outer box.
Layers: Eventually the goal is to have the system attach together with layers that can be swapped in and out to change the capabilities/function of COG. To this end I think the layers need to be changed to using a quick-trunk like connection system in addition to having the 6-pin molex exposed. Currently this is 4 long screws and big whole in the middle. Which works great, but can be a pain to work with to getting access to various levels.
Style: Have to maintain the 'steam punk' style of cog. A the wife suggested, make each of the layers look like a trunk then the final version of COG looks like a big stack of trunks. Which would be cool.
Actuators: Need keep interaction with COG
Drive: Currently have two motors and controller, will need to pick up two more of each to get to 4x4 mode.
Arms: Need to re-wire the current ARM to get the 3V DC motors under control. These we also need sensors. Either that or this just needs to be rebuilt with servo motors:
Pan-Tilt: Need pan tilt control for the cameras. Possibly better cameras altogether web cams are in expensive, but you get what you pay for.
Sensors: To view the world.
IO Board: First have to get the IO board working. That is making progress as I have found many of the bugs of the original boards. It needs a boot loader, so that it can be tinkered with at home, but that should not be much of a problem.
Sonar: Need to test out the sonar modules and determine where we are going to place them. Possibly on a servo mount for now, though I'd like to make a full ring of sonar.
IR: We will place these next to the sonar, they are cheaper so not worried about getting more of them.
Cameras: Currently have 2 logitech communication STX cameras. They are working for taking stereo pictures. Need to write code to interpret the data.
Shaft encoders: Need to acquire these and attach to the wheels.
GPS: Currently have a working GPS. Need to get google maps working for aerial placement of COG as he moves around.
Software Integration: Getting it all together.
3D view: Create a 3D model of COG and place it in maps as COG builds up his environment.
World Integration: Would like to tie COG to light controls, both DMX and X10. I will require communication with another host computer, so more software required for that.
Thought Control: Take EEG brain signals and control the motion of COG. Should be a fun project. Need to get the EEG working.
That's just for starters. I'll get it done, it just may take some time ;).
Comments