Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
7a63579
test commit
bfotheri Mar 17, 2020
329de4c
Close branch submitted_models/marble_husky_sensor_config_1.
bfotheri Mar 17, 2020
030c799
Added files for husky. Name will need to be changed
Mar 17, 2020
a192cfb
trying to commit husky stuff
Mar 17, 2020
5caea1e
creating hd2 branch
Mar 17, 2020
3d3e31e
Downward facing facing is there
bfotheri Mar 17, 2020
5aafe9e
working on qav500
Mar 17, 2020
890e3fa
Got all sensor positioned and represented visually up to the pan tilt…
bfotheri Mar 17, 2020
db38616
Model sdf now has the gimbal pan, still unsure of how to control it t…
bfotheri Mar 20, 2020
fc7865f
Until the joints can be tested this is where the marble hsuky model w…
bfotheri Mar 21, 2020
2a60738
Got the joint state controller and publisher added in. Pan/Tilt
Mar 24, 2020
4da704e
More works needs to be done on bridges to control gimbal, but comment…
bfotheri Mar 24, 2020
6fa2260
adding hd2. stl of tracked vehicle is in
Mar 24, 2020
875f505
We can now command the gimbal pan/tilt using ros topics as long as yo…
Mar 24, 2020
6dee0db
Rudimentary visuals done
bfotheri Mar 24, 2020
8b1987f
Merged Brett's changes with mine
Mar 24, 2020
173d7fa
Fixed the joint publisher. Topic shows up in ros as /<vehicle name>/…
Mar 24, 2020
e53d69e
hd2 model in. Working on sensors
Mar 24, 2020
5d518e0
Removing non-hd2 vehicles from this branch
Mar 25, 2020
25aac74
Update sdf file, add test_gimbal script, add specifications.md file, …
Mar 25, 2020
04215ba
Added the xacro file for rviz
Mar 25, 2020
13cbf0f
added a file
Mar 25, 2020
0252f36
Started over on sdf file by starting with husky file and just replaci…
Mar 25, 2020
79727f5
How about now?? remerging!
Mar 25, 2020
e5ef73b
Updated sensor description in package.xml
Mar 25, 2020
a2f9261
Got the pan/tilt and all vehicle topics working, I think. Need to go…
Mar 25, 2020
76ee296
Added urdf file (xacro) for rviz
Mar 25, 2020
7ed1b24
Updated the IMU model to match the specs from datasheet for Microstra…
Mar 25, 2020
849d602
Updated IMU model to Microstrain 3DM-GX5-25 as in HD2. Added link to…
Mar 25, 2020
e5ef8d8
Add pan and tilt echoing scripts
Mar 25, 2020
431e524
Updated and completed specifications.md file for husky
Mar 26, 2020
68f4f53
Put in four wheels and modified the differential drive system
bfotheri Mar 26, 2020
522eff6
Updated package.xml, specifications.md, and added Build instructions …
Mar 26, 2020
42977bc
Merged Brett's extra wheel changes and fixed a typo.
Mar 26, 2020
7e2b587
Couple of edits to description files.
Mar 26, 2020
f5197bd
added tracks. modified sensor placement
Mar 26, 2020
b1d6527
merging with previous commits
Mar 26, 2020
4b4e1a2
Updated the xacro
Mar 26, 2020
44489a7
Update cost info in specs.
Mar 26, 2020
b15e791
Update cost info
Mar 26, 2020
d962d1e
Fixed 3d Lidar obstructions
bfotheri Mar 26, 2020
7ce345e
Get rid of garbage file...
Mar 26, 2020
03f5e6b
Merged default branch (synced from upstream) into marble_husky branch
Mar 26, 2020
c0274a9
Merge default branch into marble_hd2.
Mar 26, 2020
d772ca3
Merged upstream
Mar 26, 2020
6679d24
Fixed position of lidar and plate sensor
bfotheri Mar 27, 2020
02572a3
Merged the two heads
bfotheri Mar 27, 2020
ce3818e
Fixed urdf and xacro
Mar 27, 2020
c54ddd4
Updated xacro/urdf file
Mar 27, 2020
93a7e29
Fixing inertia gimbal problems
bfotheri Apr 2, 2020
8db54ee
Fixing gimbal inertia
bfotheri Apr 2, 2020
4309536
Fixing gimbal inertia, using rod inertia formulas
bfotheri Apr 2, 2020
ff81571
Fixing gimbal inertia, using rod inertia formulas, and correct tabbing
bfotheri Apr 2, 2020
ef8e1d9
Updated intertias using rod formulas
bfotheri Apr 2, 2020
0d2418c
Branch for pull request #427
nkoenig Apr 2, 2020
e156f80
Branch for pull request #426
nkoenig Apr 2, 2020
e6952a6
Merged in derekvasquez/marble_submitted_models/submitted_models/marbl…
nkoenig Apr 7, 2020
a2c6bbe
Merged in derekvasquez/marble_submitted_models/submitted_models/marbl…
nkoenig Apr 7, 2020
4a88755
Fix scientific notation in husky model.sdf file
realdealneil Apr 15, 2020
baae569
Removed scientific notation in model.sdf file IMU settings
realdealneil Apr 15, 2020
c605f82
reduce the resolution of the husky cameras. At 720p, everything is r…
realdealneil Apr 15, 2020
8304f65
Merge pull request #1 from marblesubt/model_pr_426
realdealneil Apr 16, 2020
ed75f16
Merge pull request #2 from marblesubt/submitted_models/marble_hd2_sen…
realdealneil Apr 16, 2020
bea8c23
Updated ouster lidar sensor model
bfotheri Apr 16, 2020
d6bb580
Updated ouster lidar model
bfotheri Apr 16, 2020
0d9bc0e
Merge branch 'model_pr_426' of https://github.com/realdealneil/subt i…
realdealneil Apr 16, 2020
79e0a7c
Merge branch 'model_pr_427' of https://github.com/realdealneil/subt i…
realdealneil Apr 16, 2020
455c5a4
Reduce resolution of cameras on hd2 to 640x480 to help simulation wor…
realdealneil Apr 16, 2020
7eee760
Changed the forward and downward facing rgbd cameras to use a lower r…
realdealneil Apr 16, 2020
d6b9441
Reduce resolution of forward and downward rgbd cameras to help simula…
realdealneil Apr 16, 2020
f067923
Removing hd2 from husky branch. It shouldn't be here.
realdealneil Apr 17, 2020
caa9964
Fix the mount angle and sweep angle of the light, and fix the pose o…
realdealneil Apr 17, 2020
6a11751
Merge pull request #399 from realdealneil/model_pr_426
nkoenig May 12, 2020
1d2062f
Merge branch 'master' into model_pr_426
bfotheri Jun 3, 2020
bf85a41
updated with master
bfotheri Jun 3, 2020
fd9ad0c
changing from OS1 gen 2 to OS1 gen 1
bfotheri Jun 9, 2020
37ef025
updated IMU to X1 model
bfotheri Jun 10, 2020
656b10b
Merge pull request #456 from realdealneil/model_pr_426
acschang Jun 11, 2020
65acd3c
Updated branch based on recommended PR changes (#464)
bfotheri Jun 18, 2020
4e80116
Merge branch 'cave_feature_release3' into model_pr_426
Jun 18, 2020
252b726
Added to download script
Jun 18, 2020
5facc3e
Change pan/tilt joints to be controlled by force commands.
caguero Jun 18, 2020
c3a79f8
Tweak gimbal limits
caguero Jun 19, 2020
9d80031
Merge branch 'cave_feature_release3' into model_pr_426
Jun 19, 2020
677a7fe
Merged and added missing download
Jun 19, 2020
d89eadf
Merge branch 'model_pr_426' of github.com:osrf/subt into model_pr_426
Jun 19, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docker/download_models.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/R
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/ROBOTIKA_FREYJA_SENSOR_CONFIG_1" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/MARBLE_QAV500_SENSOR_CONFIG_1" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/CERBERUS_ANYMAL_B_SENSOR_CONFIG_1" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/MARBLE_HUSKY_SENSOR_CONFIG_1" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/MARBLE_HD2_SENSOR_CONFIG_1" -v 4

# Download the tunnel circuit models
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/subt_tunnel_staging_area" -v 4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"configurations": [
{
"browse": {
"databaseFilename": "",
"limitSymbolsToIncludedHeaders": true
},
"includePath": [
"/opt/ros/melodic/include/**",
"/usr/include/**"
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/local/cuda/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"python.autoComplete.extraPaths": [
"/opt/ros/melodic/lib/python2.7/dist-packages"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Building ros_ign_bridge to make pan/tilt gimbal work (on marble vehicles):

First, follow instructions for building from source on this page:
https://github.com/osrf/ros_ign/tree/melodic/ros_ign_bridge

Except, use the following clone URL instead:
git clone https://github.com/osrf/ros_ign.git -b melodic

Once you've built, you will need to stack your workspace (subt workspace)
on top of this workspace. To do this, do as follows:

```
cd ~/subt_ws
rm -rf build devel install
source /opt/ros/melodic/setup.bash
source ~/bridge_ws/install/setup.bash
catkin_make install
```

Once the binaries for this package are updated a simple "sudo apt-get install ros-melodic-ros-ign-bridge" will suffice for installation

13 changes: 13 additions & 0 deletions submitted_models/marble_husky_sensor_config_1/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 2.8.3)
project(marble_husky_sensor_config_1)

find_package(catkin REQUIRED)

catkin_package()

install(DIRECTORY launch meshes materials urdf
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

install(FILES model.sdf model.config
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

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 marble_husky_sensor_config_1)/urdf/robot_from_sdf.xacro' name:=$(arg name)"/>
</launch>

169 changes: 169 additions & 0 deletions submitted_models/marble_husky_sensor_config_1/launch/example.ign
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
<?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 submitted_models/marble_husky_sensor_config_1/launch/spawner.rb
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.2} #{_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.45649 * 1.5}</wheel_separation>
<wheel_radius>0.1651</wheel_radius>
<topic>/model/#{_name}/cmd_vel_relay</topic>
Copy link
Contributor

@caguero caguero Jun 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, consider adding this block to limit the maximum velocities and accelerations:

"      <min_velocity>-1</min_velocity>\n"\
"      <max_velocity>1</max_velocity>\n"\
"      <min_acceleration>-2</min_acceleration>\n"\
"      <max_acceleration>3</max_acceleration>\n"\

These parameters have been introduced here. You should also add it to the same file under robotica_x2_sensor_config_1.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. PR will be submitted shortly to reflect these changes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I was reusing the same comment from other team. Feel free to ignore my comment about robotika.

<min_velocity>-1</min_velocity>
<max_velocity>1</max_velocity>
<min_acceleration>-3</min_acceleration>
<max_acceleration>3</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>12.694</voltage>
<open_circuit_voltage_constant_coef>12.694</open_circuit_voltage_constant_coef>
<open_circuit_voltage_linear_coef>-3.1424</open_circuit_voltage_linear_coef>
<initial_charge>78.4</initial_charge>
<capacity>78.4</capacity>
<resistance>0.061523</resistance>
<smooth_current_tau>1.9499</smooth_current_tau>
<power_load>6.6</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 marble_husky_sensor_config_1 description.launch world_name:=#{_worldName} name:=#{_name}</command>
</executable>
<executable name='topics'>
<command>roslaunch --wait marble_husky_sensor_config_1 vehicle_topics.launch world_name:=#{_worldName} name:=#{_name}</command>
</executable>
HEREDOC
end
Loading