Why CBSystem is worth it

From CajunBot Wiki

Jump to: navigation, search


We would like to share with you some of the reasons we think that CBSystem is worth the time and effort you'll need to invest to use it. There are three important aspects of cbsystem: steering, planning, and sensing. These three aspects are tied together with a powerful simulation environment.

Consider:

Contents

[edit] Steering

The CajunBot vehicle that is simulated is not simply a box sliding around on a flat surface. We simulate a body attached two four wheels by a spring suspension. If the surface that the vehicle is driving on is bumpy, you will actually see it bounce as the springs of the suspension adjust to the terrain. All of the bodies have mass and behave with the same physical properties that you would expect from a real world object. To move the vehicle, some force has to be applied. As expected, it takes some time for that force to increase the velocity of the vehicle. If the vehicle applies the brake, that again is another force acting on the vehicle and it will decelerate accordingly.

The way we interface to the real vehicle is by sending commands of two varieties: accelerate or decelerate, and turn the steering wheel left or turn it right. In the real world, it takes some time for the vehicle's wheels to actually turn after the command is given to turn. We simulate this as well. If you tell the vehicle to turn its wheels by 45 degrees, it will actually take a short amount of time for the wheels to reach that position, it is not an instantaneous movement just as in the real world. This is part of what makes our simulation environment useful.

When developing a steering controller it is helpful to have most of the factors affecting vehicle performance accounted for in the simulation. This is actually how we've developed our most recent steering controller. Since the acceleration curve could be simulated, as well as the mass of the vehicle, the spring constants of the suspension, and the wheel turning rate (to name a few), development time of the steering controller was drastically be reduced. However, this is not the only benefit. Having simulated these characteristics of the vehicle, the simulation itself then became a fairly reliable indicator of how the vehicle would behave under real circumstances. If the steering controller told the vehicle to take a turn, which then caused the vehicle to roll in the simulation, we knew for certain that in the real world the same type of scenario would not be safe and that the parameters of the controller needed to be adjusted.

[edit] Sensing

Of course, an autonomous vehicle isn't only about steering. The real world environment must be sensed and surrounding obstacles need to be known. If an unexpected obstacle crosses the path of the vehicle, then the system needs to be able to know about it and react accordingly. In some cases though, certain types of scenarios are too unsafe to test in the real world.

Using the strengths of the CBSystem simulator and the software code structure, we have designed drivers that interface with the physical devices and provide their data to the rest of the system, as well as simulated device drivers that interact with the simulated world to provide the same type of data. Not only can certain types of tests be unsafe, but they can take precious time to perform. In the same vein of using the simulator to test the steering controller and the vehicle dynamics, we have fully simulated how the sensors behave. For example, we have implemented LIDAR sensors that fire rays that intersect with other objects, and the range and angle is reported back to the system using the same channels that the real device would.

If we are developing a certain algorithm to merge points and report back obstacles, the actual sensor placement can become very important and critical to what the algorithm determines are obstacles. Creating new mounting locations and rewiring on the real vehicle can be an arduous process potentially taking many hours before the first tests can begin, and that doesn't include sensor calibration. In the simulator, the sensor can be moved with the change of a few configuration lines and the algorithm can be tested over and over again with minute changes.

The amount of time saved is enormous, especially if you already have a simulator ready to go such as in CBSystem. Part of what makes it so useful is that the simulation environment is not flat, but 3 dimensional, and the sensors that are simulated have the same properties as those in the real world.

To be certain that an algorithm works correctly given perfect sensor input is important, and part of the development process. Once it is established that devices work correctly under ideal conditions, many types of sensor noise can be simulated using different noise generation algorithms, which could be difficult to test in the real world.

[edit] Planning

The heart of the system that unites sensing and steering is the path planner. It is able to process the input given by the sensors to determine the state of the world and provide as output the steering commands that the vehicle needs to safely navigate the environment and reach its goal.

CBSystem's modularity allows the brain of the system, the path planner, to be swapped out and replaced with a different one. For the first DARPA challenge, we had developed a path planner that was capable of navigating open spaces. With the advent of the Urban Challenge, a new path planner capable of knowing and obeying the rules of the road by following lanes (etc.) had to be developed. Using our simulation platform, we were able to incrementally develop and test a new path planner in place of the old one.

The role that the simulation played in this aspect cannot be overstated. The ability to construct custom scenarios and test them over and over as software changes were made was immensely helpful in catching bugs and keeping the testing team safe. We used the simulation environment to construct automatic testing scenarios that would number in the thousands to rigorously test the path planners features for reliability and safety.

CBSystem contains many modules that go hand in hand with each other. The ability to control a simulated vehicle the same way (and have it behave) as the real vehicle, and then sense and simulate virtual obstacles with virtual sensors just as real obstacles would be sensed with sensors, and then to tie that together with a path planner in a package that can be tested over and over again is the real benefit of CBSystem.

[edit] Navigation

Personal tools