Skip to content

Commit

Permalink
Task 0 required packages
Browse files Browse the repository at this point in the history
  • Loading branch information
architjain19 committed Sep 3, 2023
0 parents commit 7252c8c
Show file tree
Hide file tree
Showing 186 changed files with 86,653 additions and 0 deletions.
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# How to use this branch-

## Some changes before you build the package
* Changes in SkyX (Gazebo)

* `SkyX_Moon.fragment` file located at /usr/share/gazebo-11/media/skyx/ needs to be updated with the one added here- https://github.com/eYantra-Robotics-Competition/eyrc-23-24-cl/tree/task_0/eyantra_warehouse/config/SkyX_Moon.fragment.

* `SkyX_Moon.png` file located at /usr/share/gazebo-11/media/skyx/ needs to be updated with the one added here- https://github.com/eYantra-Robotics-Competition/eyrc-23-24-cl/tree/task_0/eyantra_warehouse/config/SkyX_Moon.png.

* Install these packages if you haven't installed before:

* Install pip3 using `sudo apt install python3-pip`

* Install transforms3d `sudo pip3 install transforms3d`

* Install gazebo-ros using `sudo apt install ros-humble-gazebo-ros`

* Install gazebo-plugins using `sudo apt install ros-humble-gazebo-plugins`

* Install xacro using `sudo apt install ros-humble-xacro`

* Install tf_transformations using `sudo apt install ros-humble-tf-transformations`

## To spawn the robot in the Gazebo Simulator, use-
`ros2 launch ebot_description ebot_gazebo_launch.py`

## To control the robot using keyboard, use-
`ros2 run teleop_twist_keyboard teleop_twist_keyboard`
27 changes: 27 additions & 0 deletions aws-robomaker-small-warehouse-world/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package aws_robomaker_small_warehouse_world
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Forthcoming
-----------
* Use floor friction value from Gazebo empty world (`#13 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/13>`_)
* ROS2 branch
* Adding gazebo model path to stop requiring modification of gazebo model path env var (`#11 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/11>`_)
* Merge pull request `#5 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/5>`_ from RoverRobotics-forks/foxy-devel
Foxy devel
* fixing missing gazebo path exports not covered in env_hooks
* Merge branch 'foxy-devel' of https://github.com/aws-robotics/aws-robomaker-small-warehouse-world into foxy-devel
* merging with branch PR `#5 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/5>`_. Also updated readme
* updated for merge request `#2 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/2>`_
* updated cmake according to review
* Tuning lighting for system(s) with/without GPU (`#2 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/2>`_) (`#6 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/6>`_)
- Adjust ceiling lamp's parameters so that it works system(s) with/without GPU
* update to ament_cmake and added env-hooks
* Add support for launching in ROS2 foxy
* Add support for launch with ROS2
* Merge pull request `#1 <https://github.com/aws-robotics/aws-robomaker-small-warehouse-world/issues/1>`_ from konduri/no-roof-warehouse
warehouse world with no roof
* no roof world and launch
* Add initial package contents
* Initial commit
* Contributors: Amazon GitHub Automation, Anson Wong, Hai Quang, Kim (kenvink), Joep Tool, Matthew Murphy, Ojas Joshi, Sam Gundry, Steve Macenski, konduri, padiln, root
29 changes: 29 additions & 0 deletions aws-robomaker-small-warehouse-world/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
################################################################################
# Set minimum required version of cmake, project name and compile options
################################################################################
cmake_minimum_required(VERSION 3.5)
project(aws_robomaker_small_warehouse_world)

################################################################################
# Find ament packages and libraries for ament and system dependencies
################################################################################
find_package(ament_cmake REQUIRED)
find_package(gazebo_ros REQUIRED)

################################################################################
# Install
################################################################################
install(
DIRECTORY launch models worlds maps rviz
DESTINATION share/${PROJECT_NAME}
)

ament_environment_hooks("${CMAKE_CURRENT_SOURCE_DIR}/env-hooks/aws_robomaker_small_warehouse_world.dsv.in")

ament_export_dependencies(ament_cmake)
ament_export_dependencies(gazebo_ros)

################################################################################
# Macro for ament package
################################################################################
ament_package()
4 changes: 4 additions & 0 deletions aws-robomaker-small-warehouse-world/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
[email protected] with any additional questions or comments.
61 changes: 61 additions & 0 deletions aws-robomaker-small-warehouse-world/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Contributing Guidelines

Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
documentation, we greatly value feedback and contributions from our community.

Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
information to effectively respond to your bug report or contribution.


## Reporting Bugs/Feature Requests

We welcome you to use the GitHub issue tracker to report bugs or suggest features.

When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:

* A reproducible test case or series of steps
* The version of our code being used
* Any modifications you've made relevant to the bug
* Anything unusual about your environment or deployment


## Contributing via Pull Requests
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

1. You are working against the latest source on the *master* branch.
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.

To send us a pull request, please:

1. Fork the repository.
2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
3. Ensure local tests pass.
4. Commit to your fork using clear commit messages.
5. Send us a pull request, answering any default questions in the pull request interface.
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.

GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).


## Finding contributions to work on
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.


## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
[email protected] with any additional questions or comments.


## Security issue notifications
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.


## Licensing

See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.

We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes.
15 changes: 15 additions & 0 deletions aws-robomaker-small-warehouse-world/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

90 changes: 90 additions & 0 deletions aws-robomaker-small-warehouse-world/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# AWS RoboMaker Small Warehouse World

![Gazebo01](docs/images/small_warehouse_gazebo.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: ros2}
```
* Change the directory to your ROS workspace and run `rosws update`
* Add the following include to the ROS2 launch file you are using:
```python
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
def generate_launch_description():
warehouse_pkg_dir = get_package_share_directory('aws_robomaker_small_warehouse_world')
warehouse_launch_path = os.path.join(warehouse_pkg_dir, 'launch')
warehouse_world_cmd = IncludeLaunchDescription(
PythonLaunchDescriptionSource([warehouse_launch_path, '/small_warehouse.launch.py'])
)
ld = LaunchDescription()
ld.add_action(warehouse_world_cmd)
return ld
```
* 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
export GAZEBO_MODEL_PATH=`pwd`/models
gazebo worlds/small_warehouse/small_warehouse.world
```

## 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 ROS2
rosdep install --from-paths . --ignore-src -r -y
colcon build

# run in ROS2
source install/setup.sh
ros2 launch aws_robomaker_small_warehouse_world small_warehouse.launch.py
```

**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


## We have delinked this repo for solely eYRC-23-24 purpose
Binary file not shown.
Binary file not shown.
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.
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.
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.
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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
prepend-non-duplicate;GAZEBO_MODEL_PATH;share/aws_robomaker_small_warehouse_world/models
prepend-non-duplicate;GAZEBO_MODEL_PATH;share/aws_robomaker_small_warehouse_world/worlds
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright (c) 2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import os

from ament_index_python.packages import get_package_share_directory

import launch
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource


def generate_launch_description():
ld = launch.LaunchDescription([
launch.actions.IncludeLaunchDescription(
launch.launch_description_sources.PythonLaunchDescriptionSource(
[get_package_share_directory(
'aws_robomaker_small_warehouse_world'), '/launch/small_warehouse.launch.py']
),
launch_arguments={
'world': os.path.join(get_package_share_directory('aws_robomaker_small_warehouse_world'), 'worlds', 'no_roof_small_warehouse', 'no_roof_small_warehouse.world')
}.items()
)
])
return ld
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Copyright (c) 2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import os

from ament_index_python.packages import get_package_share_directory

import launch
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, ExecuteProcess, IncludeLaunchDescription
from launch.conditions import IfCondition
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration, PythonExpression
from launch_ros.actions import Node


def generate_launch_description():
# Get the launch directory
aws_small_warehouse_dir = get_package_share_directory('aws_robomaker_small_warehouse_world')
gazebo_ros = get_package_share_directory('gazebo_ros')

# Launch configuration variables specific to simulation
use_sim_time = LaunchConfiguration('use_sim_time')
use_simulator = LaunchConfiguration('use_simulator')
headless = LaunchConfiguration('headless')
world = LaunchConfiguration('world')

declare_use_sim_time_cmd = DeclareLaunchArgument(
'use_sim_time',
default_value='True',
description='Use simulation (Gazebo) clock if true')

declare_simulator_cmd = DeclareLaunchArgument(
'headless',
default_value='False',
description='Whether to execute gzclient)')

declare_world_cmd = DeclareLaunchArgument(
'world',
default_value=os.path.join(aws_small_warehouse_dir, 'worlds', 'small_warehouse', 'small_warehouse.world'),
description='Full path to world model file to load')

# Specify the actions
start_gazebo_server_cmd = launch.actions.IncludeLaunchDescription(
launch.launch_description_sources.PythonLaunchDescriptionSource(
os.path.join(gazebo_ros, 'launch', 'gzserver.launch.py'))
)

start_gazebo_client_cmd = launch.actions.IncludeLaunchDescription(
launch.launch_description_sources.PythonLaunchDescriptionSource(
os.path.join(gazebo_ros, 'launch', 'gzclient.launch.py')),
condition=IfCondition(PythonExpression(['not ', headless]))
)

# Create the launch description and populate
ld = LaunchDescription()

# Declare the launch options
ld.add_action(declare_use_sim_time_cmd)
ld.add_action(declare_simulator_cmd)
ld.add_action(declare_world_cmd)

# Add any conditioned actions
ld.add_action(start_gazebo_server_cmd)
ld.add_action(start_gazebo_client_cmd)

return ld
Binary file not shown.
5 changes: 5 additions & 0 deletions aws-robomaker-small-warehouse-world/maps/002/map.pgm

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions aws-robomaker-small-warehouse-world/maps/002/map.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
image: map.pgm
resolution: 0.020000
origin: [-10.000000, -20.240000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

5 changes: 5 additions & 0 deletions aws-robomaker-small-warehouse-world/maps/005/map.pgm

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions aws-robomaker-small-warehouse-world/maps/005/map.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
image: map_rotated.png
resolution: 0.050000
origin: [-7.000, -10.500000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

# -3.071 3.583
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 7252c8c

Please sign in to comment.