-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Model submission for Freyja sensor configuration 1 from Robotika (#382)
* Model submission for Freyja sensor configuration 1 from Robotika * Model submission for Freyja sensor configuration 1 from Robotika (FIXUP specification.md) * Update info about Freyja communication (LoRa) * Freyja - fix camera center * Robotika Freyja - fix filename model.urdf * Robotika Freyja - fix materials to be in parameters in range 0..1 * Robotika Freyja - fix mount parts of the wheel * Branch for pull request #423 * Virtual Freyja fixes * Virtual Freyja - fix power_load to reflect much longer durability * Adjustment of battery life to 240 minutes. * update model to use tf2 static pose messages, and added a better xacro file Signed-off-by: Nate Koenig <[email protected]> * spacing Signed-off-by: Nate Koenig <[email protected]> * Download model Signed-off-by: Nate Koenig <[email protected]> * Updated thumbnails and battery life Signed-off-by: Nate Koenig <[email protected]> Co-authored-by: md <devnull@localhost> Co-authored-by: Martin Dlouhy <[email protected]> Co-authored-by: acschang <[email protected]> Co-authored-by: Arthur Schang <[email protected]> Co-authored-by: Nate Koenig <[email protected]>
- Loading branch information
1 parent
b8d43cb
commit 3745fc5
Showing
20 changed files
with
24,015 additions
and
0 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
13 changes: 13 additions & 0 deletions
13
submitted_models/robotika_freyja_sensor_config_1/CMakeLists.txt
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,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 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 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 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.