https://forum.dronebotworkshop.com/user-robot-projects/robot-base-new-build/paged/8/#post-50907
Posted by: @robotbuilder
At a the highest level there is a goal description and the creation of a plan to move toward that goal.In the case of a robot vacuum cleaner that goal is to cover all the floor area to suck up the dirt. A sub goal triggered by an interrupt signal might be to find the charger when the battery voltage is getting low.
@robotbuilder I don’t think that’s right.
The goal description and creation of a plan falls into what Rodney Brooks might call “Good Old Artificial Intelligence”. His group at MIT in the 1980’s moved away from that traditional AI approach and took on the challenge of creating autonomous robots that could negotiate a real world environment. This lead to the development of Behavior-Based Robotics.
Joe Jones, one of the inventors of Roomba (the robotic vacuum cleaner from iRobot) states in his book ‘Robot Programming’, that Roomba uses a behavior-based programming scheme, i.e. not the GOAI approach that you think was used.
Joseph Jones (2004) Robot Programming “A Practical Guide to Behavior-Based Robotics”.
Check out Rodney Brooks, he’s Australian! https://en.wikipedia.org/wiki/Rodney_Brooks
Tom
The goals are in the mind of the builder not the robot.
So in the first robot vacuum these goals may have been,
1) don't get stuck
2) visit every part of the floor
3) Stop and BEEP when battery is ow.
The reason early programmers used symbol manipulation is because that is what the human brain can do. It may not be what insects or simpler brains do because their brains aren't large enough. I don't know that behavior based programming can play chess or carry out verbal commands in the block world?
The roomba robot uses vSLAM I don't think that is a behavior based program? It may well enhance behavior-based programming by providing vital environmental information that informs and triggers various behaviors.
Some limits of behavior based
incorporate global knowledge (symbolic maps, rules etc.)
Hardwired behaviors -- robot cannot adapt to new unforeseen situations
Lacks a planning/reasoning component -- cannot predict consequences of actions
no long term planning.
Now I am more than happy to be enlightened with code examples on better approaches to getting a robot to carry out useful commands.