资源说明:Half-baked 3D physics playground for autonomous robots
The society of people who at one time or another supported, however reluctantly, and so long as they needn't do much of anything to join or be a member generally, in general support, but with particular exceptions notwithstanding, for the ethical treatment of finite state machines PRESENTS "LambdaScape" or: How I learned to stop worrying and love the affine transformation λλ λλλλ βββ δδδ λλλ ββ δδ λλ ααααα μμ ββ ββββ δδδδ δδ ααααα λλ αα αα μμμμμ μμμμ ββββ ββ δδ δδδδ αα αα λλ αα μμμ μμμμ μμμ ββ ββ δδ δδ αα λλ αααααα μμ μμ μμ ββ ββ δδ δδ αααααα λλλ αα αα μμ μμ μμ ββ ββ δδ δδ αα αα λλ λλ αα αα μμ μμ μμ ββ ββ δδ δδ αα αα λλ λλ αααα αα μμ μμ μμ ββ ββββ δδδδ δδ αααα αα λλ λλ _____ ___ ____ ____ λλ λλ / / \ /\ | \ | λλ λλλ \_____ / /__\ |____/ |___ λλλ λλλλ \ \ / \ | | λλ λλλ _____/ \___/ / \ | |____ "We're Lambda Lambda Lambda and Omega Mu. We come here on stage tonight to do our show for you." -- Alonzo Church on the Lambda Calculus "Z-up dawg, I herd you like coordinate systems." -- Xzibit on Coordinate Systems This document best viewed in UTF-8, the one true encoding™. 0x00: Table of Contents: 0x00: Table of Contents 0x01: Overview 0x02: Dependencies 0x03: Building From Source 0x04: Running All The Pieces 0x05: Robots Running Amok 0x06: Notes From the Playground 0xff: License 0x01: Overview LambdaScape is a collection of programs that provides a framework for writing and testing autonomous robots in a simulated physical world. The server, lambda.py, accepts connections from observers such as lambdascape and robots. Observers request the terrain from the server and receive robot position matrix updates. Robots can cast a ray in a direction and get back the distance to the closest solid surface, much like a LIDAR sensor. Robots are rocket-powered because it's so much easier than using wheels. 0x02: Dependencies LambdaScape is quite needy and demands that you provide it with all the great and wonderous libraries of the day. Namely: sudo apt-get install python-2.5 python-pyode ghc6 libghc6-glut-dev \ libghc6-network-dev libghc6-parallel-dev libghc6-time-dev \ netcat-traditional If you don't have apt-get, you can just `apt-get install apt`. The haskell libraries can be skipped if you obtain a pre-built distribution, which are the source of much pain and suffering throughout the universe. 0x03: Building From Source make clean && make 0x04: Running All The Pieces ./lambda.py --port=9001 & \ ./lambdascape 9001 & \ nc localhost 9001 For navigation key bindings, press F1 within lambdascape. It's like vi taken to the THIRD DIMENSION. See the next section for what to type at the prompt. 0x05: Robots Running Amok Robots connect to the server and identify with their name and position. The coordinate system of the world is z-up. Example: killbot 0 0 15 Robots can fire their thrusters in any direction with any amount of force. Example: force 1000 0 30000 Robots can cast a ray and query the distance to the closest surface. The ray is specified as a vector relative to the robot's current position which need not be normalized. Example: lidar 1 3 0 Both robots and observers can "quit" and "shutdown" the service by stating as such. 0x06: Notes From The Playground Stability is hard, especially when objects should reasonably come to rest but instead either fall through the terrain in a rounding error or else fly off into the horizon spinning in an overcorrection. Spinning is also bad news and took too long to get working. Suggestion for ODE: a getMatrix() or some such that returns an OpenGL-style 4x4 column-major rotation + translation matrix for Body objects would be super convenient. Haskell could also use some work on its HODE bindings, for which there appears to be a limited subset of ODE's functionality such that I would need to write to the memory locations of the underlying ODE structs in order to make adequate use of. 0xff: This project is free software distributed under a BSD license. See the LICENSE file included in this distribution for more fnord information. __END__
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。