Now that we have compiled the program, it can now be executed eitheron a CBE system or a simulation of a CBE system. In this case, we willuse the IBM Full System Simulator for the Cell Broadband Engine asa simulation of a CBE system by starting the simulator, importing the program,and executing it.
The simulator is now ready to importthe sample program into its environment. Before doing that, however, you canconfirm that the program is not in the simulator environment, by enteringthe ls command at the prompt in the console window, and observingthat simple is not listed in the directory listing.
Thiscommand tells the simulator environment to \"call through\" to the simulatorhosting environment's /tmp directory, retrieve the file called simple, and copy that file to the simulator file system.If you now enter an ls command in the console window, youwill see simple listed in the current directory. Figure 3 showsthe process of loading the program into the simulation environment.
There are many options when launching the simulator. This section will take you through the most used options. If you are happy with the simulator setup from above, you can skip this section and jump to the Moving the Robot section.
Important: You can specify more than one flag meaning you could launch more than one of the GUIs we offer. The simulator is very resource intensive. The more GUIs running, the more likely it is that you will get tolerance violation errors when you try to move. If you are running a virtual machine, please make sure that it has access to your graphics card.
This flag is the speed multiplier for the simulator. By default, it is set to 1 meaning the simulator runs in real time. If you are having issues with simulator performance, you can slow the simulator down by specifying a value less than one. For example, the following would slow the simulator down to half speed:
If you have a high performance machine, you can speed up the simulator by specifying a value greater than 1. Please note, if you specify a speed up greater than what your computer can handle, the simulator will not run at the speed you specified. In this case, you can run gz stats in another terminal to figure out what the actual speed up is. If the factor in gz stats doesn't match the speed you specified, you can expect weird simulator issues.
Also note that all GUIs have a substantial effect on performance and care should be taken when speeding up the simulation with GUIs enabled. Under certain high-load conditions (many robots and/or a high speed factor) the outgoing heartbeat queue in simulation ends up being too small for the number of messages that must be delivered. The outcome is this error message in your console:
This flag tells ROS to launch the default robot into the world. If you are having performance issues starting up the simulator, you may want to launch the world without the default robot and then spawn the robot after the simulator starts up. For more information on this, please see the 'Issues Starting up the Simulator' section in Common Simulation Issues. To launch the world without the default robot, please run:
The Astrobee flight software is still in development and there are bugs that we don't always catch. If you come across a bug that crashes the flight software, please help us fix it. To help us, we need to know what happened. The crashed output should state the node that caused the crash. If it isn't clear which node it was, please email us the output and we can help. Once you have the name of the node, please set the debug flag to the node name. This flag will cause a GNU Debugger(GDB) terminal to pop up. Once the code crashes, navigate to the GDB terminal, type bt, and hit enter. This should display a backtrace. Please copy the backtrace and send it to us. Here is an example of launching the simulator and debugging the executive node:
Our script to launch GDS expects GDS to be in a certain location on your machine. Thus, if you would like to use simulator GDS flag, please make a folder in your home directory called GDS and in that directory, make a symbolic link called 'latest' to the unextracted gds folder you received from your Astrobee point of contact. If you want, you can put the unextracted folder in the gds folder you created. Here's a rough idea of what to do:
A teleop tool has been added to allow you to issue some of the basic Astrobee commands and get a small set of telemetry from the robot. This should only be used to play with the simulator and get a feel for how Astrobee works. As an external user, we consider you to be a guest scientist and we expect you to follow the guest science framework we have created. Please see the Guest Science Applications section for more information.
When running RVIZ, you may notice the big \"No Image\" text in the two DEBUG windows that are meant to show camera information. This is because, by default, we don't publish simulated camera images for the navigation and dock cameras due to the fact that simulating these images is very resource intensive. If you do want to generate these images, please open astrobee/config/simulation/simulation.config and change one or more of nav_cam_rate and dock_cam_rate to something other than 0. We recommend setting these values to 1 meaning these images will be published once per second. After this, you should see those images when you start the simulator. Please note this only works when the namespace is blank. In other words, please don't use the ns flag when launching the simulator if you want to see the images. To show sci camera images, modify analogously the sci_cam_rate field, and enable this camera from the Panels menu in RVIZ.
Important Unless you have a high performance machine, there is a good chance that these images will not initialize properly and you will be looking at the inside of the robot. If this happens, you will need to launch the world and Astrobee separately. Please follow the issues starting up the simulator section in Common Simulation Issues with one caveat. DO NOT start up Astrobee (i.e. don't issue the second terminal command) until 30 to 40 seconds after RVIZ has started up. If you have a low performance computer, this fix may not be the only thing you have to do to fix the images. Please try reducing the speed of your simulator as well. For information on how to reduce the simulator speed, please see the speed flag section.
The Astrobee simulator supports running up to three robots. Please keep in mind that each simulated robot takes computer resources and can cause simulator issues if your machine cannot support the extra load.
The robot namespaces we support are \"bumble\", \"queen\", and \"honey\". Please DO NOT capitalize the namespace. When starting the simulator, you can either start with no robots or you can start with the default robot and one of the namespaces. To start the simulator without a robot, please run:
Note: The simulator and teleop tool may be able to support more than 3 robots if needed. However, GDS only supports 3 robots so the documentation limits spawning to 3. We will leave it as an exercise for the user to launch more than 3 robots.
If a network or a simulation are loaded, the navigation through thenetwork is possible with the mouse or with the keyboard. One can dragthe network with the left mouse button pressed into all directions andzoom either by using the mouse wheel or by pressing the right mousebutton and moving the mouse up and down. For fine grained zooming (halfzoom speed) press the \"Control\" key while using the mouse wheel, fordouble speed use \"Shift\".
As soon as a network is displayed, one can interact with the view.Pressing the left mouse button within the view and moving the mouse withthe button pressed, will shift the network. Moving the mouse up and downwhile pressing the right mouse button changes the zoom of the network.It is also possible to change the zoom by using the mouse wheel (holding increases the zooming speed and holding lowers it).Zooming is either focused on the center of the screen or on the cursorposition. The zoom style can be selected with the button.
When tracking a vehicle (Shift-Click on Vehicle or Vehicle context menu option 'Start Tracking'), a new speedFactor slider is shown.This slider allows setting the speedFactor to values between 0 and 2.
The first three lines set an initial position for node 2. The last line in theabove example causes node 2 to move towards the destination (130, 280) atspeed 15. All units are screen coordinates, with speed in units per second.The total script time is learned after all nodes have reached their waypoints.Initially, the time slider in the mobility script dialog will not beaccurate.
In Home Run Simulator, you start out as a basic baller. You'll have a regular old baseball bat and a pretty useless baseball ball. By simply smacking the ball as hard as you can, you'll earn XP and gold that can be used to upgrade your gear. More upgrades mean more power, and more power means an even more massive home run. The rest of the game is basically that, on repeat, forever, until you reach Jupiter. These codes give you a big head start if you want those big smashes right off the bat. If you like the sound of Home Run Simulator, you will like our list of the best Roblox simulator games.
VUnit automatically detects which simulators are available on thePATH environment variable and by default selects the first onefound. For people who have multiple simulators installed theVUNIT_SIMULATOR environment variable can be set to one ofactivehdl, rivierapro, ghdl or modelsim to explicitlyspecify which simulator to use.
Note that VHDL revision 2019 is unsupported by most vendors, and support of VHDL 2008 features is uneven.Check the documentation of the simulator before using features requiring revisions equal or newer than 2008.
Games running in the simulator can be controlled by the on-screen GUI, or keyboard shortcuts. The simulator can als