-
Notifications
You must be signed in to change notification settings - Fork 69
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ROS package for a small house Gazebo world
- Loading branch information
1 parent
7d5b90d
commit 2333d24
Showing
406 changed files
with
721,848 additions
and
4 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
cmake_minimum_required(VERSION 2.8.3) | ||
project(aws_robomaker_small_house_world) | ||
|
||
find_package(catkin REQUIRED COMPONENTS | ||
gazebo_ros | ||
turtlebot3_description | ||
turtlebot3_navigation # required for copy of .rviz file | ||
) | ||
|
||
catkin_package() | ||
|
||
install(DIRECTORY launch models worlds maps photos | ||
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} | ||
) | ||
|
||
# Copy the rviz model for easier access in AWS RoboMaker RViz | ||
install(FILES ${turtlebot3_navigation_DIR}/../rviz/turtlebot3_navigation.rviz | ||
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/rviz | ||
RENAME turtlebot3_navigation.rviz | ||
) |
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 |
---|---|---|
@@ -1,7 +1,124 @@ | ||
## AWS Robomaker Small House World | ||
# AWS RoboMaker Small House World ROS package | ||
|
||
A house world with multiple rooms and furniture for AWS RoboMaker and Gazebo simulations. | ||
**This is a pre-release. Do not consume.** | ||
|
||
## License Summary | ||
![Gazebo01](docs/images/gazebo_01.png) | ||
|
||
# Include the world from another package | ||
|
||
* Update .rosinstall to clone this repository and run `rosws update` | ||
``` | ||
- git: {local-name: src/aws-robomaker-small-house-world, uri: 'https://github.com/aws-robotics/aws-robomaker-small-house-world.git', version: master} | ||
``` | ||
* Add the following to your launch file: | ||
```xml | ||
<launch> | ||
<!-- Launch World --> | ||
<include file="$(find aws_robomaker_small_house_world)/launch/small_house.launch"/> | ||
... | ||
</launch> | ||
``` | ||
|
||
# Load directly into Gazebo (without ROS) | ||
```bash | ||
export GAZEBO_MODEL_PATH=`pwd`/models | ||
gazebo worlds/small_house.world | ||
``` | ||
|
||
# ROS Launch with Gazebo viewer (without a robot) | ||
```bash | ||
# build for ROS | ||
rosdep install --from-paths . --ignore-src -r -y | ||
colcon build | ||
|
||
# run in ROS | ||
source install/setup.sh | ||
roslaunch aws_robomaker_small_house_world view_small_house.launch | ||
``` | ||
|
||
# Robot Simulation | ||
Do not use (0,0,0) for the initial position as it will collide with the lounge chairs. Instead, use (-3.5,1.0,0.0). | ||
|
||
With Turtlebot Waffle PI initially positioned between the living and kitchen: | ||
``` | ||
export TURTLEBOT3_MODEL=waffle_pi | ||
export ROBOT_INITIAL_POSE="-x 3.5 -y 1.0 -z 0.0 -R 0.0 -P 0.0 -Y 0.0" | ||
roslaunch turtlebot_gazebo turtlebot_world.launch world_file:=`pwd`/worlds/small_house.world | ||
``` | ||
|
||
# Building | ||
Include this as a .rosinstall dependency in your SampleApplication simulation workspace. ~colcon build` will build this repository. | ||
|
||
To build it outside an application, note there is no robot workspace. It is a simulation workspace only. | ||
|
||
```bash | ||
$ rosws update | ||
$ rosdep install --from-paths . --ignore-src -r -y | ||
$ colcon build | ||
``` | ||
|
||
|
||
# Navigation | ||
A SLAM-generated map for *Turtlebot Waffle PI* is included with a pre-defined route. | ||
|
||
## Run Navigation with Gazebo viewer: | ||
```bash | ||
export TURTLEBOT3_MODEL=waffle_pi | ||
roslaunch aws_robomaker_small_house_world small_house_turtlebot_navigation.launch gui:=true | ||
``` | ||
|
||
## Run Navigation with RViz (and Gazebo viewer): | ||
```bash | ||
export TURTLEBOT3_MODEL=waffle_pi | ||
roslaunch aws_robomaker_small_house_world small_house_turtlebot_navigation.launch open_rviz:=true gui:=true | ||
``` | ||
|
||
### Run RViz separately for navigation | ||
|
||
This will show you the SLAM map and current plan. | ||
|
||
Locally, | ||
``` | ||
rviz -d rviz/turtlebot3_navigation.rviz | ||
``` | ||
|
||
In RoboMaker RViz viewer, use File -> Open: | ||
``` | ||
.../workspace/<robot|simulation>-application/bundle/opt/aws_robomaker_small_house_world/share/aws_robomaker_small_house_world/rviz/turtlebot3_navigation.rviz | ||
``` | ||
|
||
![NavPath](docs/images/nav_path_rviz_gazebo.png) | ||
|
||
# How to Replace Photos in Picture Frames | ||
|
||
Picture frames use two textures for the model: | ||
- `aws_portraitA_01.png` - Frame texture | ||
- `aws_portraitA_02.png` - Picture texture | ||
|
||
To change a picture, one has to replace the `aws_portraitA_02.png` file. The new image will look best with same aspect ratio as the replaced image. | ||
|
||
Below is a table showing portrait type to picture resolution data and custom images from photos/. | ||
|
||
| Portrait Model | Resolution | Photo | | ||
| --- | --- | --- | | ||
| DeskPortraitA_01 | 650x1024 | | | ||
| DeskPortraitA_02 | 650x1024 | doug | | ||
| DeskPortraitB_01 | 650x1024 | | | ||
| DeskPortraitB_02 | 650x1024 | | | ||
| DeskPortraitC_01 | 1024x1024 | | | ||
| DeskPortraitC_02 | 1024x1024 | | | ||
| DeskPortraitD_01 | 1024x1024 | | | ||
| DeskPortraitD_02 | 1024x1024 | | | ||
| DeskPortraitD_03 | 1024x1024 | | | ||
| DeskPortraitD_04 | 1024x1024 | ray | | ||
| PortraitA_01 | 700x1024 | tim | | ||
| PortraitA_02 | 700x1024 | anamika | | ||
| PortraitB_01 | 700x1024 | renato | | ||
| PortraitB_02 | 700x1024 | brandon | | ||
| PortraitB_03 | 700x1024 | miaofei | | ||
| PortraitC_01 | 650x1024 | sean | | ||
| PortraitD_01 | 1024x450 | | | ||
| PortraitD_02 | 1024x450 | | | ||
| PortraitE_01 | 700x1024 | maggie | | ||
| PortraitE_02 | 700x1024 | iftach | | ||
|
||
This sample code is made available under a modified MIT license. See the LICENSE file. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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,16 @@ | ||
<launch> | ||
<!-- Always set GUI to false for AWS RoboMaker Simulation | ||
Use gui:=true on roslaunch command-line to run with a gui. | ||
--> | ||
<arg name="gui" default="false"/> | ||
|
||
<include file="$(find gazebo_ros)/launch/empty_world.launch"> | ||
<arg name="world_name" value="$(find aws_robomaker_small_house_world)/worlds/small_house.world"/> | ||
<arg name="paused" default="false"/> | ||
<arg name="use_sim_time" default="true"/> | ||
<arg name="gui" default="$(arg gui)"/> | ||
<arg name="headless" default="false"/> | ||
<arg name="debug" default="false"/> | ||
<arg name="verbose" default="true"/> | ||
</include> | ||
</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,40 @@ | ||
<launch> | ||
<!-- Turtlebot robot model --> | ||
<arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/> | ||
|
||
<!-- | ||
Only allow users to set (x,y,yaw), otherwise initial | ||
2D pose estimates will be wrong | ||
--> | ||
<arg name="x_pos" default="3.5"/> | ||
<arg name="y_pos" default="1.0"/> | ||
<arg name="yaw" default="0.0"/> | ||
|
||
<!-- | ||
Always set GUI to false for AWS RoboMaker Simulation | ||
Use gui:=true on roslaunch command-line to run with a gui. | ||
--> | ||
<arg name="gui" default="false"/> | ||
|
||
<!-- Load the small house world into Gazebo --> | ||
<include file="$(find aws_robomaker_small_house_world)/launch/small_house.launch"> | ||
<arg name="gui" value="$(arg gui)"/> | ||
</include> | ||
|
||
<!-- Spawn the robot into Gazebo with the turtlebot description --> | ||
<include file="$(find turtlebot3_description_reduced_mesh)/launch/spawn_turtlebot.launch"> | ||
<arg name="x_pos" default="$(arg x_pos)"/> | ||
<arg name="y_pos" default="$(arg y_pos)"/> | ||
<arg name="yaw" default="$(arg yaw)"/> | ||
</include> | ||
|
||
<!-- Enable navigation system --> | ||
<include file="$(find aws_robomaker_small_house_world)/launch/turtlebot3_navigation.launch"> | ||
<arg name="map_file" value="$(find aws_robomaker_small_house_world)/maps/turtlebot3_$(arg model)/map.yaml"/> | ||
<!-- Initial pose must match the starting position of the robot for an aligned map --> | ||
<arg name="initial_pose_x" value="$(arg x_pos)"/> | ||
<arg name="initial_pose_y" default="$(arg y_pos)"/> | ||
<arg name="initial_pose_a" default="$(arg yaw)"/> | ||
<arg name="open_rviz" value="false"/> | ||
</include> | ||
</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,22 @@ | ||
<launch> | ||
<!-- World --> | ||
<arg name="gui" default="false"/> | ||
<include file="$(find aws_robomaker_small_house_world)/launch/small_house.launch"> | ||
<arg name="gui" value="$(arg gui)"/> | ||
</include> | ||
|
||
<!-- Spawn robot into simulation --> | ||
<include file="$(find turtlebot3_description_reduced_mesh)/launch/spawn_turtlebot.launch"/> | ||
|
||
<!-- SLAM | ||
Launch this command to generate a occupancy map for the Turtlebot. This map | ||
can then be used by turtlebot3_navigation. | ||
See http://emanual.robotis.com/docs/en/platform/turtlebot3/slam/#slam | ||
--> | ||
<include file="$(find turtlebot3_slam)/launch/turtlebot3_slam.launch"/> | ||
<arg name="open_rviz" default="false"/> | ||
<arg name="slam_methods" default="gmapping"/> | ||
</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,37 @@ | ||
<!-- Copied from turtlebot3_navigation, allow initial pose arguments --> | ||
<launch> | ||
<!-- Arguments --> | ||
<arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/> | ||
<arg name="map_file" default="$(find turtlebot3_navigation)/maps/map.yaml"/> | ||
<arg name="open_rviz" default="false"/> | ||
<arg name="initial_pose_x" default="0.0"/> | ||
<arg name="initial_pose_y" default="0.0"/> | ||
<arg name="initial_pose_a" default="0.0"/> | ||
|
||
<!-- Turtlebot3 | ||
<include file="$(find turtlebot3_bringup)/launch/turtlebot3_remote.launch"> | ||
<arg name="model" value="$(arg model)" /> | ||
</include> | ||
--> | ||
|
||
<!-- Map server --> | ||
<node pkg="map_server" name="map_server" type="map_server" args="$(arg map_file)"/> | ||
|
||
<!-- AMCL --> | ||
<include file="$(find turtlebot3_navigation)/launch/amcl.launch"> | ||
<arg name="initial_pose_x" default="$(arg initial_pose_x)"/> | ||
<arg name="initial_pose_y" default="$(arg initial_pose_y)"/> | ||
<arg name="initial_pose_a" default="$(arg initial_pose_a)"/> | ||
</include> | ||
|
||
<!-- move_base --> | ||
<include file="$(find turtlebot3_navigation)/launch/move_base.launch"> | ||
<arg name="model" value="$(arg model)" /> | ||
</include> | ||
|
||
<!-- rviz --> | ||
<group if="$(arg open_rviz)"> | ||
<node pkg="rviz" type="rviz" name="rviz" required="true" | ||
args="-d $(find turtlebot3_navigation)/rviz/turtlebot3_navigation.rviz"/> | ||
</group> | ||
</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 @@ | ||
<launch> | ||
<!-- Show Gazebo GUI on launch --> | ||
<include file="$(find aws_robomaker_small_house_world)/launch/small_house.launch"> | ||
<arg name="gui" value="true"/> | ||
</include> | ||
</launch> |
Large diffs are not rendered by default.
Oops, something went wrong.
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,7 @@ | ||
image: map.pgm | ||
resolution: 0.050000 | ||
origin: [-10.000000, -10.000000, 0.000000] | ||
negate: 0 | ||
occupied_thresh: 0.65 | ||
free_thresh: 0.196 | ||
|
Binary file not shown.
Binary file added
BIN
+1.08 MB
...er_residential_AirconditionerA_01/materials/textures/aws_AirconditionerA_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.