forked from gtri/scrimmage
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from gtri/master
update
- Loading branch information
Showing
218 changed files
with
4,530 additions
and
1,544 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,3 +35,5 @@ devel | |
tags* | ||
**.swp | ||
**.DS_Store | ||
**.ccls* | ||
.vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0"?> | ||
<?xml-stylesheet type="text/xsl" href="http://gtri.gatech.edu"?> | ||
<params> | ||
<model>wing.obj</model> | ||
<texture>wing-green.png</texture> | ||
<!--<visual_scale>0.004598789</visual_scale> --> | ||
<visual_scale>0.000658892</visual_scale> <!-- 1 m width --> | ||
<visual_rpy>0 0 90</visual_rpy> | ||
</params> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -46,4 +46,4 @@ plugins: | |
# - about.md | ||
# - other.md | ||
|
||
baseurl: "/scrimmage" | ||
#baseurl: "/scrimmage" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
Design Principles | ||
====================== | ||
|
||
Entity state() vs state_truth() | ||
------------------------------- | ||
|
||
The purpose of the separate ``state()`` and ``state_truth()`` shared pointers | ||
is to allow the researcher to simulate the effects of introducing noise into | ||
the entity's own position, velocity, orientation, etc. When the researcher is | ||
not concerned with introducing state noise, the ``state()`` and | ||
``state_truth()`` pointers point to the same memory location. However, if the | ||
researcher wants to introduce state noise, a sensor plugin can be used to | ||
create a new state pointer instance and assign the pointers appropriately. For | ||
example, in the ``init()`` function of the ``SimpleINS`` plugin, the following | ||
code creates a new State pointer to hold noisy state information: | ||
|
||
.. code-block:: c++ | ||
:linenos: | ||
|
||
// Create a new State instance | ||
parent_->state() = std::make_shared<State>(); | ||
|
||
// Initialize the new state's values with the ground truth values | ||
*(parent_->state()) = *(parent_->state_truth()); | ||
In the ``step()`` function, the plugin copies the ``state_truth()`` pointer, | ||
|
||
.. code-block:: c++ | ||
:linenos: | ||
|
||
StateWithCovariance ns(*(parent_->state_truth())); | ||
adds noise to the copied state values, and then assigns the ``state()`` pointer | ||
with the noisy values: | ||
|
||
.. code-block:: c++ | ||
:linenos: | ||
|
||
*(parent_->state()) = static_cast<sc::State>(msg->data); | ||
This allows the autonomy and controller plugins to only have to consider the | ||
``state_`` pointer without having to consider whether ground truth or noisy | ||
state information is being used in the simulation. However, the developer has | ||
to determine whether they need to access the possibly noisy ``state()`` or the | ||
``state_truth()`` pointers when writing sensor, interaction, metric, and | ||
network plugins. Motion model plugins only need to consider the ``state_`` | ||
pointer since they are always initialized with the ``ground_truth_`` pointer in | ||
``Entity.cpp``. | ||
|
||
Testing a Real INS System | ||
~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
A real inertial navigation system (INS) will take inputs from GPS, LIDAR, | ||
accelerometers, and gyroscopes. If the researcher wants to develop and simulate | ||
an INS implementation, GPS, LIDAR, accelerometer, and gyroscope sensor plugins | ||
should be configured to publish their respective data to an INS sensor | ||
plugin. The INS sensor plugin should be the only the sensor plugin that makes | ||
and reassigns the ``state()`` pointer in its ``init()`` function. After each | ||
step of the INS sensor plugin, it should assign the ``state()`` pointer with | ||
its best estimate of the entity's state. This will allow the entity's autonomy | ||
and controller plugins to use this best estimated state for later calculations. | ||
|
||
|
||
Noisy Contacts | ||
-------------- | ||
|
||
For now, the developer can use the NoisyContacts sensor plugin. However, we | ||
will soon be developing a noisy / ground truth interface to contacts that is | ||
similar to the entity's interface. |
Oops, something went wrong.