Files
mir_amr/simulators/aws-robomaker-small-warehouse-world_h/README.md
2026-05-28 10:29:58 +07:00

119 lines
4.9 KiB
Markdown
Executable File

# AWS RoboMaker Small Warehouse World
![Gazebo01](docs/images/small_warehouse_gazebo.png)
## AWS Robomaker Small Warehouse World on Gzweb
![Gzweb01](docs/images/gzweb_aws_warehouse.png)
This Gazebo world is well suited for organizations who are building and testing robot applications for warehouse and logistics use cases.
## 3D Models included in this Gazebo World
| Model (/models) | Picture |
| :------------- |:-------------:|
| **aws_robomaker_warehouse_Bucket_01** | ![Model: Buckets](docs/images/models_buckets.png)
| **aws_robomaker_warehouse_ClutteringA_01, aws_robomaker_warehouse_ClutteringC_01, aws_robomaker_warehouse_ClutteringD_01** | ![Model: Box Clusters](docs/images/models_boxes.png) |
| **aws_robomaker_warehouse_DeskC_01** | ![Model: Desk](docs/images/models_desk.png)
| **aws_robomaker_warehouse_GroundB_01** | ![Model: Ground Paint](docs/images/models_warehouse_ground_paint.png)
| **aws_robomaker_warehouse_TrashCanC_01** | ![Model: Humans](docs/images/models_trashcan.png)
| **aws_robomaker_warehouse_Lamp_01** | ![Model: Ceiling Lamp](docs/images/models_ceiling_lamp.png)
| **aws_robomaker_warehouse_PalletJackB_01** | ![Model: Pallet Jack](docs/images/models_lift.png)
| **aws_robomaker_warehouse_ShelfD_01, aws_robomaker_warehouse_ShelfE_01, aws_robomaker_warehouse_ShelfF_01** | ![Model: Pallet Jack](docs/images/models_shelves.png)
## Building and Launching the Gazebo World with your ROS Applications
* Create or update a **.rosinstall** file in the root directory of your ROS workspace. Add the following line to **.rosintall**:
```
- git: {local-name: src/aws-robomaker-small-warehouse-world, uri: 'https://github.com/aws-robotics/aws-robomaker-small-warehouse-world.git', version: master}
```
* Change the directory to your ROS workspace and run `rosws update`
* Add the following include to the ROS launch file you are using:
```xml
<launch>
<!-- Launch World -->
<include file="$(find aws_robomaker_small_warehouse_world)/launch/small_warehouse.launch"/>
...
</launch>
```
* Build your application using `colcon`
```bash
rosws update
rosdep install --from-paths . --ignore-src -r -y
colcon build
```
## Example: Running this world directly in Gazebo without a ROS application
To open this world in Gazebo, change the directory to your ROS workspace root folder and run:
```bash
cd aws-robomaker-small-warehouse-world
export GAZEBO_MODEL_PATH=`pwd`/models
gazebo worlds/small_warehouse.world
```
## Example: Running this world on Gazebo headless and running the UI on Gzweb
*Tested in ROS Kinetic/Melodic, Gazebo 7/9 with node version 8.11.3/10.22.1*
To open this world in Gzweb, There are two steps,
1) In a terminal, change to your ROS workspace root folder and run gzserver with the small warehouse world:
```bash
cd aws-robomaker-small-warehouse-world
export GAZEBO_MODEL_PATH=`pwd`/models
gzserver worlds/small_warehouse.world
```
2) In another terminal, setup and run GzWeb
- Install GzWeb by following the [official documentation](http://gazebosim.org/gzweb#install-collapse-1):
**Important**:
* The recommended NodeJS versions are 4 up to version 8.
* Watch out for [conflicting installations of Node/NodeJS](https://askubuntu.com/questions/695155/node-nodejs-have-different-version)
* See [Troubleshooting section](http://gazebosim.org/gzweb#install-collapse-3) for other issues
- Deploy GzWeb
- Approach 1: Copy all the Gazebo models from small-warehouse world to gzweb/http/client/assets/, and run the deploy script
```bash
cp -r ~/aws-robomaker-small-warehouse-world/models/. ~/gzweb/http/client/assets
cd ~/gzweb
export GAZEBO_MASTER_URI="http://localhost:11345" # change localhost to IP address of the gzserver machine
npm run deploy
npm start
```
- Approach 2: without copying the Gazebo models, export Gazebo model path and run the deploy script with `-m local`
```bash
cd aws-robomaker-small-warehouse-world
export GAZEBO_MODEL_PATH=`pwd`/models
cd ~/gzweb
export GAZEBO_MASTER_URI="http://localhost:11345" # change localhost to IP address of the gzserver machine
npm run deploy --- -m local
npm start
```
## Example: Running this world directly using ROS without a simulated robot
To launch this base Gazebo world without a robot, clone this repository and run the following commands. **Note: ROS and gazebo must already be installed on the host.**
```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_warehouse_world view_small_warehouse.launch
```
**Visit the [AWS RoboMaker website](https://aws.amazon.com/robomaker/) to learn more about building intelligent robotic applications with Amazon Web Services.**
## Notes
- Lighting might vary on different system(s) (e.g brighter on system without CPU and darker on system with GPU)
- Adjust lighting parameters in .world file as you need