Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dot_generator tweaks for tunnels #884

Merged
merged 3 commits into from
Apr 27, 2021
Merged

dot_generator tweaks for tunnels #884

merged 3 commits into from
Apr 27, 2021

Conversation

caguero
Copy link
Contributor

@caguero caguero commented Apr 7, 2021

This patch modifies the way we assign costs in the dot file. In particular, it reduces the cost when two connected tiles are tunnel segments. To maintain backwards compatibility, a new parameter --finals needs to be passed to dot_generator to enable the new behavior.

To run it:

rosrun subt_ign dot_generator /home/caguero/subt_ws/src/subt/subt_ign/worlds/finals_qual.sdf --finals > /home/caguero/subt_ws/src/subt/subt_ign/worlds/finals_qual.dot
catkin_make install

Here are the results of dropping some breadcrumbs along the tunnel section.

Previous behavior:

fq_bc05

New behavior:

fq_bc05

caguero added 2 commits March 26, 2021 21:56
Signed-off-by: Carlos Agüero <caguero@openrobotics.org>
…uits.

Signed-off-by: Carlos Agüero <caguero@openrobotics.org>
@acschang
Copy link
Contributor

acschang commented Apr 8, 2021

Before this adjustment:
fq01_comms_pre

After this adjustment:
fq01_comms

After this adjustment + moving the breadcrumb to intersection in the tunnel sections:
fq02_comms

@angelacmaio
Copy link
Contributor

The commsFadingExponent is set lower for Finals and Cave worlds, so comms range in urban segments of Finals worlds appear to be extended compared to the same tiles in an urban world.
Does it make sense to set the commsFadingExponent to 2.5 for all worlds and adjust cost for the cave tiles accordingly?

@caguero
Copy link
Contributor Author

caguero commented Apr 21, 2021

The commsFadingExponent is set lower for Finals and Cave worlds, so comms range in urban segments of Finals worlds appear to be extended compared to the same tiles in an urban world.
Does it make sense to set the commsFadingExponent to 2.5 for all worlds and adjust cost for the cave tiles accordingly?

@angelacmaio , I was doing some experiments and a value of 1.5 for commsFadingExponent seems to be better tuned for our current comms model. We used 2.5 before the last big comms revision. Your suggestion to unify the parameter across circuits makes a lot of sense. My suggestion is to do what you suggest with 1.5. Our comms model is a bit more restrictive in terms of coverage than the past revision, that's why 1.5 seems better suited. If you give us the thumbs up, I'll push the new commit and it will be ready to review.

@angelacmaio
Copy link
Contributor

@caguero I like the plan of unifying and defer to your recommendation for the value. If you have a couple example results we can see, that would be great. Or if this requires regenerating dots for all worlds, if you make the changes to 1 or 2 worlds per type then we could test a few before expanding to all worlds.

Signed-off-by: Carlos Agüero <caguero@openrobotics.org>
@caguero
Copy link
Contributor Author

caguero commented Apr 22, 2021

@caguero I like the plan of unifying and defer to your recommendation for the value. If you have a couple example results we can see, that would be great. Or if this requires regenerating dots for all worlds, if you make the changes to 1 or 2 worlds per type then we could test a few before expanding to all worlds.

Side note: A change in the parameters doesn't require to regenerate the dot or dat file. That's only needed when there's a physical change in the layout of the world.

For reference, I'm adding here the results with this new set of parameters for the three simple_tunnel worlds.

simple_tunnel_01 with commsFadingExponent 1.5:
st1_comms

simple_tunnel_02 with commsFadingExponent 1.5:
st2_comms

simple_tunnel_03 with commsFadingExponent 1.5:
st3_comms

For comparison purposes, here's the simple_tunnel_03 again with commsFadingExponent 2.5:
st3_comms

As you can see, a value of 2.5 for these worlds seems a bit richer, however 1.5 it's still OK in my opinion. The reason for not observing the "yellow" and "red" areas is because the Gaussian function that CommsFadingExponent controls is wider when using 1.5. Then, the comms drop because of the visibility mainly. When using 2.5 the Gaussian is narrower and actually covers the distant tiles.

Having said that, this is the behavior in the tunnel circuit dominated by small tiles. In other circuits with bigger tiles, 1.5 behaves better because 2.5 causes the comms to drop very close to the message sender. That's the reason for me to recommend 1.5 because in the worst case scenario we can still communicate.

Out of curiosity I also tested a value of CommsFadingExponent 2.5 in the finals and reduced the visibility cost of the tiles. However it wasn't enough and I still saw many communication holes. I recommend this approach to also minimize the number of further changes reducing risk.

@acschang
Copy link
Contributor

Here's what the updated values look like in Tunnel and Urban simple environments 1-3

Tunnel:
tcs01_comms
tcs02_comms
tcs03_comms

Urban:
ucs01_comms
Note: The lack of communication range with the placement of the last two breadcrumbs is a little surprising but not unreasonable considering the range of the overall chain.
ucs02_comms
ucs03_comms
Note: The red colored tile in the bottom right corner is a visual bug. I manually inspected the communication in this tile and found the throughput to be similar to that of the tiles above and below.

I think the updated comms look promising with significant drop-off around corners when line-of-sight is lost.

@caguero caguero merged commit 8dd0aa3 into master Apr 27, 2021
nkoenig added a commit that referenced this pull request May 18, 2021
…Norlab (#860)

* Absolem: Added sensor configs 6, 7 and 8.

* remove ros from the x500 plugin (#891)

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* Model Submission for Emesent Hovermap (#892)

* Model submission for Hovermap sensor config 1 from Emesent

Signed-off-by: Rowan Ramamurthy <rowan.ramamurthy@emesent.io>

* updated specifications for the Emesent Hovermap

Signed-off-by: Rowan Ramamurthy <rowan.ramamurthy@emesent.io>

* Updated gimbal controller - fixed issue with battery usage

Signed-off-by: Rowan Ramamurthy <rowan.ramamurthy@emesent.io>

* Specifications updated for emesent hovermap sensor config 1

Signed-off-by: Rowan Ramamurthy <rowan.ramamurthy@emesent.io>

* Update specifications.md

Signed-off-by: Rowan Ramamurthy <rowan.ramamurthy@emesent.io>

* Update submitted_models/emesent_hovermap_sensor_config_1/CMakeLists.txt

Co-authored-by: Nate Koenig <nkoenig@users.noreply.github.com>

* Added details in the model.config

* Updated the min and max angle for the gpu lidar for the hovermap

* Updating min range and resolution for lidar

* Removing visualisation for lidar

* Added the number of horizontal samples for the gpu to 900

* Updated camera resolution, and also updated the weight in the specifications file to match the sdf values

* Updated noise parameters for the gimbal stabilising imu

* Added /sensor prefix to magnetometer output

* Added sensor prefixes for other sensor outputs

* Updated the imu with the new noise model

* Adding imu topic and specifications as per validation data

* Update submitted_models/emesent_hovermap_sensor_config_1/launch/spawner.rb

Co-authored-by: Nate Koenig <nkoenig@users.noreply.github.com>

* Renamed node with repeated name

* Updating the battery plugin to support a 21.6min flight time

* Updated specifications.md to align with provided validation data and spawner.rb accelerations.

* Adjusted limits on gimbals to align with observed behavior in validation data.

Co-authored-by: Rowan Ramamurthy <rowan.ramamurthy@emesent.io>
Co-authored-by: Peter <PeterQFR@users.noreply.github.com>
Co-authored-by: Nate Koenig <nkoenig@users.noreply.github.com>
Co-authored-by: Peter Milani <peter@emesent.io>

* Model Submission for CTU-CRAS-NORLAB MARV (#886)

* Added CTU_CRAS_NORLAB_MARV_SENSOR_CONFIG_1 (and other sensor configs).

* MARV: prefix links in URDF with robot name.

* MARV: Update RViz config.

* Removed debug prints

* MARV: Added mapping server relay.

* MARV: Downgraded model.sdf to SDF 1.6.

* MARV: Fixed IMU topic.

* MARV: Fixed cliff sensors ROS bridge.

* MARV: Fixed odom rate.

* MARV: Fixed flickering of lights.

* MARV: Update IMU parameters.

* MARV: Added camera intrinsics.

* MARV: Fixed lower bound of temperature for Boson camera.

* MARV: Changed Ouster precision and stddev to 0.01 to follow other SubT sensors.

* Added experimental validation of camera FoV to the specifications.

* Reduced battery life to 60 minutes until validation is complete.  The current maximum velocity and acceleration are set to the default limits for models without validation data.

* Added endurance adjustment to the specifications.md file.

Co-authored-by: Martin Pecka <peckama2@fel.cvut.cz>

* Model submission for BOSDYN_SPOT and two sensor configs of CTU-CRAS-Norlab (#841)

* Spot: First version, has actuators, but no control.

* Spot walking.

* Spot: improved modularity and made CCN_SPOT_SC1 compatible with BOSDYN_SPOT again.

The interface between BOSDYN_SPOT and sensor configs can be considered more or less stable now.

* Spot: Added cameras.

* Spot: Fixed a bug in handling leg collisions.

* Spot: specifications.md

* Spot: Fixed xacro utils to be compatible with MARV.

* Spot: Mono camera now also relays set_rate requests.

* Spot: Fixed IMU bridge.

* Spot: Added payload to CCN_SPOT_SC1.

* CCN_SPOT_SC1: Removed the total_mass_* helper link from URDF to avoid RViz displaying an error.

* Spot: Added CTU_CRAS_NORLAB_SPOT_SENSOR_CONFIG_2.

* CCN_SPOT_SC1: Added specifications.md.

* Spot: Added thumbnails.

* CCN_SPOT_SC1: Added thumbnails.

* Spot: Added mapping server bridge.

* Spot: Downgraded model.sdf to SDF 1.6.

* Spot: update IMU params.

* Spot: Add camera intrinsics.

Body depth camera is still just estimated.

* Spot: Fixed specifications.md part about contact system.

* Spot: Fixed mass by adding battery and tuned the PIDs a bit.

* Spot: Battery life set to 60 minutes.

* CCN_SPOT: Changed Ouster resolution and stddev to 0.01.

* Spot: removed unintentional change.

Signed-off-by: Martin Pecka <peckama2@fel.cvut.cz>

* Spot: Improvements of specifications.md.

* Spot: Adjusted battery life to 60 minutes.

* Spot: Resolved relative references to Fuel parts.

* added feedforward to bridge, controller msgs are now printed only once (#895)

* Set the state properly when recording is complete (#894)

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* Absolem: Remove debug visuals [SDF 1.6] (#878)

* Absolem: Sync Xacro: Change IMU and friction parameters in Xacro to correspond to the desired values in SDF.

* Absolem: Sync Xacro: Re-generate model.sdf using libsdformat 8.9.1 .

This commit makes no real change to the geometry of the model, it just represents some numbers and rotations differently.

* Absolem: Removed empty link visuals as they obstructed the omnicam and were not good for anything else.

* Add missing robot platform types (#890)

* Add missing robot platform types

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Added hovermap and marv

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Added spot and fix dependency

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* Fix CMakeLists (#897)

* Model Submission for CTU-CRAS-NORLAB Lily hexapod robot, sensor configs 1 and 2 (#867)

* added ctu_cras_norlab_lily ign simulation models

* changed thumbnails

* Fixed links in specifications.md .

* Downgraded model.sdf to SDF 1.6.

* Lily: Corrected mass.

* Lily: Added camera intrinsics.

* Lily: Changed ouster resolution and stddev to 0.01.

* Lily: Changed battery endurance to 60 minutes.

* Lily: Added robot_state_publisher to fill in missing static TFs.

* Lily: Edited Basler cam FOV to match in all places and correspond to intrinsics.

Co-authored-by: petr <petr.cizek@fel.cvut.cz>
Co-authored-by: Martin Pecka <peckama2@fel.cvut.cz>

* Spot: Disable nodelets because of spurious broken bonds. (#898)

* Model Submission for Coordinated Robotics' Crystal UAV Sensor Config 1 (#866)

* Coordinated Robotics Crystal UAV Sensor Config 1

* Updates based on reviews of other robots

* Camera precedent update, change colors to floats

* Adjust lighting to match camera change

* Update xacro

* Correct down lidar position, set top_scan to zero

Co-authored-by: Kevin <ak619@lafn.org>

* Model Submission for Coordinated Robotics Rocky Sensor Configs 1, 2 and 3 (#862)

* Coordinated Robotics Rocky

* Updates based on reviews of other robots

* Remove wheel slip plugin from Ackermann type steering vehicle

* Fixed camera name, changed color to floats

* Update cameras to match precedent

Co-authored-by: Kevin <ak619@lafn.org>

* Model Submission Coordinated Robotics Mike (#845)

* Add Coordinated Robotics Mike

* Updates based on reviews of other robots

* Add thermal camera to sensor list, fix wheel plugin wheel diameter, change to floating point colors, increase wheel joint speed

Co-authored-by: Kevin <ak619@lafn.org>

* Move battery plugin to the end of plugin list (#901)

Signed-off-by: Michael Carroll <michael@openrobotics.org>

* fixed pose of rs_up, rs_down rgbd cameras (#903)

* Update robot classes and marsupial pairs (#900)

* Adding lily to include

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Added CRYSTAL, MIKE, and ROCKY

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Added crystal as marsupial child

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Added new Coordinated marsupial pairs, adjusted Karen's collisions, and tweaked a few spawner z-offsets

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Remove debug statement

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* Update to use the lattest fog emitter code (#896)

* Update to use the lastest fog emitter code

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Merged with master

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Adjust pose based on latest emitter model

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* fixed fx, fy focal length of front camera to be consistent with hfov (#907)

* add set_rate service to X500 UAV (#906)

* added feedforward to bridge, controller msgs are now printed only once

* added set_rate services to laser, rgb, rgbd sensors

* dot_generator tweaks for tunnels (#884)

* Unified comms parameters across circuits.

Signed-off-by: Carlos Agüero <caguero@openrobotics.org>

* Absolem: Changed lidar and thermocam parameters, fixed RViz model.

* Absolem: Added Basler cameras intrinsics.

Co-authored-by: Nate Koenig <nkoenig@users.noreply.github.com>
Co-authored-by: Nate Koenig <nate@openrobotics.org>
Co-authored-by: acschang <61025344+acschang@users.noreply.github.com>
Co-authored-by: Rowan Ramamurthy <rowan.ramamurthy@emesent.io>
Co-authored-by: Peter <PeterQFR@users.noreply.github.com>
Co-authored-by: Peter Milani <peter@emesent.io>
Co-authored-by: Matej Petrlik <petrlmat@fel.cvut.cz>
Co-authored-by: Petr Cizek <cizekpet@gmail.com>
Co-authored-by: petr <petr.cizek@fel.cvut.cz>
Co-authored-by: knoedler <knoedler@dslextreme.com>
Co-authored-by: Kevin <ak619@lafn.org>
Co-authored-by: Michael Carroll <michael@openrobotics.org>
Co-authored-by: Carlos Agüero <caguero@osrfoundation.org>
@nkoenig nkoenig deleted the issue_810 branch September 27, 2021 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants