-
Notifications
You must be signed in to change notification settings - Fork 104
Model submission for Freyja sensor configuration 1 from Robotika #382
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
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
81c822a
Model submission for Freyja sensor configuration 1 from Robotika
a58d0c2
Model submission for Freyja sensor configuration 1 from Robotika (FIX…
b35cfcd
Update info about Freyja communication (LoRa)
b091ac1
Freyja - fix camera center
cb445ad
Robotika Freyja - fix filename model.urdf
9fd2804
Robotika Freyja - fix materials to be in parameters in range 0..1
21ac781
Robotika Freyja - fix mount parts of the wheel
bbbe982
Branch for pull request #423
nkoenig 6439c2a
Merged in robotikacz/subt_robotika_freyja_sensor_config_1/submitted_m…
nkoenig 3a74b1d
Virtual Freyja fixes
m3d d5bd2ae
Virtual Freyja - fix power_load to reflect much longer durability
m3d 4ce1422
Merge pull request #439 from robotika/model_pr_423
acschang 9c6006b
Adjustment of battery life to 240 minutes.
acschang f27f2d6
Merge branch 'cave_feature_release3' into model_pr_423
6cef276
update model to use tf2 static pose messages, and added a better xacr…
1c3339c
spacing
6493f47
Download model
fe566c7
Updated thumbnails and battery life
e7d87cd
Merged
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
13 changes: 13 additions & 0 deletions
13
submitted_models/robotika_freyja_sensor_config_1/CMakeLists.txt
This file contains hidden or 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,13 @@ | ||
| cmake_minimum_required(VERSION 2.8.3) | ||
| project(robotika_freyja_sensor_config_1) | ||
|
|
||
| find_package(catkin REQUIRED) | ||
|
|
||
| catkin_package() | ||
|
|
||
| install(DIRECTORY launch meshes urdf | ||
| DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) | ||
|
|
||
| install(FILES model.sdf model.config | ||
| DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) | ||
|
|
6 changes: 6 additions & 0 deletions
6
submitted_models/robotika_freyja_sensor_config_1/launch/description.launch
This file contains hidden or 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,6 @@ | ||
| <?xml version="1.0"?> | ||
| <launch> | ||
| <arg name="name" doc="Name of Vehicle"/> | ||
| <param name="$(arg name)/robot_description" command="$(find xacro)/xacro '$(find robotika_freyja_sensor_config_1)/urdf/model.xacro' name:=$(arg name)"/> | ||
| </launch> | ||
|
|
170 changes: 170 additions & 0 deletions
170
submitted_models/robotika_freyja_sensor_config_1/launch/example.ign
This file contains hidden or 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,170 @@ | ||
| <?xml version="1.0"?> | ||
| <!-- Usage: ign launch path/to/example.ign robotName:=<X1> | ||
|
|
||
| Parameters: | ||
| robotName: Name to be assigned to model | ||
| --> | ||
|
|
||
| <% | ||
| require_relative 'spawner' | ||
|
|
||
| # Modify these as needed | ||
| $enableGroundTruth = true | ||
| $headless = local_variables.include?(:headless) ? :headless : false | ||
|
|
||
| %> | ||
|
|
||
| <% | ||
|
|
||
| unless local_variables.include?(:robotName) | ||
| raise "missing parameters. robotName is a required parameter" | ||
| end | ||
|
|
||
| # This assumes that this launch file is in a directory below the model | ||
| modelURI = File.expand_path("../", File.dirname(__FILE__)) | ||
| $worldName = 'example' | ||
| worldFile = File.join(File.expand_path("../worlds", File.dirname(__FILE__)), "#{$worldName}.sdf") | ||
|
|
||
| %> | ||
|
|
||
| <ignition version='1.0'> | ||
| <env> | ||
| <name>IGN_GAZEBO_SYSTEM_PLUGIN_PATH</name> | ||
| <value>$LD_LIBRARY_PATH</value> | ||
| </env> | ||
|
|
||
| <!-- Start ROS first. This is a bit hacky for now. --> | ||
| <!-- Make sure to source /opt/ros/melodic/setup.bash --> | ||
| <executable name='ros'> | ||
| <command>roslaunch subt_ros competition_init.launch world_name:=<%=$worldName%> vehicle_topics:=0 enable_ground_truth:=<%=($enableGroundTruth)?"1":"0"%> robot_names:=<%=robotName%></command> | ||
| </executable> | ||
|
|
||
| <plugin name="ignition::launch::GazeboServer" | ||
| filename="libignition-launch-gazebo.so"> | ||
| <world_file><%= worldFile %></world_file> | ||
| <run>true</run> | ||
| <levels>false</levels> | ||
| <record> | ||
| <enabled>false</enabled> | ||
| </record> | ||
|
|
||
| <plugin entity_name="<%= $worldName %>" | ||
| entity_type="world" | ||
| filename="libignition-gazebo-physics-system.so" | ||
| name="ignition::gazebo::systems::Physics"> | ||
| </plugin> | ||
|
|
||
| <plugin entity_name="<%= $worldName %>" | ||
| entity_type="world" | ||
| filename="libignition-gazebo-sensors-system.so" | ||
| name="ignition::gazebo::systems::Sensors"> | ||
| <render_engine>ogre2</render_engine> | ||
| </plugin> | ||
| <plugin entity_name="<%= $worldName %>" | ||
| entity_type="world" | ||
| filename="libignition-gazebo-user-commands-system.so" | ||
| name="ignition::gazebo::systems::UserCommands"> | ||
| </plugin> | ||
| <plugin entity_name="<%= $worldName %>" | ||
| entity_type="world" | ||
| filename="libignition-gazebo-scene-broadcaster-system.so" | ||
| name="ignition::gazebo::systems::SceneBroadcaster"> | ||
| </plugin> | ||
| <plugin entity_name="<%= $worldName %>" | ||
| entity_type="world" | ||
| filename="libignition-gazebo-imu-system.so" | ||
| name="ignition::gazebo::systems::Imu"> | ||
| </plugin> | ||
|
|
||
| <plugin entity_name="<%= $worldName %>" | ||
| entity_type="world" | ||
| filename="libignition-gazebo-magnetometer-system.so" | ||
| name="ignition::gazebo::systems::Magnetometer"> | ||
| </plugin> | ||
|
|
||
| <plugin entity_name="<%= $worldName %>" | ||
| entity_type="world" | ||
| filename="libignition-gazebo-air-pressure-system.so" | ||
| name="ignition::gazebo::systems::AirPressure"> | ||
| </plugin> | ||
| </plugin> | ||
|
|
||
| <%if !$headless %> | ||
| <executable_wrapper> | ||
| <plugin name="ignition::launch::GazeboGui" | ||
| filename="libignition-launch-gazebogui.so"> | ||
| <world_name><%= $worldName %></world_name> | ||
| <window_title>SubT Simulator</window_title> | ||
| <window_icon><%= ENV['SUBT_IMAGES_PATH'] %>/SubT_logo.svg</window_icon> | ||
| <plugin filename="GzScene3D" name="3D View"> | ||
| <ignition-gui> | ||
| <title>3D View</title> | ||
| <property type="bool" key="showTitleBar">false</property> | ||
| <property type="string" key="state">docked</property> | ||
| </ignition-gui> | ||
|
|
||
| <engine>ogre2</engine> | ||
| <scene>scene</scene> | ||
| <ambient_light>0.2 0.2 0.1</ambient_light> | ||
| <background_color>0.8 0.8 0.8</background_color> | ||
| <camera_pose>-6.3 -4.2 3.6 0 0.268 0.304</camera_pose> | ||
| <service>/world/<%= $worldName %>/scene/info</service> | ||
| <pose_topic>/world/<%= $worldName %>/pose/info</pose_topic> | ||
| <scene_topic>/world/<%= $worldName %>/scene/info</scene_topic> | ||
| <deletion_topic>/world/<%= $worldName %>/scene/deletion</deletion_topic> | ||
| </plugin> | ||
| <plugin filename="WorldControl" name="World control"> | ||
| <ignition-gui> | ||
| <title>World control</title> | ||
| <property type="bool" key="showTitleBar">false</property> | ||
| <property type="bool" key="resizable">false</property> | ||
| <property type="double" key="height">72</property> | ||
| <property type="double" key="width">121</property> | ||
| <property type="double" key="z">1</property> | ||
|
|
||
| <property type="string" key="state">floating</property> | ||
| <anchors target="3D View"> | ||
| <line own="left" target="left"/> | ||
| <line own="bottom" target="bottom"/> | ||
| </anchors> | ||
| </ignition-gui> | ||
|
|
||
| <play_pause>true</play_pause> | ||
| <step>true</step> | ||
| <start_paused>true</start_paused> | ||
| <service>/world/<%= $worldName %>/control</service> | ||
| <stats_topic>/world/<%= $worldName %>/stats</stats_topic> | ||
|
|
||
| </plugin> | ||
|
|
||
| <plugin filename="WorldStats" name="World stats"> | ||
| <ignition-gui> | ||
| <title>World stats</title> | ||
| <property type="bool" key="showTitleBar">false</property> | ||
| <property type="bool" key="resizable">false</property> | ||
| <property type="double" key="height">110</property> | ||
| <property type="double" key="width">290</property> | ||
| <property type="double" key="z">1</property> | ||
|
|
||
| <property type="string" key="state">floating</property> | ||
| <anchors target="3D View"> | ||
| <line own="right" target="right"/> | ||
| <line own="bottom" target="bottom"/> | ||
| </anchors> | ||
| </ignition-gui> | ||
|
|
||
| <sim_time>true</sim_time> | ||
| <real_time>true</real_time> | ||
| <real_time_factor>true</real_time_factor> | ||
| <iterations>true</iterations> | ||
| <topic>/world/<%= $worldName %>/stats</topic> | ||
| </plugin> | ||
| </plugin> | ||
| </executable_wrapper> | ||
| <%end%> | ||
|
|
||
| <%= spawner(robotName, modelURI, $worldName, 0, 0, 0, 0, 0, 0) %> | ||
| <%= rosExecutables(robotName, $worldName) %> | ||
|
|
||
| </ignition> | ||
|
|
76 changes: 76 additions & 0 deletions
76
submitted_models/robotika_freyja_sensor_config_1/launch/spawner.rb
This file contains hidden or 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,76 @@ | ||
| def spawner(_name, _modelURI, _worldName, _x, _y, _z, _roll, _pitch, _yaw) | ||
| <<-HEREDOC | ||
| <spawn name='#{_name}'> | ||
| <name>#{_name}</name> | ||
| <allow_renaming>false</allow_renaming> | ||
| <pose>#{_x} #{_y} #{_z + 0.15} #{_roll} #{_pitch} #{_yaw}</pose> | ||
| <world>#{_worldName}</world> | ||
| <is_performer>true</is_performer> | ||
| <sdf version='1.6'> | ||
| <include> | ||
| <name>#{_name}</name> | ||
| <uri>#{_modelURI}</uri> | ||
| <!-- Diff drive --> | ||
| <plugin filename=\"libignition-gazebo-diff-drive-system.so\" | ||
| name=\"ignition::gazebo::systems::DiffDrive\"> | ||
| <left_joint>front_left_wheel_joint</left_joint> | ||
| <left_joint>rear_left_wheel_joint</left_joint> | ||
| <right_joint>front_right_wheel_joint</right_joint> | ||
| <right_joint>rear_right_wheel_joint</right_joint> | ||
| <wheel_separation>0.38</wheel_separation> | ||
| <wheel_radius>0.1275</wheel_radius> | ||
| <topic>/model/#{_name}/cmd_vel_relay</topic> | ||
| <min_velocity>-2.5</min_velocity> | ||
| <max_velocity>2.5</max_velocity> | ||
| <min_acceleration>-10.6</min_acceleration> | ||
| <max_acceleration>10.6</max_acceleration> | ||
| </plugin> | ||
| <!-- Publish robot state information --> | ||
| <plugin filename=\"libignition-gazebo-pose-publisher-system.so\" | ||
| name=\"ignition::gazebo::systems::PosePublisher\"> | ||
| <publish_link_pose>true</publish_link_pose> | ||
| <publish_sensor_pose>true</publish_sensor_pose> | ||
| <publish_collision_pose>false</publish_collision_pose> | ||
| <publish_visual_pose>false</publish_visual_pose> | ||
| <publish_nested_model_pose>#{$enableGroundTruth}</publish_nested_model_pose> | ||
| <use_pose_vector_msg>true</use_pose_vector_msg> | ||
| <static_publisher>true</static_publisher> | ||
| <static_update_frequency>1</static_update_frequency> | ||
| </plugin> | ||
| <!-- Battery plugin --> | ||
| <plugin filename=\"libignition-gazebo-linearbatteryplugin-system.so\" | ||
| name=\"ignition::gazebo::systems::LinearBatteryPlugin\"> | ||
| <battery_name>linear_battery</battery_name> | ||
| <voltage>25.2</voltage> | ||
| <open_circuit_voltage_constant_coef>25.2</open_circuit_voltage_constant_coef> | ||
| <open_circuit_voltage_linear_coef>-7.2</open_circuit_voltage_linear_coef> | ||
| <initial_charge>5</initial_charge> | ||
| <capacity>5</capacity> | ||
| <resistance>0.0052</resistance> | ||
| <smooth_current_tau>5.0</smooth_current_tau> | ||
| <power_load>1.2552</power_load> | ||
| <start_on_motion>true</start_on_motion> | ||
| </plugin> | ||
| <!-- Gas Sensor plugin -->" | ||
| <plugin filename="libGasEmitterDetectorPlugin.so" | ||
| name="subt::GasDetector"> | ||
| <topic>/model/#{_name}/gas_detected</topic> | ||
| <update_rate>10</update_rate> | ||
| <type>gas</type> | ||
| </plugin> | ||
| </include> | ||
| </sdf> | ||
| </spawn> | ||
| HEREDOC | ||
| end | ||
|
|
||
| def rosExecutables(_name, _worldName) | ||
| <<-HEREDOC | ||
| <executable name='robot_description'> | ||
| <command>roslaunch --wait robotika_freyja_sensor_config_1 description.launch world_name:=#{_worldName} name:=#{_name}</command> | ||
| </executable> | ||
| <executable name='topics'> | ||
| <command>roslaunch --wait robotika_freyja_sensor_config_1 vehicle_topics.launch world_name:=#{_worldName} name:=#{_name}</command> | ||
| </executable> | ||
| HEREDOC | ||
| end | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nkoenig Sorry, I do not understand your change of capacity from 20 Ah, which corresponds to the real robot, to 5 Ah, which I do not know where it comes from. Isn't it cutting the driving time to a quarter?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Validation data was not included to support the specified battery life of 14400 seconds as required by the Model Preparation Guide. The battery life has been reduced to 60 minutes to match the other UGVs for now, but if the endurance test data is provided, we can adjust the model to match the robot's demonstrated battery life.