Archive for ‘Simulation’ Category
Posted on 17:00, December 21st, 2010 by Billy McCafferty
An argument that interests me is the debate concerning what value simulations provide for researching new ideas and garnering new knowledge. As Herbert Simon succinctly puts the argument in The Sciences of the Artificial, “How can a simulation ever tell us anything that we do not already know?” The arguments backing this skeptic’s question are that 1) simulations are no better than the assumptions they are built on and that 2) simulations can only do what they’ve been programmed to do.
Simon continues with a response which is far more concise and sound than I could express in my own words…
There are two related ways in which simulation can provide new knowledge. … Even when we have correct premises, it may be very difficult to discover what they imply. … [We] must tease out the consequences of our assumptions. … [For example] attempts have been under way for some years to apply [simulation to weather and weather prediction. While simulations for this environment are] greatly oversimplified, the idea is that we already know the correct basic assumptions, the local atmospheric equations, but we need the computer to work out the implications of the interactions of vast numbers of variables starting from complicated initial conditions.
Accordingly, simulations provide a means to create “canned” environments, or scenarios with known initial conditions, and to watch the implications of our assumptions play out on those conditions. Obviously, simulations are also immensely assistive as a means to test out new ideas without investing large amounts of time and money into speculative hardware requirements.
Certainly a challenge with the creation of any simulation for the purposes of knowledge creation is 1) the realistic re-creation of the environment and 2) the realistic re-creation of the agent which will be responding to stimuli and/or acting upon the environment. Indeed, one can find him/herself spending as much time on generating the environment and simulated agent as they might in actually building the agent itself (e.g., a mobile robot). Some vendors have taken great strides in recognizing this challenge and accommodating users, accordingly. For example, while simplistic, Lego NXT robots may be designed within Lego Digital Designer and converted into Robot Operating System (ROS) compatible models using the NXT-ROS stack to rapidly produce and simulate an assortment of ideas in differing environments. Increasingly available tools and solutions, such as this, are allowing vastly more complicated scenarios to be brought into varying, simulated environments for feasibility testing of new ideas. (If you’d like to discover many other available simulation environments, I invite you to also take a look at Simulations Environments for Mobile Robotics.)
So while it’s difficult to replace the feedback and learning of “the real-world,” simulations still provide a veritable proving ground for observing the implications that well-grounded assumptions, with known initial conditions, have in a wide array of possible environments, with sometimes surprisingly real-world results.
Posted on 05:23, August 3rd, 2010 by Billy McCafferty
While I wait for my $200K grant, my Darpa project award, Aldebaran to send me a few Nao’s, or Willow Garage to mail a PR2 my way (please contact me for shipping details), I spend much of my research time on the simulation side of robotics. In addition to being far less costly than purchasing hardware, working via simulators actually provides a number of benefits:
- One need not spend time hacking a hardware platform together. Instead, simulators allow the robot to be completely available, in perfect working condition, before the first line of code is written. The time trade off enables a much greater amount of effort to be spent on algorithmic development…assuming that’s your interest.
- One need not worry as much about hardware obsolescence. A vexing challenge for roboticists is deciding when to invest in new hardware. It always seems that the moment hardware arrives in the mail, announcements are made concerning the availability of even better options.
- As a positive side effect of the time and cost savings that simulators typically provide, the simulation route also enables one to try out many more platforms and segments of the robotics industry in a shorter amount of time. For example, instead of putting all your eggs in one basket, it becomes far less costly to abandon a platform for another when you can simply install a new simulation environment or simulated platform.
- Simulators enable researches to perform otherwise impractical research; such as evolutionary development, robotic injury recovery, or simulation within dangerous or hard-to-replicate environments, such as mines, nuclear waste facilities and natural disaster sites.
Obviously, it’s difficult to replace the experiences of working on real robots in real environments with real-world sensor errors, data fusion that doesn’t agree, and unpredictable dynamics, but simulators certainly provide a convenient means to try out new ideas or experiment in new areas.
Along those lines, I’d like to highlight a few simulators for mobile robotics which may pique your interest:
- Microsoft Robotics Developer Studio (RDS): In addition to being a complete robotic operating system, Microsoft RDS includes a powerful simulation environment with a large number of robotic platforms readily available for use. Beyond the Microsoft provided content, an amazing breadth of tutorials and guidance for using the RDS simulator may be found here.
- Player: Player is a very popular and widely used robotic software platform which is actually three tools in one. The first tool is Player itself; Player is the server component of the robotic platform which facilitates communications to sensors and actuators over network communications. The next two tools provide the simulation capabilities. Stage is a 2D simulation environment supporting multiple agents supporting sensor feedback. Gazebo is a 3D simulation environment with sensor support as well as a physics engine for simulating object interaction in the 3D context. A great tutorial for getting started with Player/Stage is found here. Luckily, running your code between the Stage and Gazebo environments requires very little changes at all; accordingly, once you learn one, you’re already quite familiar with other.
- Robot Operating System (ROS): Like Microsoft RDS, ROS is far more than just a simulation environment; indeed, ROS is a full robot operating system providing messaging infrastructure as well as a means to easily develop and share solutions with other users. For the subject at hand, ROS leverages the Stage 2D simulator and Gazebo 3D simulator for many of its simulation oriented packages. You can find a lot more about ROS’ use of Gazebo for robotic simulation, and learn how to try it out yourself, with these tutorials. For a Stage tutorial, be sure to also check out this tutorial.
- Webots: Webots is completely geared towards robotic simulation. Offering plenty of physics options for modeling the real world along with many available sensors and actuators makes Webots a very solid and mature simulation platform. The Webots overview page does a very concise job of describing the software’s capabilities, which I need not repeat here. Webots has a well organized introduction within the documentation; many user generated tutorials are also readily available online, such as this one.
- RoboCup Soccer Simulator: While the previously discussed packaged are geared towards being “one size fits all,” the RoboCup Soccer Simulator is honed to just that, allowing developers to participate in the RoboCup Soccer Simulation league via a standard platform. This platform is made up of a number of elements: the Server which runs the simulation and acts as a host for participating clients to send commands and receive sensor feedback information, the Monitor which facilitates viewing the simulation in real time, and the Log Player which provides the ability to replay games at a later time. While official documentation may be found here, its 2003 last-modified date makes me concerned that it may have fallen out of synch with the software itself, which is still being actively maintained. While the online manual is much more current, it is missing quite a few pieces.
- RoboCup Rescue: This more seriously toned simulation environment provides a platform for researching topics such as modeling disaster environments and robotic assistance in disaster recovery. The Agents Simulation league models the disaster environment including dynamics such as traffic, fire, and civilian movements. Agents are then developed to take on the role of police and other recovery participants. The Virtual Robotics league, facilitates the development of autonomous robots with sensors and actuators to assist in the disaster recovery effort. Although I’ve found the documentation for RoboCup Rescue to be a bit less approachable than for the other simulation environments, there is good content to be found on the project’s wiki
The above list is certainly not exhaustive, but should give a good introduction of available simulation environments. Other environments not mentioned which also have support for mobile robotics development in simulated environments include MapleSim, Simbad, Carmen, Urbi (compatible with Webots) lpzrobots, Moby, and OpenSim. Finally, robot competitions occasionally include simulated environments in their challenges; robots.net keeps a terrific listing of available competitions at http://robots.net/rcfaq.html; the AAAI conferences and competitions are particularly good at coming up with novel hardware and simulation challenges which truly push the envelope of progress.
Certainly enough to keep you busy for a while…not bad when you consider the many projects you can carry out before committing to buying a single piece of hardware!