-
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.
Submitted models/robotika kloubak sensor config 1 (#381)
* Model submission for Kloubak sensor configuration 1 from Robotika * Kloubak URDF ver0 * Robotika Kloubak URDF ver1 * Robotika Kloubak - scale material parameters to 0..1 * Kloubak specification.md ver0 * Robotika Kloubak - update specification.md * Robotika Kloubak - fix also urdf/model.xacro (range 0..1) * Branch for pull request #431 * Robotika Kloubak K2 - fixes (lidar, odometry, battery power_load, ...) * Adjustment to route front and rear DiffDrive odometry to the appropriate topics. * Robotika Kloubak K2 - update specification * Robotika Kloubak K2 - update specification2 * Robotika Kloubak K2 - update specification3 * Update specifications.md with magnetometer and added optical frame publishers Signed-off-by: Nate Koenig <[email protected]> * Updating tf Signed-off-by: Nate Koenig <[email protected]> * Fix spawning Signed-off-by: Nate Koenig <[email protected]> * Updated to use photogrammetry meshes Signed-off-by: Nate Koenig <[email protected]> * Download model Signed-off-by: Nate Koenig <[email protected]> * 60 minutes of charge 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
802628d
commit b8d43cb
Showing
32 changed files
with
121,204 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_kloubak_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_kloubak_sensor_config_1) | ||
|
||
find_package(catkin REQUIRED) | ||
|
||
catkin_package() | ||
|
||
install(DIRECTORY launch materials 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_kloubak_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_kloubak_sensor_config_1)/urdf/model.xacro' name:=$(arg name)"/> | ||
</launch> | ||
|
170 changes: 170 additions & 0 deletions
170
submitted_models/robotika_kloubak_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> | ||
|
89 changes: 89 additions & 0 deletions
89
submitted_models/robotika_kloubak_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,89 @@ | ||
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.25} #{_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 front --> | ||
<plugin filename=\"libignition-gazebo-diff-drive-system.so\" | ||
name=\"ignition::gazebo::systems::DiffDrive\"> | ||
<left_joint>front_left_wheel_joint</left_joint> | ||
<right_joint>front_right_wheel_joint</right_joint> | ||
<wheel_separation>0.50</wheel_separation> | ||
<wheel_radius>0.15</wheel_radius> | ||
<topic>/model/#{_name}/cmd_vel_relay/front</topic> | ||
<odom_topic>/model/#{_name}/odometry/front</odom_topic> | ||
<min_velocity>-2.5</min_velocity> | ||
<max_velocity>2.5</max_velocity> | ||
<min_acceleration>-8.8</min_acceleration> | ||
<max_acceleration>8.8</max_acceleration> | ||
</plugin> | ||
<!-- Diff drive rear --> | ||
<plugin filename=\"libignition-gazebo-diff-drive-system.so\" | ||
name=\"ignition::gazebo::systems::DiffDrive\"> | ||
<left_joint>rear_left_wheel_joint</left_joint> | ||
<right_joint>rear_right_wheel_joint</right_joint> | ||
<wheel_separation>0.50</wheel_separation> | ||
<wheel_radius>0.15</wheel_radius> | ||
<topic>/model/#{_name}/cmd_vel_relay/rear</topic> | ||
<odom_topic>/model/#{_name}/odometry/rear</odom_topic> | ||
<min_velocity>-2.5</min_velocity> | ||
<max_velocity>2.5</max_velocity> | ||
<min_acceleration>-8.8</min_acceleration> | ||
<max_acceleration>8.8</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>13.214</initial_charge> | ||
<capacity>13.214</capacity> | ||
<resistance>0.052</resistance> | ||
<smooth_current_tau>5.0</smooth_current_tau> | ||
<power_load>3.33</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_kloubak_sensor_config_1 description.launch world_name:=#{_worldName} name:=#{_name}</command> | ||
</executable> | ||
<executable name='kloubak_ros_ign_bridge'> | ||
<command>roslaunch --wait robotika_kloubak_sensor_config_1 vehicle_topics.launch world_name:=#{_worldName} name:=#{_name}</command> | ||
</executable> | ||
HEREDOC | ||
end |
Oops, something went wrong.