This commit is contained in:
hq 2026-08-07 11:14:54 +08:00
parent ae4f7f13a0
commit 31038085fb
323 changed files with 159600 additions and 30 deletions

7
.gitignore vendored
View File

@ -0,0 +1,7 @@
build/
log/
autorun_logs/
__pycache__/
*.pyc
*.log
node_modules/

1
.space_id Normal file
View File

@ -0,0 +1 @@
2361156b428d4ec3b304debed63dfe7e

View File

@ -1,18 +1,34 @@
# 开始拉取代码
# 仓库 3D 场景
## 场景预览
![迷你仓库场景预览](doc/assets/warehouse_preview.png)
---
```
git clone http://git-test.databall.tech:3000/databall-official/9b9c87b18201479ea66eb7e6b554a98e.git
cd 9b9c87b18201479ea66eb7e6b554a98e
## 启动(唯一命令,无需编译)
# add your files to repo
git push
卡片内已包含预编译 `install/`**直接运行即可**,不要 `colcon build`
```bash
./gzsim_run.sh
| `./gzsim_stop.sh` | 停止仿真 |
```
---
```
cd existing_repo
git remote add origin http://git-test.databall.tech:3000/databall-official/9b9c87b18201479ea66eb7e6b554a98e.git
git branch -M main
git push -uf origin main
**必须等到**终端出现:
```text
[autorun] GzWeb scene OK (... bytes), 9002 stable
[autorun] ✓ 全部就绪 — 现在刷新「仿真器」面板
```

3
autorun.sh Normal file → Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
# 容器 INIT_SCRIPT 入口 — 仅调用唯一启动脚本
exec /workspace/gzsim_run.sh

40
doc.md Normal file
View File

@ -0,0 +1,40 @@
# 仓库 3D 场景
## 场景预览
![迷你仓库场景预览](doc/assets/warehouse_preview.png)
---
## 启动(唯一命令,无需编译)
卡片内已包含预编译 `install/`**直接运行即可**,不要 `colcon build`
```bash
./gzsim_run.sh
| `./gzsim_stop.sh` | 停止仿真 |
```
**必须等到**终端出现:
```text
[autorun] GzWeb scene OK (... bytes), 9002 stable
[autorun] ✓ 全部就绪 — 现在刷新「仿真器」面板
```
打开rviz显示实时点云数据
```bash
source install/setup.bash
ros2 launch bcr_bot rviz.launch.py
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

14
gzsim_check.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
# 简要诊断 :9002 / gz-launchGzWeb 使用 wss://同域/gzbridge/
set -euo pipefail
echo "========== GzWeb / gzbridge (:9002) =========="
echo "[1] port 9002"
ss -ltnp 2>/dev/null | grep ':9002 ' || echo " (not listening)"
echo
echo "[2] processes"
ps aux | grep -E 'gz sim|gz-launch|gz launch.*websocket|warehouse_gzweb' | grep -v grep || echo " (none)"
echo
echo "GzWeb panel: wss://{your-space}.spaces.databall.tech/gzbridge/"

56
gzsim_run.sh Executable file
View File

@ -0,0 +1,56 @@
#!/usr/bin/env bash
# GzWeb 仓库场景 — Gazebo Sim + gz-launch :9002GzWeb 连 wss://同域/gzbridge/
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
sleep 3
export PATH="/usr/bin:/bin:/opt/ros/humble/bin:${PATH}"
export LIBGL_ALWAYS_SOFTWARE=1
export QT_QPA_PLATFORM=offscreen
set +u
source /opt/ros/humble/setup.bash
[[ -f "${ROOT}/install/setup.bash" ]] && source "${ROOT}/install/setup.bash"
set -u
LOG_DIR="${ROOT}/autorun_logs/autorun_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$LOG_DIR"
pkill -f 'gz launch.*websocket' 2>/dev/null || true
pkill -f 'gz-launch.*websocket' 2>/dev/null || true
sleep 1
echo "[autorun] launching warehouse Gazebo Sim ..."
ros2 launch bcr_bot gz.launch.py > "${LOG_DIR}/warehouse_gzsim.log" 2>&1 &
GZSIM_PID=$!
sleep 15
if ! ps -p "$GZSIM_PID" > /dev/null; then
echo "[autorun] Gazebo exited early:"
tail -40 "${LOG_DIR}/warehouse_gzsim.log" || true
exit 1
fi
WS_CONFIG="${ROOT}/src/websocket.gzlaunch"
[[ -f "$WS_CONFIG" ]] || WS_CONFIG="/usr/share/gz/gz-launch7/configs/websocket.gzlaunch"
# WebsocketServer is a separate process from ros2 launch — it does NOT inherit
# AppendEnvironmentVariable from warehouse_gzweb.launch.py. Without install/src
# on GZ_SIM_RESOURCE_PATH, mesh requests get "Access denied" and GzWeb stays empty.
export GZ_SIM_RESOURCE_PATH="${ROOT}/install:${ROOT}/src${GZ_SIM_RESOURCE_PATH:+:$GZ_SIM_RESOURCE_PATH}"
export IGN_GAZEBO_RESOURCE_PATH="${GZ_SIM_RESOURCE_PATH}"
echo "[autorun] starting gz-launch websocket on :9002 ..."
echo "[autorun] GZ_SIM_RESOURCE_PATH=${GZ_SIM_RESOURCE_PATH}"
gz launch "$WS_CONFIG" > "${LOG_DIR}/websocket.log" 2>&1 &
WEBSOCKET_PID=$!
sleep 10
if ! ps -p "$WEBSOCKET_PID" > /dev/null; then
echo "[autorun] websocket exited:"
cat "${LOG_DIR}/websocket.log" || true
exit 1
fi
echo "[autorun] ready. Refresh GzWeb (wss://{host}/gzbridge/). logs: ${LOG_DIR}"
wait

52
gzsim_run.sh.bak.20260724034245 Executable file
View File

@ -0,0 +1,52 @@
#!/usr/bin/env bash
# GzWeb 仓库场景 — Gazebo Sim + gz-launch :9002GzWeb 连 wss://同域/gzbridge/
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
sleep 3
export PATH="/usr/bin:/bin:/opt/ros/humble/bin:${PATH}"
export LIBGL_ALWAYS_SOFTWARE=1
export QT_QPA_PLATFORM=offscreen
set +u
source /opt/ros/humble/setup.bash
[[ -f "${ROOT}/install/setup.bash" ]] && source "${ROOT}/install/setup.bash"
set -u
# WebsocketServer asset whitelist (mesh under install/ share).
export GZ_SIM_RESOURCE_PATH="/workspace/install/bcr_bot/share/bcr_bot:/workspace/install:${GZ_SIM_RESOURCE_PATH:-}"
LOG_DIR="${ROOT}/autorun_logs/autorun_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$LOG_DIR"
pkill -f 'gz launch.*websocket' 2>/dev/null || true
pkill -f 'gz-launch.*websocket' 2>/dev/null || true
sleep 1
echo "[autorun] launching warehouse Gazebo Sim ..."
ros2 launch bcr_bot warehouse_gzweb.launch.py > "${LOG_DIR}/warehouse_gzsim.log" 2>&1 &
GZSIM_PID=$!
sleep 15
if ! ps -p "$GZSIM_PID" > /dev/null; then
echo "[autorun] Gazebo exited early:"
tail -40 "${LOG_DIR}/warehouse_gzsim.log" || true
exit 1
fi
WS_CONFIG="${ROOT}/src/websocket.gzlaunch"
[[ -f "$WS_CONFIG" ]] || WS_CONFIG="/usr/share/gz/gz-launch7/configs/websocket.gzlaunch"
echo "[autorun] starting gz-launch websocket on :9002 ..."
gz launch "$WS_CONFIG" > "${LOG_DIR}/websocket.log" 2>&1 &
WEBSOCKET_PID=$!
sleep 10
if ! ps -p "$WEBSOCKET_PID" > /dev/null; then
echo "[autorun] websocket exited:"
cat "${LOG_DIR}/websocket.log" || true
exit 1
fi
echo "[autorun] ready. Refresh GzWeb (wss://{host}/gzbridge/). logs: ${LOG_DIR}"
wait

31
gzsim_stop.sh Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
# 停止仓库 GzWeb 仿真(释放 9002 与单实例锁)
set -euo pipefail
echo "[stop] stopping warehouse GzWeb services ..."
pkill -9 -f 'warehouse_foxglove_guard.sh' 2>/dev/null || true
pkill -9 -f 'warehouse_gzsim_keepalive.sh' 2>/dev/null || true
pkill -9 -f 'warehouse_gzweb.launch.py' 2>/dev/null || true
pkill -9 -f 'gz-launch.*websocket' 2>/dev/null || true
pkill -9 -f 'gz launch.*websocket' 2>/dev/null || true
pkill -9 -f 'foxglove_bridge' 2>/dev/null || true
pkill -9 -f 'gz sim' 2>/dev/null || true
pkill -9 -f 'robot_state_publisher' 2>/dev/null || true
sleep 1
pids="$(ss -ltnp 2>/dev/null | grep ':9002 ' | sed -E 's/.*pid=([0-9]+).*/\1/' | sort -u || true)"
if [[ -n "${pids}" ]]; then
kill -9 ${pids} 2>/dev/null || true
fi
rm -f /tmp/warehouse_gzsim.lock
sleep 1
if ps aux | grep -E 'warehouse_gzweb|warehouse_foxglove|warehouse_gzsim_keepalive|gz-launch|gz sim' | grep -v grep >/dev/null; then
echo "[stop] WARN: some processes may remain:"
ps aux | grep -E 'warehouse_gzweb|warehouse_foxglove|warehouse_gzsim_keepalive|gz-launch|gz sim' | grep -v grep || true
exit 1
fi
echo "[stop] done. 9002 free, lock removed. Now run: ./gzsim_run.sh"

View File

@ -0,0 +1 @@
isolated

View File

@ -0,0 +1,406 @@
# Copyright 2016-2019 Dirk Thomas
# Licensed under the Apache License, Version 2.0
import argparse
from collections import OrderedDict
import os
from pathlib import Path
import sys
FORMAT_STR_COMMENT_LINE = '# {comment}'
FORMAT_STR_SET_ENV_VAR = 'Set-Item -Path "Env:{name}" -Value "{value}"'
FORMAT_STR_USE_ENV_VAR = '$env:{name}'
FORMAT_STR_INVOKE_SCRIPT = '_colcon_prefix_powershell_source_script "{script_path}"' # noqa: E501
FORMAT_STR_REMOVE_LEADING_SEPARATOR = '' # noqa: E501
FORMAT_STR_REMOVE_TRAILING_SEPARATOR = '' # noqa: E501
DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate'
DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate'
DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists'
DSV_TYPE_SET = 'set'
DSV_TYPE_SET_IF_UNSET = 'set-if-unset'
DSV_TYPE_SOURCE = 'source'
def main(argv=sys.argv[1:]): # noqa: D103
parser = argparse.ArgumentParser(
description='Output shell commands for the packages in topological '
'order')
parser.add_argument(
'primary_extension',
help='The file extension of the primary shell')
parser.add_argument(
'additional_extension', nargs='?',
help='The additional file extension to be considered')
parser.add_argument(
'--merged-install', action='store_true',
help='All install prefixes are merged into a single location')
args = parser.parse_args(argv)
packages = get_packages(Path(__file__).parent, args.merged_install)
ordered_packages = order_packages(packages)
for pkg_name in ordered_packages:
if _include_comments():
print(
FORMAT_STR_COMMENT_LINE.format_map(
{'comment': 'Package: ' + pkg_name}))
prefix = os.path.abspath(os.path.dirname(__file__))
if not args.merged_install:
prefix = os.path.join(prefix, pkg_name)
for line in get_commands(
pkg_name, prefix, args.primary_extension,
args.additional_extension
):
print(line)
for line in _remove_ending_separators():
print(line)
def get_packages(prefix_path, merged_install):
"""
Find packages based on colcon-specific files created during installation.
:param Path prefix_path: The install prefix path of all packages
:param bool merged_install: The flag if the packages are all installed
directly in the prefix or if each package is installed in a subdirectory
named after the package
:returns: A mapping from the package name to the set of runtime
dependencies
:rtype: dict
"""
packages = {}
# since importing colcon_core isn't feasible here the following constant
# must match colcon_core.location.get_relative_package_index_path()
subdirectory = 'share/colcon-core/packages'
if merged_install:
# return if workspace is empty
if not (prefix_path / subdirectory).is_dir():
return packages
# find all files in the subdirectory
for p in (prefix_path / subdirectory).iterdir():
if not p.is_file():
continue
if p.name.startswith('.'):
continue
add_package_runtime_dependencies(p, packages)
else:
# for each subdirectory look for the package specific file
for p in prefix_path.iterdir():
if not p.is_dir():
continue
if p.name.startswith('.'):
continue
p = p / subdirectory / p.name
if p.is_file():
add_package_runtime_dependencies(p, packages)
# remove unknown dependencies
pkg_names = set(packages.keys())
for k in packages.keys():
packages[k] = {d for d in packages[k] if d in pkg_names}
return packages
def add_package_runtime_dependencies(path, packages):
"""
Check the path and if it exists extract the packages runtime dependencies.
:param Path path: The resource file containing the runtime dependencies
:param dict packages: A mapping from package names to the sets of runtime
dependencies to add to
"""
content = path.read_text()
dependencies = set(content.split(os.pathsep) if content else [])
packages[path.name] = dependencies
def order_packages(packages):
"""
Order packages topologically.
:param dict packages: A mapping from package name to the set of runtime
dependencies
:returns: The package names
:rtype: list
"""
# select packages with no dependencies in alphabetical order
to_be_ordered = list(packages.keys())
ordered = []
while to_be_ordered:
pkg_names_without_deps = [
name for name in to_be_ordered if not packages[name]]
if not pkg_names_without_deps:
reduce_cycle_set(packages)
raise RuntimeError(
'Circular dependency between: ' + ', '.join(sorted(packages)))
pkg_names_without_deps.sort()
pkg_name = pkg_names_without_deps[0]
to_be_ordered.remove(pkg_name)
ordered.append(pkg_name)
# remove item from dependency lists
for k in list(packages.keys()):
if pkg_name in packages[k]:
packages[k].remove(pkg_name)
return ordered
def reduce_cycle_set(packages):
"""
Reduce the set of packages to the ones part of the circular dependency.
:param dict packages: A mapping from package name to the set of runtime
dependencies which is modified in place
"""
last_depended = None
while len(packages) > 0:
# get all remaining dependencies
depended = set()
for pkg_name, dependencies in packages.items():
depended = depended.union(dependencies)
# remove all packages which are not dependent on
for name in list(packages.keys()):
if name not in depended:
del packages[name]
if last_depended:
# if remaining packages haven't changed return them
if last_depended == depended:
return packages.keys()
# otherwise reduce again
last_depended = depended
def _include_comments():
# skipping comment lines when COLCON_TRACE is not set speeds up the
# processing especially on Windows
return bool(os.environ.get('COLCON_TRACE'))
def get_commands(pkg_name, prefix, primary_extension, additional_extension):
commands = []
package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv')
if os.path.exists(package_dsv_path):
commands += process_dsv_file(
package_dsv_path, prefix, primary_extension, additional_extension)
return commands
def process_dsv_file(
dsv_path, prefix, primary_extension=None, additional_extension=None
):
commands = []
if _include_comments():
commands.append(FORMAT_STR_COMMENT_LINE.format_map({
'comment': dsv_path}))
with open(dsv_path, 'r') as h:
content = h.read()
lines = content.splitlines()
basename_map = OrderedDict()
for i, line in enumerate(lines):
# skip over empty or whitespace-only lines
if not line.strip():
continue
# skip over comments
if line.startswith('#'):
continue
try:
type_, remainder = line.split(';', 1)
except ValueError:
raise RuntimeError(
"Line %d in '%s' doesn't contain a semicolon separating the "
'type from the arguments' % (i + 1, dsv_path))
if type_ != DSV_TYPE_SOURCE:
# handle non-source lines
try:
commands += handle_dsv_types_except_source(
type_, remainder, prefix)
except RuntimeError as e:
raise RuntimeError(
"Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e
else:
# group remaining source lines by basename
path_without_ext, ext = os.path.splitext(remainder)
if path_without_ext not in basename_map:
basename_map[path_without_ext] = set()
assert ext.startswith('.')
ext = ext[1:]
if ext in (primary_extension, additional_extension):
basename_map[path_without_ext].add(ext)
# add the dsv extension to each basename if the file exists
for basename, extensions in basename_map.items():
if not os.path.isabs(basename):
basename = os.path.join(prefix, basename)
if os.path.exists(basename + '.dsv'):
extensions.add('dsv')
for basename, extensions in basename_map.items():
if not os.path.isabs(basename):
basename = os.path.join(prefix, basename)
if 'dsv' in extensions:
# process dsv files recursively
commands += process_dsv_file(
basename + '.dsv', prefix, primary_extension=primary_extension,
additional_extension=additional_extension)
elif primary_extension in extensions and len(extensions) == 1:
# source primary-only files
commands += [
FORMAT_STR_INVOKE_SCRIPT.format_map({
'prefix': prefix,
'script_path': basename + '.' + primary_extension})]
elif additional_extension in extensions:
# source non-primary files
commands += [
FORMAT_STR_INVOKE_SCRIPT.format_map({
'prefix': prefix,
'script_path': basename + '.' + additional_extension})]
return commands
def handle_dsv_types_except_source(type_, remainder, prefix):
commands = []
if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET):
try:
env_name, value = remainder.split(';', 1)
except ValueError:
raise RuntimeError(
"doesn't contain a semicolon separating the environment name "
'from the value')
try_prefixed_value = os.path.join(prefix, value) if value else prefix
if os.path.exists(try_prefixed_value):
value = try_prefixed_value
if type_ == DSV_TYPE_SET:
commands += _set(env_name, value)
elif type_ == DSV_TYPE_SET_IF_UNSET:
commands += _set_if_unset(env_name, value)
else:
assert False
elif type_ in (
DSV_TYPE_APPEND_NON_DUPLICATE,
DSV_TYPE_PREPEND_NON_DUPLICATE,
DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS
):
try:
env_name_and_values = remainder.split(';')
except ValueError:
raise RuntimeError(
"doesn't contain a semicolon separating the environment name "
'from the values')
env_name = env_name_and_values[0]
values = env_name_and_values[1:]
for value in values:
if not value:
value = prefix
elif not os.path.isabs(value):
value = os.path.join(prefix, value)
if (
type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and
not os.path.exists(value)
):
comment = f'skip extending {env_name} with not existing ' \
f'path: {value}'
if _include_comments():
commands.append(FORMAT_STR_COMMENT_LINE.format_map({
'comment': comment}))
elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE:
commands += _append_unique_value(env_name, value)
else:
commands += _prepend_unique_value(env_name, value)
else:
raise RuntimeError(
'contains an unknown environment hook type: ' + type_)
return commands
env_state = {}
def _append_unique_value(name, value):
if name not in env_state:
if os.environ.get(name):
env_state[name] = set(os.environ[name].split(os.pathsep))
else:
env_state[name] = set()
# Append even if the variable has not been set yet, in case a shell script
# sets the same variable without the knowledge of this Python script.
# Later, _remove_ending_separators() will cleanup any unintentional
# leading separator.
extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': extend + value})
if value not in env_state[name]:
env_state[name].add(value)
else:
if not _include_comments():
return []
line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line})
return [line]
def _prepend_unique_value(name, value):
if name not in env_state:
if os.environ.get(name):
env_state[name] = set(os.environ[name].split(os.pathsep))
else:
env_state[name] = set()
# Prepend even if the variable has not been set yet, in case a shell script
# sets the same variable without the knowledge of this Python script.
# Later, _remove_ending_separators() will cleanup any unintentional
# trailing separator.
extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name})
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': value + extend})
if value not in env_state[name]:
env_state[name].add(value)
else:
if not _include_comments():
return []
line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line})
return [line]
# generate commands for removing prepended underscores
def _remove_ending_separators():
# do nothing if the shell extension does not implement the logic
if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None:
return []
commands = []
for name in env_state:
# skip variables that already had values before this script started
# appending/prepending
if name in os.environ:
continue
commands += [
FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}),
FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})]
return commands
def _set(name, value):
env_state[name] = value
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': value})
return [line]
def _set_if_unset(name, value):
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': value})
if env_state.get(name, os.environ.get(name)):
line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line})
return [line]
if __name__ == '__main__': # pragma: no cover
try:
rc = main()
except RuntimeError as e:
print(str(e), file=sys.stderr)
rc = 1
sys.exit(rc)

View File

@ -0,0 +1,406 @@
# Copyright 2016-2019 Dirk Thomas
# Licensed under the Apache License, Version 2.0
import argparse
from collections import OrderedDict
import os
from pathlib import Path
import sys
FORMAT_STR_COMMENT_LINE = '# {comment}'
FORMAT_STR_SET_ENV_VAR = 'export {name}="{value}"'
FORMAT_STR_USE_ENV_VAR = '${name}'
FORMAT_STR_INVOKE_SCRIPT = 'COLCON_CURRENT_PREFIX="{prefix}" _colcon_prefix_sh_source_script "{script_path}"' # noqa: E501
FORMAT_STR_REMOVE_LEADING_SEPARATOR = 'export {name}=${{{name}#:}}' # noqa: E501
FORMAT_STR_REMOVE_TRAILING_SEPARATOR = 'export {name}=${{{name}%:}}' # noqa: E501
DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate'
DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate'
DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists'
DSV_TYPE_SET = 'set'
DSV_TYPE_SET_IF_UNSET = 'set-if-unset'
DSV_TYPE_SOURCE = 'source'
def main(argv=sys.argv[1:]): # noqa: D103
parser = argparse.ArgumentParser(
description='Output shell commands for the packages in topological '
'order')
parser.add_argument(
'primary_extension',
help='The file extension of the primary shell')
parser.add_argument(
'additional_extension', nargs='?',
help='The additional file extension to be considered')
parser.add_argument(
'--merged-install', action='store_true',
help='All install prefixes are merged into a single location')
args = parser.parse_args(argv)
packages = get_packages(Path(__file__).parent, args.merged_install)
ordered_packages = order_packages(packages)
for pkg_name in ordered_packages:
if _include_comments():
print(
FORMAT_STR_COMMENT_LINE.format_map(
{'comment': 'Package: ' + pkg_name}))
prefix = os.path.abspath(os.path.dirname(__file__))
if not args.merged_install:
prefix = os.path.join(prefix, pkg_name)
for line in get_commands(
pkg_name, prefix, args.primary_extension,
args.additional_extension
):
print(line)
for line in _remove_ending_separators():
print(line)
def get_packages(prefix_path, merged_install):
"""
Find packages based on colcon-specific files created during installation.
:param Path prefix_path: The install prefix path of all packages
:param bool merged_install: The flag if the packages are all installed
directly in the prefix or if each package is installed in a subdirectory
named after the package
:returns: A mapping from the package name to the set of runtime
dependencies
:rtype: dict
"""
packages = {}
# since importing colcon_core isn't feasible here the following constant
# must match colcon_core.location.get_relative_package_index_path()
subdirectory = 'share/colcon-core/packages'
if merged_install:
# return if workspace is empty
if not (prefix_path / subdirectory).is_dir():
return packages
# find all files in the subdirectory
for p in (prefix_path / subdirectory).iterdir():
if not p.is_file():
continue
if p.name.startswith('.'):
continue
add_package_runtime_dependencies(p, packages)
else:
# for each subdirectory look for the package specific file
for p in prefix_path.iterdir():
if not p.is_dir():
continue
if p.name.startswith('.'):
continue
p = p / subdirectory / p.name
if p.is_file():
add_package_runtime_dependencies(p, packages)
# remove unknown dependencies
pkg_names = set(packages.keys())
for k in packages.keys():
packages[k] = {d for d in packages[k] if d in pkg_names}
return packages
def add_package_runtime_dependencies(path, packages):
"""
Check the path and if it exists extract the packages runtime dependencies.
:param Path path: The resource file containing the runtime dependencies
:param dict packages: A mapping from package names to the sets of runtime
dependencies to add to
"""
content = path.read_text()
dependencies = set(content.split(os.pathsep) if content else [])
packages[path.name] = dependencies
def order_packages(packages):
"""
Order packages topologically.
:param dict packages: A mapping from package name to the set of runtime
dependencies
:returns: The package names
:rtype: list
"""
# select packages with no dependencies in alphabetical order
to_be_ordered = list(packages.keys())
ordered = []
while to_be_ordered:
pkg_names_without_deps = [
name for name in to_be_ordered if not packages[name]]
if not pkg_names_without_deps:
reduce_cycle_set(packages)
raise RuntimeError(
'Circular dependency between: ' + ', '.join(sorted(packages)))
pkg_names_without_deps.sort()
pkg_name = pkg_names_without_deps[0]
to_be_ordered.remove(pkg_name)
ordered.append(pkg_name)
# remove item from dependency lists
for k in list(packages.keys()):
if pkg_name in packages[k]:
packages[k].remove(pkg_name)
return ordered
def reduce_cycle_set(packages):
"""
Reduce the set of packages to the ones part of the circular dependency.
:param dict packages: A mapping from package name to the set of runtime
dependencies which is modified in place
"""
last_depended = None
while len(packages) > 0:
# get all remaining dependencies
depended = set()
for pkg_name, dependencies in packages.items():
depended = depended.union(dependencies)
# remove all packages which are not dependent on
for name in list(packages.keys()):
if name not in depended:
del packages[name]
if last_depended:
# if remaining packages haven't changed return them
if last_depended == depended:
return packages.keys()
# otherwise reduce again
last_depended = depended
def _include_comments():
# skipping comment lines when COLCON_TRACE is not set speeds up the
# processing especially on Windows
return bool(os.environ.get('COLCON_TRACE'))
def get_commands(pkg_name, prefix, primary_extension, additional_extension):
commands = []
package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv')
if os.path.exists(package_dsv_path):
commands += process_dsv_file(
package_dsv_path, prefix, primary_extension, additional_extension)
return commands
def process_dsv_file(
dsv_path, prefix, primary_extension=None, additional_extension=None
):
commands = []
if _include_comments():
commands.append(FORMAT_STR_COMMENT_LINE.format_map({
'comment': dsv_path}))
with open(dsv_path, 'r') as h:
content = h.read()
lines = content.splitlines()
basename_map = OrderedDict()
for i, line in enumerate(lines):
# skip over empty or whitespace-only lines
if not line.strip():
continue
# skip over comments
if line.startswith('#'):
continue
try:
type_, remainder = line.split(';', 1)
except ValueError:
raise RuntimeError(
"Line %d in '%s' doesn't contain a semicolon separating the "
'type from the arguments' % (i + 1, dsv_path))
if type_ != DSV_TYPE_SOURCE:
# handle non-source lines
try:
commands += handle_dsv_types_except_source(
type_, remainder, prefix)
except RuntimeError as e:
raise RuntimeError(
"Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e
else:
# group remaining source lines by basename
path_without_ext, ext = os.path.splitext(remainder)
if path_without_ext not in basename_map:
basename_map[path_without_ext] = set()
assert ext.startswith('.')
ext = ext[1:]
if ext in (primary_extension, additional_extension):
basename_map[path_without_ext].add(ext)
# add the dsv extension to each basename if the file exists
for basename, extensions in basename_map.items():
if not os.path.isabs(basename):
basename = os.path.join(prefix, basename)
if os.path.exists(basename + '.dsv'):
extensions.add('dsv')
for basename, extensions in basename_map.items():
if not os.path.isabs(basename):
basename = os.path.join(prefix, basename)
if 'dsv' in extensions:
# process dsv files recursively
commands += process_dsv_file(
basename + '.dsv', prefix, primary_extension=primary_extension,
additional_extension=additional_extension)
elif primary_extension in extensions and len(extensions) == 1:
# source primary-only files
commands += [
FORMAT_STR_INVOKE_SCRIPT.format_map({
'prefix': prefix,
'script_path': basename + '.' + primary_extension})]
elif additional_extension in extensions:
# source non-primary files
commands += [
FORMAT_STR_INVOKE_SCRIPT.format_map({
'prefix': prefix,
'script_path': basename + '.' + additional_extension})]
return commands
def handle_dsv_types_except_source(type_, remainder, prefix):
commands = []
if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET):
try:
env_name, value = remainder.split(';', 1)
except ValueError:
raise RuntimeError(
"doesn't contain a semicolon separating the environment name "
'from the value')
try_prefixed_value = os.path.join(prefix, value) if value else prefix
if os.path.exists(try_prefixed_value):
value = try_prefixed_value
if type_ == DSV_TYPE_SET:
commands += _set(env_name, value)
elif type_ == DSV_TYPE_SET_IF_UNSET:
commands += _set_if_unset(env_name, value)
else:
assert False
elif type_ in (
DSV_TYPE_APPEND_NON_DUPLICATE,
DSV_TYPE_PREPEND_NON_DUPLICATE,
DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS
):
try:
env_name_and_values = remainder.split(';')
except ValueError:
raise RuntimeError(
"doesn't contain a semicolon separating the environment name "
'from the values')
env_name = env_name_and_values[0]
values = env_name_and_values[1:]
for value in values:
if not value:
value = prefix
elif not os.path.isabs(value):
value = os.path.join(prefix, value)
if (
type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and
not os.path.exists(value)
):
comment = f'skip extending {env_name} with not existing ' \
f'path: {value}'
if _include_comments():
commands.append(FORMAT_STR_COMMENT_LINE.format_map({
'comment': comment}))
elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE:
commands += _append_unique_value(env_name, value)
else:
commands += _prepend_unique_value(env_name, value)
else:
raise RuntimeError(
'contains an unknown environment hook type: ' + type_)
return commands
env_state = {}
def _append_unique_value(name, value):
if name not in env_state:
if os.environ.get(name):
env_state[name] = set(os.environ[name].split(os.pathsep))
else:
env_state[name] = set()
# Append even if the variable has not been set yet, in case a shell script
# sets the same variable without the knowledge of this Python script.
# Later, _remove_ending_separators() will cleanup any unintentional
# leading separator.
extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': extend + value})
if value not in env_state[name]:
env_state[name].add(value)
else:
if not _include_comments():
return []
line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line})
return [line]
def _prepend_unique_value(name, value):
if name not in env_state:
if os.environ.get(name):
env_state[name] = set(os.environ[name].split(os.pathsep))
else:
env_state[name] = set()
# Prepend even if the variable has not been set yet, in case a shell script
# sets the same variable without the knowledge of this Python script.
# Later, _remove_ending_separators() will cleanup any unintentional
# trailing separator.
extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name})
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': value + extend})
if value not in env_state[name]:
env_state[name].add(value)
else:
if not _include_comments():
return []
line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line})
return [line]
# generate commands for removing prepended underscores
def _remove_ending_separators():
# do nothing if the shell extension does not implement the logic
if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None:
return []
commands = []
for name in env_state:
# skip variables that already had values before this script started
# appending/prepending
if name in os.environ:
continue
commands += [
FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}),
FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})]
return commands
def _set(name, value):
env_state[name] = value
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': value})
return [line]
def _set_if_unset(name, value):
line = FORMAT_STR_SET_ENV_VAR.format_map(
{'name': name, 'value': value})
if env_state.get(name, os.environ.get(name)):
line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line})
return [line]
if __name__ == '__main__': # pragma: no cover
try:
rc = main()
except RuntimeError as e:
print(str(e), file=sys.stderr)
rc = 1
sys.exit(rc)

View File

@ -0,0 +1,48 @@
#! /usr/bin/env python3
import rclpy
from rclpy.node import Node
from rclpy.qos import QoSProfile, ReliabilityPolicy, QoSDurabilityPolicy
from geometry_msgs.msg import Twist
class CmdVelRemapper(Node):
def __init__(self):
super().__init__('cmd_vel_remapper')
qos_profile = QoSProfile(
reliability=ReliabilityPolicy.RELIABLE,
durability=QoSDurabilityPolicy.VOLATILE,
depth=10
)
# Create a subscriber for the cmd_vel topic
self.subscription = self.create_subscription(
Twist,
'cmd_vel',
self.cmd_vel_callback,
qos_profile
)
self.subscription # Prevent unused variable warning
# Create a publisher for the bcr_bot/cmd_vel topic
self.publisher = self.create_publisher(Twist, 'bcr_bot/cmd_vel', qos_profile)
def cmd_vel_callback(self, msg):
# Republish the received message to bcr_bot/cmd_vel
self.publisher.publish(msg)
def main(args=None):
rclpy.init(args=args)
cmd_vel_remapper = CmdVelRemapper()
try:
rclpy.spin(cmd_vel_remapper)
except KeyboardInterrupt:
pass
finally:
cmd_vel_remapper.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()

View File

@ -0,0 +1 @@
ament_index_python;launch;launch_ros;robot_state_publisher;xacro

View File

@ -0,0 +1 @@
/workspace/install/bcr_bot:/opt/ros/humble

View File

@ -0,0 +1,14 @@
# generated from ament/cmake/core/templates/nameConfig-version.cmake.in
set(PACKAGE_VERSION "1.0.2")
set(PACKAGE_VERSION_EXACT False)
set(PACKAGE_VERSION_COMPATIBLE False)
if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}")
set(PACKAGE_VERSION_EXACT True)
set(PACKAGE_VERSION_COMPATIBLE True)
endif()
if("${PACKAGE_FIND_VERSION}" VERSION_LESS "${PACKAGE_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE True)
endif()

View File

@ -0,0 +1,42 @@
# generated from ament/cmake/core/templates/nameConfig.cmake.in
# prevent multiple inclusion
if(_bcr_bot_CONFIG_INCLUDED)
# ensure to keep the found flag the same
if(NOT DEFINED bcr_bot_FOUND)
# explicitly set it to FALSE, otherwise CMake will set it to TRUE
set(bcr_bot_FOUND FALSE)
elseif(NOT bcr_bot_FOUND)
# use separate condition to avoid uninitialized variable warning
set(bcr_bot_FOUND FALSE)
endif()
return()
endif()
set(_bcr_bot_CONFIG_INCLUDED TRUE)
# output package information
if(NOT bcr_bot_FIND_QUIETLY)
message(STATUS "Found bcr_bot: 1.0.2 (${bcr_bot_DIR})")
endif()
# warn when using a deprecated package
if(NOT "" STREQUAL "")
set(_msg "Package 'bcr_bot' is deprecated")
# append custom deprecation text if available
if(NOT "" STREQUAL "TRUE")
set(_msg "${_msg} ()")
endif()
# optionally quiet the deprecation message
if(NOT ${bcr_bot_DEPRECATED_QUIET})
message(DEPRECATION "${_msg}")
endif()
endif()
# flag package as ament-based to distinguish it after being find_package()-ed
set(bcr_bot_FOUND_AMENT_PACKAGE TRUE)
# include all config extra files
set(_extras "")
foreach(_extra ${_extras})
include("${bcr_bot_DIR}/${_extra}")
endforeach()

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
image: bcr_map.pgm
mode: trinary
resolution: 0.05
origin: [-14.3, -15.5, 0]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.25

View File

@ -0,0 +1,75 @@
slam_toolbox:
ros__parameters:
# Plugin params
solver_plugin: solver_plugins::CeresSolver
ceres_linear_solver: SPARSE_NORMAL_CHOLESKY
ceres_preconditioner: SCHUR_JACOBI
ceres_trust_strategy: LEVENBERG_MARQUARDT
ceres_dogleg_type: TRADITIONAL_DOGLEG
ceres_loss_function: None
# ROS Parameters
odom_frame: odom
map_frame: map
base_frame: base_link
scan_topic: /bcr_bot/scan
use_map_saver: true
mode: localization
# if you'd like to immediately start continuing a map at a given pose
# or at the dock, but they are mutually exclusive, if pose is given
# will use pose
#map_file_name: test_steve
# map_start_pose: [0.0, 0.0, 0.0]
#map_start_at_dock: true
debug_logging: false
throttle_scans: 1
transform_publish_period: 0.02 #if 0 never publishes odometry
map_update_interval: 5.0
resolution: 0.05
min_laser_range: 0.0 #for rastering images
max_laser_range: 20.0 #for rastering images
minimum_time_interval: 0.5
transform_timeout: 0.2
tf_buffer_duration: 30.0
stack_size_to_use: 40000000 #// program needs a larger stack size to serialize large maps
enable_interactive_mode: true
# General Parameters
use_scan_matching: true
use_scan_barycenter: true
minimum_travel_distance: 0.5
minimum_travel_heading: 0.5
scan_buffer_size: 10
scan_buffer_maximum_scan_distance: 10.0
link_match_minimum_response_fine: 0.1
link_scan_maximum_distance: 1.5
loop_search_maximum_distance: 3.0
do_loop_closing: true
loop_match_minimum_chain_size: 10
loop_match_maximum_variance_coarse: 3.0
loop_match_minimum_response_coarse: 0.35
loop_match_minimum_response_fine: 0.45
# Correlation Parameters - Correlation Parameters
correlation_search_space_dimension: 0.5
correlation_search_space_resolution: 0.01
correlation_search_space_smear_deviation: 0.1
# Correlation Parameters - Loop Closure Parameters
loop_search_space_dimension: 8.0
loop_search_space_resolution: 0.05
loop_search_space_smear_deviation: 0.03
# Scan Matcher Parameters
distance_variance_penalty: 0.5
angle_variance_penalty: 1.0
fine_search_angle_offset: 0.00349
coarse_search_angle_offset: 0.349
coarse_angle_resolution: 0.0349
minimum_angle_penalty: 0.9
minimum_distance_penalty: 0.5
use_response_expansion: true

View File

@ -0,0 +1,323 @@
amcl:
ros__parameters:
use_sim_time: True
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
alpha4: 0.2
alpha5: 0.2
base_frame_id: "base_link"
beam_skip_distance: 0.5
beam_skip_error_threshold: 0.9
beam_skip_threshold: 0.3
do_beamskip: false
global_frame_id: "map"
lambda_short: 0.1
laser_likelihood_max_dist: 2.0
laser_max_range: 100.0
laser_min_range: -1.0
laser_model_type: "likelihood_field"
max_beams: 60
max_particles: 2000
min_particles: 500
odom_frame_id: "odom"
pf_err: 0.05
pf_z: 0.99
recovery_alpha_fast: 0.0
recovery_alpha_slow: 0.0
resample_interval: 1
robot_model_type: "nav2_amcl::DifferentialMotionModel"
save_pose_rate: 0.5
sigma_hit: 0.2
tf_broadcast: true
transform_tolerance: 1.0
update_min_a: 0.2
update_min_d: 0.25
z_hit: 0.5
z_max: 0.05
z_rand: 0.5
z_short: 0.05
scan_topic: /bcr_bot/scan
bt_navigator:
ros__parameters:
use_sim_time: True
global_frame: map
robot_base_frame: base_link
odom_topic: /bcr_bot/odom
bt_loop_duration: 10
default_server_timeout: 20
# 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
# nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
# nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
# They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
# plugin_lib_names is used to add custom BT plugins to the executor (vector of strings).
# Built-in plugins are added automatically
# plugin_lib_names: []
# 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
# nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
#/home/tiger/new_nav2/src/bcr_bot_nav2/config/tree.xml
# They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
plugin_lib_names:
- nav2_compute_path_to_pose_action_bt_node
- nav2_compute_path_through_poses_action_bt_node
- nav2_smooth_path_action_bt_node
- nav2_follow_path_action_bt_node
- nav2_spin_action_bt_node
- nav2_wait_action_bt_node
- nav2_assisted_teleop_action_bt_node
- nav2_back_up_action_bt_node
- nav2_drive_on_heading_bt_node
- nav2_clear_costmap_service_bt_node
- nav2_is_stuck_condition_bt_node
- nav2_goal_reached_condition_bt_node
- nav2_goal_updated_condition_bt_node
- nav2_globally_updated_goal_condition_bt_node
- nav2_is_path_valid_condition_bt_node
- nav2_initial_pose_received_condition_bt_node
- nav2_reinitialize_global_localization_service_bt_node
- nav2_rate_controller_bt_node
- nav2_distance_controller_bt_node
- nav2_speed_controller_bt_node
- nav2_truncate_path_action_bt_node
- nav2_truncate_path_local_action_bt_node
- nav2_goal_updater_node_bt_node
- nav2_recovery_node_bt_node
- nav2_pipeline_sequence_bt_node
- nav2_round_robin_node_bt_node
- nav2_transform_available_condition_bt_node
- nav2_time_expired_condition_bt_node
- nav2_path_expiring_timer_condition
- nav2_distance_traveled_condition_bt_node
- nav2_single_trigger_bt_node
- nav2_goal_updated_controller_bt_node
- nav2_is_battery_low_condition_bt_node
- nav2_navigate_through_poses_action_bt_node
- nav2_navigate_to_pose_action_bt_node
- nav2_remove_passed_goals_action_bt_node
- nav2_planner_selector_bt_node
- nav2_controller_selector_bt_node
- nav2_goal_checker_selector_bt_node
- nav2_controller_cancel_bt_node
- nav2_path_longer_on_approach_bt_node
- nav2_wait_cancel_bt_node
- nav2_spin_cancel_bt_node
- nav2_back_up_cancel_bt_node
- nav2_assisted_teleop_cancel_bt_node
- nav2_drive_on_heading_cancel_bt_node
- nav2_is_battery_charging_condition_bt_node
bt_navigator_navigate_through_poses_rclcpp_node:
ros__parameters:
use_sim_time: True
bt_navigator_navigate_to_pose_rclcpp_node:
ros__parameters:
use_sim_time: True
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 20.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
goal_checker_plugins: ["goal_checker"]
controller_plugins: ["FollowPath"]
progress_checker:
plugin: "nav2_controller::SimpleProgressChecker"
required_movement_radius: 0.5
movement_time_allowance: 10.0
goal_checker:
plugin: "nav2_controller::SimpleGoalChecker"
xy_goal_tolerance: 0.25
yaw_goal_tolerance: 0.25
stateful: True
FollowPath:
plugin: "nav2_rotation_shim_controller::RotationShimController"
primary_controller: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
angular_dist_threshold: 0.785
forward_sampling_distance: 0.5
rotate_to_heading_angular_vel: 1.8
max_angular_accel: 3.2
simulate_ahead_time: 1.0
rotate_to_goal_heading: false
# Primary controller params can be placed here below
# ...
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 5.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_link
use_sim_time: True
rolling_window: true
width: 3
height: 3
resolution: 0.05
robot_radius: 0.22
plugins: ["voxel_layer", "inflation_layer"]
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 3.0
inflation_radius: 0.55
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
mark_threshold: 0
observation_sources: scan
scan:
topic: /bcr_bot/scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
always_send_full_costmap: True
global_costmap:
global_costmap:
ros__parameters:
update_frequency: 1.0
publish_frequency: 1.0
global_frame: map
robot_base_frame: base_link
use_sim_time: True
robot_radius: 0.22
resolution: 0.05
track_unknown_space: true
plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /bcr_bot/scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 3.0
inflation_radius: 0.55
always_send_full_costmap: True
map_server:
ros__parameters:
use_sim_time: True
# Overridden in launch by the "map" launch configuration or provided default value.
# To use in yaml, remove the default "map" value in the tb3_simulation_launch.py file & provide full path to map below.
yaml_filename: ""
map_saver:
ros__parameters:
use_sim_time: True
save_map_timeout: 5.0
free_thresh_default: 0.25
occupied_thresh_default: 0.65
map_subscribe_transient_local: True
planner_server:
ros__parameters:
expected_planner_frequency: 0.0000000000000001
use_sim_time: True
planner_plugins: ["GridBased"]
GridBased:
plugin: "nav2_navfn_planner/NavfnPlanner"
tolerance: 0.5
use_astar: false
allow_unknown: true
smoother_server:
ros__parameters:
use_sim_time: True
smoother_plugins: ["simple_smoother"]
simple_smoother:
plugin: "nav2_smoother::SimpleSmoother"
tolerance: 1.0e-10
max_its: 1000
do_refinement: True
behavior_server:
ros__parameters:
costmap_topic: local_costmap/costmap_raw
footprint_topic: local_costmap/published_footprint
cycle_frequency: 10.0
behavior_plugins: ["spin", "backup", "drive_on_heading", "assisted_teleop", "wait"]
spin:
plugin: "nav2_behaviors/Spin"
backup:
plugin: "nav2_behaviors/BackUp"
drive_on_heading:
plugin: "nav2_behaviors/DriveOnHeading"
wait:
plugin: "nav2_behaviors/Wait"
assisted_teleop:
plugin: "nav2_behaviors/AssistedTeleop"
global_frame: odom
robot_base_frame: base_link
transform_tolerance: 0.1
use_sim_time: true
simulate_ahead_time: 2.0
max_rotational_vel: 1.0
min_rotational_vel: 0.4
rotational_acc_lim: 3.2
robot_state_publisher:
ros__parameters:
use_sim_time: True
waypoint_follower:
ros__parameters:
use_sim_time: True
loop_rate: 20
stop_on_failure: false
waypoint_task_executor_plugin: "wait_at_waypoint"
wait_at_waypoint:
plugin: "nav2_waypoint_follower::WaitAtWaypoint"
enabled: True
waypoint_pause_duration: 200
velocity_smoother:
ros__parameters:
use_sim_time: True
smoothing_frequency: 20.0
scale_velocities: False
feedback: "OPEN_LOOP"
max_velocity: [0.26, 0.0, 1.0]
min_velocity: [-0.26, 0.0, -1.0]
max_accel: [2.5, 0.0, 3.2]
max_decel: [-2.5, 0.0, -3.2]
odom_topic: "odom"
odom_duration: 0.1
deadband_velocity: [0.0, 0.0, 0.0]
velocity_timeout: 1.0

View File

@ -0,0 +1 @@
prepend-non-duplicate;AMENT_PREFIX_PATH;

View File

@ -0,0 +1,4 @@
# copied from
# ament_cmake_core/cmake/environment_hooks/environment/ament_prefix_path.sh
ament_prepend_unique_value AMENT_PREFIX_PATH "$AMENT_CURRENT_PREFIX"

View File

@ -0,0 +1 @@
prepend-non-duplicate-if-exists;PATH;bin

View File

@ -0,0 +1,5 @@
# copied from ament_cmake_core/cmake/environment_hooks/environment/path.sh
if [ -d "$AMENT_CURRENT_PREFIX/bin" ]; then
ament_prepend_unique_value PATH "$AMENT_CURRENT_PREFIX/bin"
fi

View File

@ -0,0 +1 @@
prepend-non-duplicate;CMAKE_PREFIX_PATH;

View File

@ -0,0 +1,3 @@
# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em
colcon_prepend_unique_value CMAKE_PREFIX_PATH "$env:COLCON_CURRENT_PREFIX"

View File

@ -0,0 +1,3 @@
# generated from colcon_core/shell/template/hook_prepend_value.sh.em
_colcon_prepend_unique_value CMAKE_PREFIX_PATH "$COLCON_CURRENT_PREFIX"

View File

@ -0,0 +1,88 @@
#!/usr/bin/env python3
from os.path import join
import xacro
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration, Command
from launch.substitutions import PythonExpression
from launch_ros.actions import Node
def get_xacro_to_doc(xacro_file_path, mappings):
doc = xacro.parse(open(xacro_file_path))
xacro.process_doc(doc, mappings=mappings)
return doc
def generate_launch_description():
# Get bcr_bot package's share directory path
bcr_bot_path = get_package_share_directory('bcr_bot')
# Retrieve launch configuration arguments
position_x = LaunchConfiguration("position_x")
position_y = LaunchConfiguration("position_y")
orientation_yaw = LaunchConfiguration("orientation_yaw")
camera_enabled = LaunchConfiguration("camera_enabled", default=True)
stereo_camera_enabled = LaunchConfiguration("stereo_camera_enabled", default=False)
two_d_lidar_enabled = LaunchConfiguration("two_d_lidar_enabled", default=True)
odometry_source = LaunchConfiguration("odometry_source", default="world")
robot_namespace = LaunchConfiguration("robot_namespace", default='bcr_bot')
# Path to the Xacro file
xacro_path = join(bcr_bot_path, 'urdf', 'bcr_bot.xacro')
#doc = get_xacro_to_doc(xacro_path, {"wheel_odom_topic": "odom", "sim_gazebo": "true", "two_d_lidar_enabled": "true", "camera_enabled": "true"})
# Launch the robot_state_publisher node
robot_state_publisher = Node(
package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
output='screen',
parameters=[
{'robot_description': Command( \
['xacro ', xacro_path,
' camera_enabled:=', camera_enabled,
' stereo_camera_enabled:=', stereo_camera_enabled,
' two_d_lidar_enabled:=', two_d_lidar_enabled,
' sim_gazebo:=', "true",
' odometry_source:=', odometry_source,
' robot_namespace:=', robot_namespace,
])}],
remappings=[
('/joint_states', PythonExpression(['"', robot_namespace, '/joint_states"'])),
]
)
# Launch the spawn_entity node to spawn the robot in Gazebo
spawn_entity = Node(
package='gazebo_ros',
executable='spawn_entity.py',
output='screen',
arguments=[
'-topic', "/robot_description",
'-entity', PythonExpression(['"', robot_namespace, '_robot"']), #default enitity name _bcr_bot
'-z', "0.28",
'-x', position_x,
'-y', position_y,
'-Y', orientation_yaw
]
)
return LaunchDescription([
# Declare launch arguments
DeclareLaunchArgument("camera_enabled", default_value = camera_enabled),
DeclareLaunchArgument("stereo_camera_enabled", default_value = stereo_camera_enabled),
DeclareLaunchArgument("two_d_lidar_enabled", default_value = two_d_lidar_enabled),
DeclareLaunchArgument("position_x", default_value="0.0"),
DeclareLaunchArgument("position_y", default_value="0.0"),
DeclareLaunchArgument("orientation_yaw", default_value="0.0"),
DeclareLaunchArgument("odometry_source", default_value = odometry_source),
DeclareLaunchArgument("robot_namespace", default_value = robot_namespace),
# DeclareLaunchArgument('robot_description', default_value=doc.toxml()),
robot_state_publisher,
spawn_entity
])

View File

@ -0,0 +1,129 @@
#!/usr/bin/python3
from os.path import join
from xacro import parse, process_doc
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration, Command
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
def get_xacro_to_doc(xacro_file_path, mappings):
doc = parse(open(xacro_file_path))
process_doc(doc, mappings=mappings)
return doc
def generate_launch_description():
bcr_bot_path = get_package_share_directory("bcr_bot")
position_x = LaunchConfiguration("position_x")
position_y = LaunchConfiguration("position_y")
orientation_yaw = LaunchConfiguration("orientation_yaw")
camera_enabled = LaunchConfiguration("camera_enabled", default=True)
stereo_camera_enabled = LaunchConfiguration("stereo_camera_enabled", default=False)
two_d_lidar_enabled = LaunchConfiguration("two_d_lidar_enabled", default=True)
odometry_source = LaunchConfiguration("odometry_source")
# robot_description_content = get_xacro_to_doc(
# join(bcr_bot_path, "urdf", "bcr_bot.xacro"),
# {"sim_gz": "true",
# "two_d_lidar_enabled": "true",
# "conveyor_enabled": "false",
# "camera_enabled": "true"
# }
# ).toxml()
robot_state_publisher = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
name="robot_state_publisher",
parameters=[
{'robot_description': Command( \
['xacro ', join(bcr_bot_path, 'urdf/bcr_bot.xacro'),
' camera_enabled:=', camera_enabled,
' stereo_camera_enabled:=', stereo_camera_enabled,
' two_d_lidar_enabled:=', two_d_lidar_enabled,
' odometry_source:=', odometry_source,
' sim_gz:=', "true"
])}],
remappings=[
('/joint_states', 'bcr_bot/joint_states'),
]
)
gz_spawn_entity = Node(
package="ros_gz_sim",
executable="create",
arguments=[
"-topic", "/robot_description",
"-name", "bcr_bot",
"-allow_renaming", "true",
"-z", "0.28",
"-x", position_x,
"-y", position_y,
"-Y", orientation_yaw
]
)
gz_ros2_bridge = Node(
package="ros_gz_bridge",
executable="parameter_bridge",
arguments=[
"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist",
"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock",
"/odom@nav_msgs/msg/Odometry[gz.msgs.Odometry",
"/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V",
"/scan@sensor_msgs/msg/LaserScan[gz.msgs.LaserScan",
"/kinect_camera@sensor_msgs/msg/Image[gz.msgs.Image",
"/stereo_camera/left/image_raw@sensor_msgs/msg/Image[gz.msgs.Image",
"stereo_camera/right/image_raw@sensor_msgs/msg/Image[gz.msgs.Image",
"kinect_camera/camera_info@sensor_msgs/msg/CameraInfo[gz.msgs.CameraInfo",
"stereo_camera/left/camera_info@sensor_msgs/msg/CameraInfo[gz.msgs.CameraInfo",
"stereo_camera/right/camera_info@sensor_msgs/msg/CameraInfo[gz.msgs.CameraInfo",
"/kinect_camera/points@sensor_msgs/msg/PointCloud2[gz.msgs.PointCloudPacked",
"/imu@sensor_msgs/msg/Imu[gz.msgs.IMU",
"/world/default/model/bcr_bot/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model"
],
remappings=[
('/world/default/model/bcr_bot/joint_state', 'bcr_bot/joint_states'),
('/odom', 'bcr_bot/odom'),
('/scan', 'bcr_bot/scan'),
('/kinect_camera', 'bcr_bot/kinect_camera'),
('/stereo_camera/left/image_raw', 'bcr_bot/stereo_camera/left/image_raw'),
('/stereo_camera/right/image_raw', 'bcr_bot/stereo_camera/right/image_raw'),
('/imu', 'bcr_bot/imu'),
('/cmd_vel', 'bcr_bot/cmd_vel'),
('kinect_camera/camera_info', 'bcr_bot/kinect_camera/camera_info'),
('stereo_camera/left/camera_info', 'bcr_bot/stereo_camera/left/camera_info'),
('stereo_camera/right/camera_info', 'bcr_bot/stereo_camera/right/camera_info'),
('/kinect_camera/points', 'bcr_bot/kinect_camera/points'),
]
)
transform_publisher = Node(
package="tf2_ros",
executable="static_transform_publisher",
arguments = ["--x", "0.0",
"--y", "0.0",
"--z", "0.0",
"--yaw", "0.0",
"--pitch", "0.0",
"--roll", "0.0",
"--frame-id", "kinect_camera",
"--child-frame-id", "bcr_bot/base_footprint/kinect_camera"]
)
return LaunchDescription([
DeclareLaunchArgument("camera_enabled", default_value = camera_enabled),
DeclareLaunchArgument("stereo_camera_enabled", default_value = stereo_camera_enabled),
DeclareLaunchArgument("two_d_lidar_enabled", default_value = two_d_lidar_enabled),
DeclareLaunchArgument("position_x", default_value="0.0"),
DeclareLaunchArgument("position_y", default_value="0.0"),
DeclareLaunchArgument("orientation_yaw", default_value="0.0"),
DeclareLaunchArgument("odometry_source", default_value="world"),
robot_state_publisher,
gz_spawn_entity, transform_publisher, gz_ros2_bridge
])

View File

@ -0,0 +1,129 @@
#!/usr/bin/python3
from os.path import join
from xacro import parse, process_doc
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration, Command
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
def get_xacro_to_doc(xacro_file_path, mappings):
doc = parse(open(xacro_file_path))
process_doc(doc, mappings=mappings)
return doc
def generate_launch_description():
bcr_bot_path = get_package_share_directory("bcr_bot")
position_x = LaunchConfiguration("position_x")
position_y = LaunchConfiguration("position_y")
orientation_yaw = LaunchConfiguration("orientation_yaw")
camera_enabled = LaunchConfiguration("camera_enabled", default=True)
stereo_camera_enabled = LaunchConfiguration("stereo_camera_enabled", default=False)
two_d_lidar_enabled = LaunchConfiguration("two_d_lidar_enabled", default=True)
odometry_source = LaunchConfiguration("odometry_source")
# robot_description_content = get_xacro_to_doc(
# join(bcr_bot_path, "urdf", "bcr_bot.xacro"),
# {"sim_gz": "true",
# "two_d_lidar_enabled": "true",
# "conveyor_enabled": "false",
# "camera_enabled": "true"
# }
# ).toxml()
robot_state_publisher = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
name="robot_state_publisher",
parameters=[
{'robot_description': Command( \
['xacro ', join(bcr_bot_path, 'urdf/bcr_bot.xacro'),
' camera_enabled:=', camera_enabled,
' stereo_camera_enabled:=', stereo_camera_enabled,
' two_d_lidar_enabled:=', two_d_lidar_enabled,
' odometry_source:=', odometry_source,
' sim_ign:=', "true"
])}],
remappings=[
('/joint_states', 'bcr_bot/joint_states'),
]
)
gz_spawn_entity = Node(
package="ros_gz_sim",
executable="create",
arguments=[
"-topic", "/robot_description",
"-name", "bcr_bot",
"-allow_renaming", "true",
"-z", "0.28",
"-x", position_x,
"-y", position_y,
"-Y", orientation_yaw
]
)
gz_ros2_bridge = Node(
package="ros_gz_bridge",
executable="parameter_bridge",
arguments=[
"/cmd_vel@geometry_msgs/msg/Twist@ignition.msgs.Twist",
"/clock@rosgraph_msgs/msg/Clock[ignition.msgs.Clock",
"/odom@nav_msgs/msg/Odometry[ignition.msgs.Odometry",
"/tf@tf2_msgs/msg/TFMessage[ignition.msgs.Pose_V",
"/scan@sensor_msgs/msg/LaserScan[ignition.msgs.LaserScan",
"/kinect_camera@sensor_msgs/msg/Image[ignition.msgs.Image",
"/stereo_camera/left/image_raw@sensor_msgs/msg/Image[ignition.msgs.Image",
"stereo_camera/right/image_raw@sensor_msgs/msg/Image[ignition.msgs.Image",
"kinect_camera/camera_info@sensor_msgs/msg/CameraInfo[ignition.msgs.CameraInfo",
"stereo_camera/left/camera_info@sensor_msgs/msg/CameraInfo[ignition.msgs.CameraInfo",
"stereo_camera/right/camera_info@sensor_msgs/msg/CameraInfo[ignition.msgs.CameraInfo",
"/kinect_camera/points@sensor_msgs/msg/PointCloud2[ignition.msgs.PointCloudPacked",
"/imu@sensor_msgs/msg/Imu[ignition.msgs.IMU",
"/world/default/model/bcr_bot/joint_state@sensor_msgs/msg/JointState[ignition.msgs.Model"
],
remappings=[
('/world/default/model/bcr_bot/joint_state', 'bcr_bot/joint_states'),
('/odom', 'bcr_bot/odom'),
('/scan', 'bcr_bot/scan'),
('/kinect_camera', 'bcr_bot/kinect_camera'),
('/stereo_camera/left/image_raw', 'bcr_bot/stereo_camera/left/image_raw'),
('/stereo_camera/right/image_raw', 'bcr_bot/stereo_camera/right/image_raw'),
('/imu', 'bcr_bot/imu'),
('/cmd_vel', 'bcr_bot/cmd_vel'),
('kinect_camera/camera_info', 'bcr_bot/kinect_camera/camera_info'),
('stereo_camera/left/camera_info', 'bcr_bot/stereo_camera/left/camera_info'),
('stereo_camera/right/camera_info', 'bcr_bot/stereo_camera/right/camera_info'),
('/kinect_camera/points', 'bcr_bot/kinect_camera/points'),
]
)
transform_publisher = Node(
package="tf2_ros",
executable="static_transform_publisher",
arguments = ["--x", "0.0",
"--y", "0.0",
"--z", "0.0",
"--yaw", "0.0",
"--pitch", "0.0",
"--roll", "0.0",
"--frame-id", "kinect_camera",
"--child-frame-id", "bcr_bot/base_footprint/kinect_camera"]
)
return LaunchDescription([
DeclareLaunchArgument("camera_enabled", default_value = camera_enabled),
DeclareLaunchArgument("stereo_camera_enabled", default_value = stereo_camera_enabled),
DeclareLaunchArgument("two_d_lidar_enabled", default_value = two_d_lidar_enabled),
DeclareLaunchArgument("position_x", default_value="0.0"),
DeclareLaunchArgument("position_y", default_value="0.0"),
DeclareLaunchArgument("orientation_yaw", default_value="0.0"),
DeclareLaunchArgument("odometry_source", default_value="world"),
robot_state_publisher,
gz_spawn_entity, transform_publisher, gz_ros2_bridge
])

View File

@ -0,0 +1,50 @@
#!/usr/bin/env python3
from os.path import join
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.substitutions import LaunchConfiguration
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.actions import SetEnvironmentVariable
from launch.actions import AppendEnvironmentVariable
def generate_launch_description():
# Get bcr_bot package's share directory path
bcr_bot_path = get_package_share_directory('bcr_bot')
# Retrieve launch configuration arguments
use_sim_time = LaunchConfiguration('use_sim_time', default='true')
world_file = LaunchConfiguration("world_file", default = join(bcr_bot_path, 'worlds', 'small_warehouse.sdf'))
# Include the Gazebo launch file
gazebo_share = get_package_share_directory("gazebo_ros")
gazebo = IncludeLaunchDescription(
PythonLaunchDescriptionSource(join(gazebo_share, "launch", "gazebo.launch.py"))
)
# spawing bcr_bot
spawn_bcr_bot_node = IncludeLaunchDescription(
PythonLaunchDescriptionSource(join(bcr_bot_path, "launch", "bcr_bot_gazebo_spawn.launch.py")),
)
return LaunchDescription([
# Declare launch arguments
AppendEnvironmentVariable(
name='GAZEBO_MODEL_PATH',
value=join(bcr_bot_path, "models")),
SetEnvironmentVariable(
name='GAZEBO_RESOURCE_PATH',
value="/usr/share/gazebo-11:" + join(bcr_bot_path, "worlds")),
DeclareLaunchArgument('world', default_value = world_file),
DeclareLaunchArgument('gui', default_value='true'),
DeclareLaunchArgument('verbose', default_value='false'),
DeclareLaunchArgument('use_sim_time', default_value = use_sim_time),
gazebo,spawn_bcr_bot_node
])

View File

@ -0,0 +1,48 @@
#!/usr/bin/python3
from os.path import join
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.substitutions import LaunchConfiguration,PythonExpression
from launch.launch_description_sources import PythonLaunchDescriptionSource
from ament_index_python.packages import get_package_share_directory
from launch.actions import AppendEnvironmentVariable
def generate_launch_description():
use_sim_time = LaunchConfiguration("use_sim_time", default=True)
bcr_bot_path = get_package_share_directory("bcr_bot")
world_file = LaunchConfiguration("world_file", default = join(bcr_bot_path, "worlds", "small_warehouse.sdf"))
gz_sim_share = get_package_share_directory("ros_gz_sim")
gz_sim = IncludeLaunchDescription(
PythonLaunchDescriptionSource(join(gz_sim_share, "launch", "gz_sim.launch.py")),
launch_arguments={
"gz_args" : PythonExpression(["'", world_file, " -r -s'"])
}.items()
)
spawn_bcr_bot_node = IncludeLaunchDescription(
PythonLaunchDescriptionSource(join(bcr_bot_path, "launch", "bcr_bot_gz_spawn.launch.py")),
launch_arguments={
# Pass any arguments if your spawn.launch.py requires
}.items()
)
return LaunchDescription([
AppendEnvironmentVariable(
name='GZ_SIM_RESOURCE_PATH',
value=join(bcr_bot_path, "worlds")),
AppendEnvironmentVariable(
name='GZ_SIM_RESOURCE_PATH',
value=join(bcr_bot_path, "models")),
DeclareLaunchArgument("use_sim_time", default_value=use_sim_time),
DeclareLaunchArgument("world_file", default_value=world_file),
gz_sim, spawn_bcr_bot_node
])

View File

@ -0,0 +1,48 @@
#!/usr/bin/python3
from os.path import join
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.substitutions import LaunchConfiguration,PythonExpression
from launch.launch_description_sources import PythonLaunchDescriptionSource
from ament_index_python.packages import get_package_share_directory
from launch.actions import AppendEnvironmentVariable
def generate_launch_description():
use_sim_time = LaunchConfiguration("use_sim_time", default=True)
bcr_bot_path = get_package_share_directory("bcr_bot")
world_file = LaunchConfiguration("world_file", default = join(bcr_bot_path, "worlds", "small_warehouse.sdf"))
gz_sim_share = get_package_share_directory("ros_gz_sim")
gz_sim = IncludeLaunchDescription(
PythonLaunchDescriptionSource(join(gz_sim_share, "launch", "gz_sim.launch.py")),
launch_arguments={
"gz_args" : PythonExpression(["'", world_file, " -r'"])
}.items()
)
spawn_bcr_bot_node = IncludeLaunchDescription(
PythonLaunchDescriptionSource(join(bcr_bot_path, "launch", "bcr_bot_ign_spawn.launch.py")),
launch_arguments={
# Pass any arguments if your spawn.launch.py requires
}.items()
)
return LaunchDescription([
AppendEnvironmentVariable(
name='IGN_GAZEBO_RESOURCE_PATH',
value=join(bcr_bot_path, "worlds")),
AppendEnvironmentVariable(
name='IGN_GAZEBO_RESOURCE_PATH',
value=join(bcr_bot_path, "models")),
DeclareLaunchArgument("use_sim_time", default_value=use_sim_time),
DeclareLaunchArgument("world_file", default_value=world_file),
gz_sim, spawn_bcr_bot_node
])

View File

@ -0,0 +1,69 @@
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription, DeclareLaunchArgument
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
pkg_slam_toolbox_dir = get_package_share_directory('slam_toolbox')
pkg_bcr = get_package_share_directory('bcr_bot')
# Declare launch arguments
use_sim_time = LaunchConfiguration('use_sim_time', default='True')
autostart = LaunchConfiguration('autostart', default='True')
declare_use_sim_time = DeclareLaunchArgument(
'use_sim_time',
default_value='true',
description='Use simulation (Gazebo) clock if true'
)
declare_autostart = DeclareLaunchArgument(
'autostart',
default_value='true',
description='Automatically start the slam_toolbox stack'
)
# Include slam_toolbox launch file
slam_toolbox_launch_cmd = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(pkg_slam_toolbox_dir, 'launch', 'online_async_launch.py')
),
launch_arguments={
'use_sim_time': use_sim_time,
'slam_params_file': os.path.join(pkg_bcr, 'config', 'mapper_params_online_async.yaml'),
}.items()
)
# Launch RViz
rviz_launch_cmd = Node(
package="rviz2",
executable="rviz2",
name="rviz2",
arguments=[
'-d', os.path.join(pkg_bcr, 'rviz', 'map.rviz')
]
)
# Static transform publisher
static_transform_publisher_node = Node(
package='tf2_ros',
executable='static_transform_publisher',
name='map_to_odom',
output='screen',
arguments=['0', '0', '0', '0', '0', '0', 'map', 'odom']
)
# Create launch description and add actions
ld = LaunchDescription()
ld.add_action(declare_use_sim_time)
ld.add_action(declare_autostart)
ld.add_action(slam_toolbox_launch_cmd)
ld.add_action(rviz_launch_cmd)
ld.add_action(static_transform_publisher_node)
return ld

View File

@ -0,0 +1,83 @@
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
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
pkg_nav2_dir = get_package_share_directory('nav2_bringup')
pkg_bcr = get_package_share_directory('bcr_bot')
use_sim_time = LaunchConfiguration('use_sim_time', default='True')
autostart = LaunchConfiguration('autostart', default='True')
nav2_launch_cmd = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(pkg_nav2_dir, 'launch', 'bringup_launch.py')
),
launch_arguments={
'use_sim_time': use_sim_time,
'autostart': autostart,
'map': os.path.join(pkg_bcr, 'config', 'bcr_map.yaml'),
'params_file': os.path.join(pkg_bcr, 'config', 'nav2_params.yaml'),
'package_path': pkg_bcr,
}.items()
)
rviz_launch_cmd = Node(
package="rviz2",
executable="rviz2",
name="rviz2",
arguments=[
'-d' + os.path.join(
get_package_share_directory('nav2_bringup'),
'rviz',
'nav2_default_view.rviz'
)
]
)
amcl_node = Node(
package='nav2_amcl',
executable='amcl',
name='amcl',
output='screen',
parameters=[os.path.join(pkg_bcr, 'config', 'amcl_params.yaml')],
)
map_server_node = Node(
package='nav2_map_server',
executable='map_server',
name='map_server',
output='screen',
parameters=[{'yaml_filename': os.path.join(pkg_bcr, 'config', 'bcr_map.yaml')}],
)
static_transform_publisher_node = Node(
package='tf2_ros',
executable='static_transform_publisher',
name='map_to_odom',
output='screen',
arguments=['0', '0', '0', '0', '0', '0', 'map', 'odom']
)
remapper_node = Node(
package='bcr_bot',
executable='remapper.py',
name='remapper',
output='screen',
)
ld = LaunchDescription()
ld.add_action(nav2_launch_cmd)
ld.add_action(rviz_launch_cmd)
ld.add_action(amcl_node)
ld.add_action(map_server_node)
ld.add_action(static_transform_publisher_node)
ld.add_action(remapper_node)
return ld

View File

@ -0,0 +1,63 @@
#!/usr/bin/env python3
import os
import xacro
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
from launch.actions import DeclareLaunchArgument, GroupAction
from launch.conditions import IfCondition, UnlessCondition
def get_xacro_to_doc(xacro_file_path, mappings):
doc = xacro.parse(open(xacro_file_path))
xacro.process_doc(doc, mappings=mappings)
return doc
def generate_launch_description():
# Launch configurations
use_sim_time = LaunchConfiguration('use_sim_time', default='false')
isaac_sim = LaunchConfiguration('isaac_sim')
# Process XACRO
xacro_path = os.path.join(get_package_share_directory('bcr_bot'), 'urdf', 'bcr_bot.xacro')
doc = get_xacro_to_doc(xacro_path, {"wheel_odom_topic": "odom"})
# Nodes
robot_state_publisher = Node(
package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
output='screen',
parameters=[{'use_sim_time': use_sim_time}, {'robot_description': doc.toxml()}],
condition=UnlessCondition(isaac_sim) # Only start if isaac_sim is false
)
rviz = Node(
package='rviz2',
executable='rviz2',
name='rviz2',
output='screen',
arguments=['-d', os.path.join(get_package_share_directory('bcr_bot'), 'rviz', 'entire_setup.rviz')]
)
return LaunchDescription([
# Declare arguments
DeclareLaunchArgument(
'use_sim_time',
default_value='false',
description='Use simulation time if true'
),
DeclareLaunchArgument(
'isaac_sim',
default_value='false',
description='Set to true when using Isaac Sim'
),
DeclareLaunchArgument(
'robot_description',
default_value=doc.toxml(),
description='Robot description in URDF/XACRO format'
),
# Nodes
robot_state_publisher,
rviz
])

View File

@ -0,0 +1,52 @@
#!/usr/bin/python3
"""GzWeb 迷你仓库场景:仅 Gazebo Sim + 机器人,无 RViz / Nav2 / SLAM。"""
from os.path import join
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import (
AppendEnvironmentVariable,
DeclareLaunchArgument,
IncludeLaunchDescription,
TimerAction,
)
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration, PythonExpression
def generate_launch_description():
bcr_bot_path = get_package_share_directory('bcr_bot')
world_file = LaunchConfiguration(
'world_file',
default=join(bcr_bot_path, 'worlds', 'small_warehouse.sdf'),
)
gz_sim_share = get_package_share_directory('ros_gz_sim')
gz_sim = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
join(gz_sim_share, 'launch', 'gz_sim.launch.py')
),
launch_arguments={
'gz_args': PythonExpression(["'-r -s ", world_file, "'"]),
}.items(),
)
spawn = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
join(bcr_bot_path, 'launch', 'warehouse_spawn.launch.py')
),
)
return LaunchDescription([
AppendEnvironmentVariable(
name='GZ_SIM_RESOURCE_PATH', value=join(bcr_bot_path, 'worlds')),
AppendEnvironmentVariable(
name='GZ_SIM_RESOURCE_PATH', value=join(bcr_bot_path, 'models')),
AppendEnvironmentVariable(
name='IGN_GAZEBO_RESOURCE_PATH', value=join(bcr_bot_path, 'worlds')),
AppendEnvironmentVariable(
name='IGN_GAZEBO_RESOURCE_PATH', value=join(bcr_bot_path, 'models')),
DeclareLaunchArgument('world_file', default_value=world_file),
gz_sim,
TimerAction(period=8.0, actions=[spawn]),
])

View File

@ -0,0 +1,55 @@
#!/usr/bin/python3
"""生成 BCR 机器人GzWeb 可视化,无 ros_gz_bridge / Nav2"""
from os.path import join
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import Command, LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
bcr_bot_path = get_package_share_directory('bcr_bot')
position_x = LaunchConfiguration('position_x', default='0.0')
position_y = LaunchConfiguration('position_y', default='0.0')
orientation_yaw = LaunchConfiguration('orientation_yaw', default='0.0')
robot_state_publisher = Node(
package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
parameters=[{
'robot_description': Command([
'xacro ', join(bcr_bot_path, 'urdf/bcr_bot.xacro'),
' camera_enabled:=false',
' stereo_camera_enabled:=false',
' two_d_lidar_enabled:=false',
' odometry_source:=world',
' sim_gz:=true',
]),
}],
remappings=[('/joint_states', 'bcr_bot/joint_states')],
)
gz_spawn_entity = Node(
package='ros_gz_sim',
executable='create',
arguments=[
'-topic', '/robot_description',
'-name', 'bcr_bot',
'-allow_renaming', 'true',
'-z', '0.28',
'-x', position_x,
'-y', position_y,
'-Y', orientation_yaw,
],
)
return LaunchDescription([
DeclareLaunchArgument('position_x', default_value='0.0'),
DeclareLaunchArgument('position_y', default_value='0.0'),
DeclareLaunchArgument('orientation_yaw', default_value='0.0'),
robot_state_publisher,
gz_spawn_entity,
])

View File

@ -0,0 +1,46 @@
# generated from ament_package/template/package_level/local_setup.bash.in
# source local_setup.sh from same directory as this file
_this_path=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" && pwd)
# provide AMENT_CURRENT_PREFIX to shell script
AMENT_CURRENT_PREFIX=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." && pwd)
# store AMENT_CURRENT_PREFIX to restore it before each environment hook
_package_local_setup_AMENT_CURRENT_PREFIX=$AMENT_CURRENT_PREFIX
# trace output
if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
echo "# . \"$_this_path/local_setup.sh\""
fi
. "$_this_path/local_setup.sh"
unset _this_path
# unset AMENT_ENVIRONMENT_HOOKS
# if not appending to them for return
if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
unset AMENT_ENVIRONMENT_HOOKS
fi
# restore AMENT_CURRENT_PREFIX before evaluating the environment hooks
AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
# list all environment hooks of this package
# source all shell-specific environment hooks of this package
# if not returning them
if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
_package_local_setup_IFS=$IFS
IFS=":"
for _hook in $AMENT_ENVIRONMENT_HOOKS; do
# restore AMENT_CURRENT_PREFIX for each environment hook
AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
# restore IFS before sourcing other files
IFS=$_package_local_setup_IFS
. "$_hook"
done
unset _hook
IFS=$_package_local_setup_IFS
unset _package_local_setup_IFS
unset AMENT_ENVIRONMENT_HOOKS
fi
unset _package_local_setup_AMENT_CURRENT_PREFIX
unset AMENT_CURRENT_PREFIX

View File

@ -0,0 +1,2 @@
source;share/bcr_bot/environment/ament_prefix_path.sh
source;share/bcr_bot/environment/path.sh

View File

@ -0,0 +1,184 @@
# generated from ament_package/template/package_level/local_setup.sh.in
# since this file is sourced use either the provided AMENT_CURRENT_PREFIX
# or fall back to the destination set at configure time
: ${AMENT_CURRENT_PREFIX:="/workspace/install/bcr_bot"}
if [ ! -d "$AMENT_CURRENT_PREFIX" ]; then
if [ -z "$COLCON_CURRENT_PREFIX" ]; then
echo "The compile time prefix path '$AMENT_CURRENT_PREFIX' doesn't " \
"exist. Consider sourcing a different extension than '.sh'." 1>&2
else
AMENT_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX"
fi
fi
# function to append values to environment variables
# using colons as separators and avoiding leading separators
ament_append_value() {
# arguments
_listname="$1"
_value="$2"
#echo "listname $_listname"
#eval echo "list value \$$_listname"
#echo "value $_value"
# avoid leading separator
eval _values=\"\$$_listname\"
if [ -z "$_values" ]; then
eval export $_listname=\"$_value\"
#eval echo "set list \$$_listname"
else
# field separator must not be a colon
_ament_append_value_IFS=$IFS
unset IFS
eval export $_listname=\"\$$_listname:$_value\"
#eval echo "append list \$$_listname"
IFS=$_ament_append_value_IFS
unset _ament_append_value_IFS
fi
unset _values
unset _value
unset _listname
}
# function to append non-duplicate values to environment variables
# using colons as separators and avoiding leading separators
ament_append_unique_value() {
# arguments
_listname=$1
_value=$2
#echo "listname $_listname"
#eval echo "list value \$$_listname"
#echo "value $_value"
# check if the list contains the value
eval _values=\$$_listname
_duplicate=
_ament_append_unique_value_IFS=$IFS
IFS=":"
if [ "$AMENT_SHELL" = "zsh" ]; then
ament_zsh_to_array _values
fi
for _item in $_values; do
# ignore empty strings
if [ -z "$_item" ]; then
continue
fi
if [ $_item = $_value ]; then
_duplicate=1
fi
done
unset _item
# append only non-duplicates
if [ -z "$_duplicate" ]; then
# avoid leading separator
if [ -z "$_values" ]; then
eval $_listname=\"$_value\"
#eval echo "set list \$$_listname"
else
# field separator must not be a colon
unset IFS
eval $_listname=\"\$$_listname:$_value\"
#eval echo "append list \$$_listname"
fi
fi
IFS=$_ament_append_unique_value_IFS
unset _ament_append_unique_value_IFS
unset _duplicate
unset _values
unset _value
unset _listname
}
# function to prepend non-duplicate values to environment variables
# using colons as separators and avoiding trailing separators
ament_prepend_unique_value() {
# arguments
_listname="$1"
_value="$2"
#echo "listname $_listname"
#eval echo "list value \$$_listname"
#echo "value $_value"
# check if the list contains the value
eval _values=\"\$$_listname\"
_duplicate=
_ament_prepend_unique_value_IFS=$IFS
IFS=":"
if [ "$AMENT_SHELL" = "zsh" ]; then
ament_zsh_to_array _values
fi
for _item in $_values; do
# ignore empty strings
if [ -z "$_item" ]; then
continue
fi
if [ "$_item" = "$_value" ]; then
_duplicate=1
fi
done
unset _item
# prepend only non-duplicates
if [ -z "$_duplicate" ]; then
# avoid trailing separator
if [ -z "$_values" ]; then
eval export $_listname=\"$_value\"
#eval echo "set list \$$_listname"
else
# field separator must not be a colon
unset IFS
eval export $_listname=\"$_value:\$$_listname\"
#eval echo "prepend list \$$_listname"
fi
fi
IFS=$_ament_prepend_unique_value_IFS
unset _ament_prepend_unique_value_IFS
unset _duplicate
unset _values
unset _value
unset _listname
}
# unset AMENT_ENVIRONMENT_HOOKS
# if not appending to them for return
if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
unset AMENT_ENVIRONMENT_HOOKS
fi
# list all environment hooks of this package
ament_append_value AMENT_ENVIRONMENT_HOOKS "$AMENT_CURRENT_PREFIX/share/bcr_bot/environment/ament_prefix_path.sh"
ament_append_value AMENT_ENVIRONMENT_HOOKS "$AMENT_CURRENT_PREFIX/share/bcr_bot/environment/path.sh"
# source all shell-specific environment hooks of this package
# if not returning them
if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
_package_local_setup_IFS=$IFS
IFS=":"
if [ "$AMENT_SHELL" = "zsh" ]; then
ament_zsh_to_array AMENT_ENVIRONMENT_HOOKS
fi
for _hook in $AMENT_ENVIRONMENT_HOOKS; do
if [ -f "$_hook" ]; then
# restore IFS before sourcing other files
IFS=$_package_local_setup_IFS
# trace output
if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
echo "# . \"$_hook\""
fi
. "$_hook"
fi
done
unset _hook
IFS=$_package_local_setup_IFS
unset _package_local_setup_IFS
unset AMENT_ENVIRONMENT_HOOKS
fi
# reset AMENT_CURRENT_PREFIX after each package
# allowing to source multiple package-level setup files
unset AMENT_CURRENT_PREFIX

View File

@ -0,0 +1,59 @@
# generated from ament_package/template/package_level/local_setup.zsh.in
AMENT_SHELL=zsh
# source local_setup.sh from same directory as this file
_this_path=$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)
# provide AMENT_CURRENT_PREFIX to shell script
AMENT_CURRENT_PREFIX=$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)
# store AMENT_CURRENT_PREFIX to restore it before each environment hook
_package_local_setup_AMENT_CURRENT_PREFIX=$AMENT_CURRENT_PREFIX
# function to convert array-like strings into arrays
# to wordaround SH_WORD_SPLIT not being set
ament_zsh_to_array() {
local _listname=$1
local _dollar="$"
local _split="{="
local _to_array="(\"$_dollar$_split$_listname}\")"
eval $_listname=$_to_array
}
# trace output
if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
echo "# . \"$_this_path/local_setup.sh\""
fi
# the package-level local_setup file unsets AMENT_CURRENT_PREFIX
. "$_this_path/local_setup.sh"
unset _this_path
# unset AMENT_ENVIRONMENT_HOOKS
# if not appending to them for return
if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
unset AMENT_ENVIRONMENT_HOOKS
fi
# restore AMENT_CURRENT_PREFIX before evaluating the environment hooks
AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
# list all environment hooks of this package
# source all shell-specific environment hooks of this package
# if not returning them
if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
_package_local_setup_IFS=$IFS
IFS=":"
for _hook in $AMENT_ENVIRONMENT_HOOKS; do
# restore AMENT_CURRENT_PREFIX for each environment hook
AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
# restore IFS before sourcing other files
IFS=$_package_local_setup_IFS
. "$_hook"
done
unset _hook
IFS=$_package_local_setup_IFS
unset _package_local_setup_IFS
unset AMENT_ENVIRONMENT_HOOKS
fi
unset _package_local_setup_AMENT_CURRENT_PREFIX
unset AMENT_CURRENT_PREFIX

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,201 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-03-21T07:58:19Z</created><keywords></keywords><modified>2019-03-21T07:58:19Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_materials>
<material id="Material #946391" name="Material #946391">
<instance_effect url="#Material #946391-fx"/>
</material>
</library_materials>
<library_effects>
<effect id="Material #946391-fx" name="Material #946391">
<profile_COMMON>
<technique sid="standard">
<phong>
<emission>
<color sid="emission">0.000000 0.000000 0.000000 1.000000</color>
</emission>
<ambient>
<color sid="ambient">0.588000 0.588000 0.588000 1.000000</color>
</ambient>
<diffuse>
<color sid="diffuse">0.588000 0.588000 0.588000 1.000000</color>
</diffuse>
<specular>
<color sid="specular">0.000000 0.000000 0.000000 1.000000</color>
</specular>
<shininess>
<float sid="shininess">2.000000</float>
</shininess>
<reflective>
<color sid="reflective">0.000000 0.000000 0.000000 1.000000</color>
</reflective>
<reflectivity>
<float sid="reflectivity">1.000000</float>
</reflectivity>
<transparent opaque="RGB_ZERO">
<color sid="transparent">1.000000 1.000000 1.000000 1.000000</color>
</transparent>
<transparency>
<float sid="transparency">0.000000</float>
</transparency>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="aws_robomaker_warehouse_Bucket_01_collision-lib" name="aws_robomaker_warehouse_Bucket_01_collisionMesh">
<mesh>
<source id="aws_robomaker_warehouse_Bucket_01_collision-POSITION">
<float_array id="aws_robomaker_warehouse_Bucket_01_collision-POSITION-array" count="36">
-45.501598 -57.976257 0.490845
44.339504 -57.976257 0.490845
-45.501598 58.313538 0.490845
44.339504 58.313538 0.490845
-47.634106 -61.119202 140.905685
46.472012 -61.119202 140.905685
-47.634106 61.119202 140.905685
46.472012 61.119202 140.905685
46.472012 -61.119198 24.969147
-47.634109 -61.119202 24.969151
-47.634106 61.119198 24.969147
46.472012 61.119198 24.969147
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Bucket_01_collision-POSITION-array" count="12" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_Bucket_01_collision-Normal0">
<float_array id="aws_robomaker_warehouse_Bucket_01_collision-Normal0-array" count="180">
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -0.998076 -0.062006
0.000000 -0.991858 -0.127352
0.000000 -0.991858 -0.127352
0.000000 -0.991858 -0.127352
0.000000 -0.998076 -0.062006
0.000000 -0.998076 -0.062006
0.999126 0.000000 -0.041805
0.996227 0.000000 -0.086790
0.996227 0.000000 -0.086790
0.996227 0.000000 -0.086790
0.999126 0.000000 -0.041805
0.999134 0.000000 -0.041602
0.000000 0.998463 -0.055418
0.000000 0.993495 -0.113873
0.000000 0.998463 -0.055418
0.000000 0.993495 -0.113873
0.000000 0.998463 -0.055418
0.000000 0.993495 -0.113873
-0.999126 0.000000 -0.041805
-0.996227 0.000000 -0.086790
-0.999134 0.000000 -0.041602
-0.996227 0.000000 -0.086790
-0.999126 0.000000 -0.041805
-0.996227 0.000000 -0.086790
0.000000 -0.998076 -0.062006
0.000000 -1.000000 -0.000000
0.000000 -1.000000 -0.000000
0.000000 -1.000000 -0.000000
0.000000 -0.998076 -0.062006
0.000000 -0.998076 -0.062006
0.999134 0.000000 -0.041602
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.999134 0.000000 -0.041602
0.999126 0.000000 -0.041805
0.000000 1.000000 -0.000000
0.000000 0.998463 -0.055418
0.000000 1.000000 -0.000000
0.000000 1.000000 -0.000000
0.000000 0.998463 -0.055418
0.000000 0.998463 -0.055418
-0.999126 0.000000 -0.041805
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-0.999126 0.000000 -0.041805
-0.999134 0.000000 -0.041602
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Bucket_01_collision-Normal0-array" count="60" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_Bucket_01_collision-UV0">
<float_array id="aws_robomaker_warehouse_Bucket_01_collision-UV0-array" count="64">
1.000000 0.000000
0.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
1.000000 0.174235
0.000000 0.174235
0.000000 0.174235
1.000000 0.174235
1.000000 0.174235
0.000000 0.174235
1.000000 0.174235
0.000000 0.174235
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Bucket_01_collision-UV0-array" count="32" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_Bucket_01_collision-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_Bucket_01_collision-POSITION"/>
</vertices>
<triangles count="20" material="Material #946391"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_Bucket_01_collision-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_Bucket_01_collision-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_Bucket_01_collision-UV0"/><p> 1 0 1 0 1 0 3 2 3 0 3 0 2 4 2 3 5 3 7 6 7 6 7 6 4 8 4 7 9 7 4 10 4 5 11 5 8 12 24 0 13 8 1 14 9 0 15 8 8 16 24 9 17 26 11 18 30 1 19 12 3 20 13 1 21 12 11 22 30 8 23 25 11 24 31 2 25 17 10 26 28 2 27 17 11 28 31 3 29 16 10 30 29 0 31 21 9 32 27 0 33 21 10 34 29 2 35 20 9 36 26 5 37 11 4 38 10 5 39 11 9 40 26 8 41 24 8 42 25 7 43 15 5 44 14 7 45 15 8 46 25 11 47 30 7 48 18 11 49 31 6 50 19 6 51 19 11 52 31 10 53 28 10 54 29 4 55 23 6 56 22 4 57 23 10 58 29 9 59 27</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_Bucket_01_collision" name="aws_robomaker_warehouse_Bucket_01_collision">
<node name="aws_robomaker_warehouse_Bucket_01_collision" id="aws_robomaker_warehouse_Bucket_01_collision" layer="aws_robomaker_warehouse_Bucket_01" sid="aws_robomaker_warehouse_Bucket_01_collision"><matrix sid="matrix">1.000000 0.000000 0.000000 0.581024 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_Bucket_01_collision-lib"><bind_material><technique_common><instance_material symbol="Material #946391" target="#Material #946391"/></technique_common></bind_material></instance_geometry><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_Bucket_01_collision"></instance_visual_scene>
</scene>
</COLLADA>

View File

@ -0,0 +1,786 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-03-21T07:57:48Z</created><keywords></keywords><modified>2019-03-21T07:57:48Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_images>
<image id="Map #1123124511-image" name="Map #1123124511">
<init_from>../materials/textures/aws_robomaker_warehouse_Bucket_01.png</init_from>
</image>
</library_images>
<library_materials>
<material id="Material #946392" name="Material #946392">
<instance_effect url="#Material #946392-fx"/>
</material>
</library_materials>
<library_effects>
<effect id="Material #946392-fx" name="Material #946392">
<profile_COMMON>
<technique sid="standard">
<phong>
<emission>
<color sid="emission">0.000000 0.000000 0.000000 1.000000</color>
</emission>
<ambient>
<color sid="ambient">0.588000 0.588000 0.588000 1.000000</color>
</ambient>
<diffuse>
<texture texture="Map #1123124511-image" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
<specular>
<color sid="specular">0.000000 0.000000 0.000000 1.000000</color>
</specular>
<shininess>
<float sid="shininess">2.000000</float>
</shininess>
<reflective>
<color sid="reflective">0.000000 0.000000 0.000000 1.000000</color>
</reflective>
<reflectivity>
<float sid="reflectivity">1.000000</float>
</reflectivity>
<transparent opaque="RGB_ZERO">
<color sid="transparent">1.000000 1.000000 1.000000 1.000000</color>
</transparent>
<transparency>
<float sid="transparency">0.000000</float>
</transparency>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="aws_robomaker_warehouse_Bucket_01_visual-lib" name="aws_robomaker_warehouse_Bucket_01_visualMesh">
<mesh>
<source id="aws_robomaker_warehouse_Bucket_01_visual-POSITION">
<float_array id="aws_robomaker_warehouse_Bucket_01_visual-POSITION-array" count="240">
-47.053059 -59.404663 140.414841
-3.469593 -59.404663 140.414841
-47.053059 0.261108 140.414841
-3.469593 0.261108 140.414841
-47.053059 -59.404663 24.478302
-3.469593 -59.404663 24.478302
-47.053059 0.261108 24.478302
-3.469593 0.261108 24.478302
-44.920551 -56.664063 0.044712
-5.602100 -56.664063 0.044712
-44.920551 -2.479492 0.044712
-5.602100 -2.479492 0.044712
-45.551821 -1.313351 140.414841
-45.551821 -57.830206 140.414841
-4.970831 -57.830206 140.414841
-4.970831 -1.313351 140.414841
-43.497578 -4.180773 107.089249
-43.497578 -55.149446 107.089249
-7.025072 -55.149446 107.089249
-7.025072 -4.180773 107.089249
-43.109898 1.219604 119.170395
0.473568 1.219604 119.170395
-43.109898 60.885376 119.170395
0.473568 60.885376 119.170395
-43.109898 1.219604 24.433590
0.473568 1.219604 24.433590
-43.109898 60.885376 24.433590
0.473568 60.885376 24.433590
-40.977390 3.960205 0.000000
-1.658939 3.960205 0.000000
-40.977390 58.144775 0.000000
-1.658939 58.144775 0.000000
-41.608660 59.310913 119.170395
-41.608660 2.794060 119.170395
-1.027670 2.794060 119.170395
-1.027670 59.310913 119.170395
-39.554417 56.443497 85.865417
-39.554417 5.474823 85.865417
-3.081911 5.474823 85.865417
-3.081911 56.443497 85.865417
3.469601 1.219604 87.304581
47.053070 1.219604 87.304581
3.469601 60.885376 87.304581
47.053070 60.885376 87.304581
3.469601 1.219604 24.433590
47.053070 1.219604 24.433590
3.469601 60.885376 24.433590
47.053070 60.885376 24.433590
5.602108 3.960205 0.000000
44.920563 3.960205 0.000000
5.602108 58.144775 0.000000
44.920563 58.144775 0.000000
4.970839 59.310913 87.304581
4.970839 2.794060 87.304581
45.551826 2.794060 87.304581
45.551826 59.310913 87.304581
7.025082 56.443497 54.033794
7.025082 5.474823 54.033794
43.497589 5.474823 54.033794
43.497589 56.443497 54.033794
1.545681 -60.885498 129.792053
45.129150 -60.885498 129.792053
1.545681 -1.219727 129.792053
45.129150 -1.219727 129.792053
1.545681 -60.885498 24.478302
45.129150 -60.885498 24.478302
1.545681 -1.219727 24.478302
45.129150 -1.219727 24.478302
3.678188 -58.144897 0.044712
42.996643 -58.144897 0.044712
3.678188 -3.960327 0.044712
42.996643 -3.960327 0.044712
3.046919 -2.794186 129.792053
3.046919 -59.311041 129.792053
43.627907 -59.311041 129.792053
43.627907 -2.794186 129.792053
5.101162 -5.661608 96.496231
5.101162 -56.630281 96.496231
41.573669 -56.630281 96.496231
41.573669 -5.661608 96.496231
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Bucket_01_visual-POSITION-array" count="80" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_Bucket_01_visual-Normal0">
<float_array id="aws_robomaker_warehouse_Bucket_01_visual-Normal0-array" count="1296">
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.998106 0.000000 0.061525
0.998106 0.000000 0.061525
0.998106 0.000000 0.061525
0.998106 0.000000 0.061525
0.998106 0.000000 0.061525
0.998106 0.000000 0.061525
0.000000 0.996780 0.080182
0.000000 0.996780 0.080182
0.000000 0.996780 0.080182
0.000000 0.996780 0.080182
0.000000 0.996780 0.080182
0.000000 0.996780 0.080182
-0.998106 0.000000 0.061525
-0.998106 0.000000 0.061525
-0.998106 0.000000 0.061525
-0.998106 0.000000 0.061525
-0.998106 0.000000 0.061525
-0.998106 0.000000 0.061525
0.000000 -0.996319 0.085726
0.000000 -0.996319 0.085726
0.000000 -0.996319 0.085726
0.000000 -0.996319 0.085726
0.000000 -0.996319 0.085726
0.000000 -0.996319 0.085726
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.998103 0.000000 0.061563
0.998103 0.000000 0.061563
0.998103 0.000000 0.061563
0.998103 0.000000 0.061563
0.998103 0.000000 0.061563
0.998103 0.000000 0.061563
0.000000 0.996776 0.080232
0.000000 0.996776 0.080232
0.000000 0.996776 0.080232
0.000000 0.996776 0.080232
0.000000 0.996776 0.080232
0.000000 0.996776 0.080232
-0.998103 0.000000 0.061563
-0.998103 0.000000 0.061563
-0.998103 0.000000 0.061563
-0.998103 0.000000 0.061563
-0.998103 0.000000 0.061563
-0.998103 0.000000 0.061563
0.000000 -0.996314 0.085778
0.000000 -0.996314 0.085778
0.000000 -0.996314 0.085778
0.000000 -0.996314 0.085778
0.000000 -0.996314 0.085778
0.000000 -0.996314 0.085778
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.998099 0.000000 0.061626
0.998099 0.000000 0.061626
0.998099 0.000000 0.061626
0.998099 0.000000 0.061626
0.998099 0.000000 0.061626
0.998099 0.000000 0.061626
0.000000 0.996770 0.080314
0.000000 0.996770 0.080314
0.000000 0.996770 0.080314
0.000000 0.996770 0.080314
0.000000 0.996770 0.080314
0.000000 0.996770 0.080314
-0.998099 0.000000 0.061626
-0.998099 0.000000 0.061626
-0.998099 0.000000 0.061626
-0.998099 0.000000 0.061626
-0.998099 0.000000 0.061626
-0.998099 0.000000 0.061626
0.000000 -0.996307 0.085866
0.000000 -0.996307 0.085866
0.000000 -0.996307 0.085866
0.000000 -0.996307 0.085866
0.000000 -0.996307 0.085866
0.000000 -0.996307 0.085866
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
-0.996213 0.000000 -0.086947
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.000000 0.993768 -0.111466
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.996213 0.000000 -0.086947
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 -0.993768 -0.111466
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.998102 0.000000 0.061580
0.998102 0.000000 0.061580
0.998102 0.000000 0.061580
0.998102 0.000000 0.061580
0.998102 0.000000 0.061580
0.998102 0.000000 0.061580
0.000000 0.996774 0.080254
0.000000 0.996774 0.080254
0.000000 0.996774 0.080254
0.000000 0.996774 0.080254
0.000000 0.996774 0.080254
0.000000 0.996774 0.080254
-0.998102 0.000000 0.061579
-0.998102 0.000000 0.061579
-0.998102 0.000000 0.061579
-0.998102 0.000000 0.061579
-0.998102 0.000000 0.061579
-0.998102 0.000000 0.061579
0.000000 -0.996312 0.085802
0.000000 -0.996312 0.085802
0.000000 -0.996312 0.085802
0.000000 -0.996312 0.085802
0.000000 -0.996312 0.085802
0.000000 -0.996312 0.085802
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Bucket_01_visual-Normal0-array" count="432" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_Bucket_01_visual-UV0">
<float_array id="aws_robomaker_warehouse_Bucket_01_visual-UV0-array" count="328">
0.503250 0.182172
0.260475 0.182172
0.266882 0.176062
0.496844 0.176062
0.202726 0.996046
0.670755 0.996046
0.004123 0.996046
0.472024 0.996046
0.003904 0.183168
0.003904 0.004111
0.250662 0.004111
0.250662 0.183168
0.677249 0.192456
0.251604 0.192456
0.429384 0.192456
0.854111 0.192456
0.765823 0.004091
0.765823 0.182429
0.516603 0.182429
0.516603 0.004091
0.670755 0.468044
0.004123 0.468044
0.670755 0.356586
0.004123 0.356586
0.202726 0.468044
0.472024 0.468044
0.202726 0.356586
0.472024 0.356586
0.260475 0.004834
0.266882 0.010943
0.503250 0.004834
0.496844 0.010943
0.004105 0.192456
0.251604 0.345840
0.004105 0.345840
0.677249 0.345840
0.429384 0.345840
0.854111 0.345840
0.941696 0.996046
0.941696 0.468044
0.941696 0.356586
0.503250 0.182172
0.260475 0.182172
0.266882 0.176063
0.496844 0.176063
0.202726 0.899077
0.670755 0.899077
0.004123 0.899077
0.472024 0.899077
0.003904 0.183168
0.003904 0.004111
0.250662 0.004111
0.250662 0.183168
0.251893 0.192456
0.677115 0.192456
0.854111 0.192456
0.429617 0.192456
0.765823 0.004091
0.765823 0.182429
0.516603 0.182429
0.516603 0.004091
0.670755 0.468044
0.004123 0.468044
0.670755 0.356586
0.004123 0.356586
0.202726 0.468044
0.472024 0.468044
0.202726 0.356586
0.472024 0.356586
0.004105 0.192456
0.004105 0.345840
0.677115 0.345840
0.260475 0.004834
0.266882 0.010943
0.503250 0.004834
0.496844 0.010943
0.429617 0.345840
0.251893 0.345840
0.854111 0.345840
0.941696 0.899077
0.941696 0.468044
0.941696 0.356586
0.503250 0.182172
0.260475 0.182172
0.266878 0.176066
0.496844 0.176066
0.670755 0.754753
0.202726 0.754753
0.472024 0.754753
0.941696 0.754753
0.003904 0.183168
0.003904 0.004111
0.250662 0.004111
0.250662 0.183168
0.251803 0.192456
0.676793 0.192456
0.854111 0.192456
0.429464 0.192456
0.765823 0.004091
0.765823 0.182429
0.516603 0.182429
0.516603 0.004091
0.202726 0.468044
0.472024 0.468044
0.202726 0.356586
0.472024 0.356586
0.670755 0.468044
0.941696 0.468044
0.670755 0.356586
0.941696 0.356586
0.004123 0.754753
0.004123 0.468044
0.004123 0.356586
0.260475 0.004834
0.266878 0.010943
0.503250 0.004834
0.496844 0.010943
0.676793 0.345840
0.429464 0.345840
0.251803 0.345840
0.854111 0.345840
0.004105 0.192456
0.004105 0.345840
0.503250 0.182172
0.260475 0.182172
0.266884 0.176061
0.496844 0.176061
0.670755 0.949681
0.202726 0.949681
0.472024 0.949681
0.941696 0.949681
0.003904 0.183168
0.003904 0.004111
0.250662 0.004111
0.250662 0.183168
0.251692 0.192456
0.677407 0.192456
0.854111 0.192456
0.429511 0.192456
0.765823 0.004091
0.765823 0.182429
0.516603 0.182429
0.516603 0.004091
0.202726 0.468044
0.472024 0.468044
0.202726 0.356586
0.472024 0.356586
0.670755 0.468044
0.941696 0.468044
0.670755 0.356586
0.941696 0.356586
0.260475 0.004834
0.266884 0.010943
0.503250 0.004834
0.496844 0.010943
0.677407 0.345840
0.429511 0.345840
0.004105 0.192456
0.251692 0.345840
0.004105 0.345840
0.854111 0.345840
0.004123 0.949681
0.004123 0.468044
0.004123 0.356586
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Bucket_01_visual-UV0-array" count="164" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_Bucket_01_visual-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_Bucket_01_visual-POSITION"/>
</vertices>
<triangles count="144" material="Material #946392"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_Bucket_01_visual-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_Bucket_01_visual-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_Bucket_01_visual-UV0"/><p> 2 0 4 6 1 24 0 2 7 0 3 7 6 4 24 4 5 25 3 6 6 7 7 21 2 8 4 2 9 4 7 10 21 6 11 24 1 12 5 5 13 20 3 14 38 3 15 38 5 16 20 7 17 39 0 18 7 4 19 25 1 20 5 1 21 5 4 22 25 5 23 20 10 24 26 4 25 25 6 26 24 4 27 25 10 28 26 8 29 27 7 30 21 11 31 23 6 32 24 6 33 24 11 34 23 10 35 26 7 36 39 5 37 20 9 38 22 7 39 39 9 40 22 11 41 40 4 42 25 8 43 27 5 44 20 5 45 20 8 46 27 9 47 22 8 48 11 11 49 9 9 50 10 11 51 9 8 52 11 10 53 8 0 54 1 12 55 3 2 56 0 12 57 3 0 58 1 13 59 2 0 60 1 1 61 28 14 62 29 0 63 1 14 64 29 13 65 2 1 66 28 3 67 30 15 68 31 1 69 28 15 70 31 14 71 29 12 72 3 3 73 30 2 74 0 3 75 30 12 76 3 15 77 31 13 78 13 16 79 34 12 80 32 16 81 34 13 82 13 17 83 33 14 84 14 17 85 33 13 86 13 17 87 33 14 88 14 18 89 36 15 90 12 19 91 35 14 92 14 14 93 14 19 94 35 18 95 36 12 96 15 16 97 37 15 98 12 15 99 12 16 100 37 19 101 35 16 102 19 18 103 17 19 104 18 18 105 17 16 106 19 17 107 16 22 108 45 26 109 65 20 110 48 20 111 48 26 112 65 24 113 66 23 114 47 27 115 62 22 116 45 22 117 45 27 118 62 26 119 65 21 120 46 25 121 61 23 122 79 23 123 79 25 124 61 27 125 80 20 126 48 24 127 66 21 128 46 21 129 46 24 130 66 25 131 61 24 132 66 26 133 65 30 134 67 24 135 66 30 136 67 28 137 68 27 138 62 31 139 64 26 140 65 26 141 65 31 142 64 30 143 67 29 144 63 27 145 80 25 146 61 27 147 80 29 148 63 31 149 81 24 150 66 28 151 68 25 152 61 25 153 61 28 154 68 29 155 63 28 156 52 31 157 50 29 158 51 31 159 50 28 160 52 30 161 49 20 162 42 32 163 44 22 164 41 32 165 44 20 166 42 33 167 43 20 168 42 21 169 72 34 170 73 20 171 42 34 172 73 33 173 43 21 174 72 23 175 74 35 176 75 21 177 72 35 178 75 34 179 73 23 180 74 22 181 41 32 182 44 23 183 74 32 184 44 35 185 75 33 186 54 36 187 76 32 188 56 36 189 76 33 190 54 37 191 71 34 192 55 37 193 71 33 194 54 37 195 71 34 196 55 38 197 78 35 198 53 39 199 77 34 200 69 34 201 69 39 202 77 38 203 70 32 204 56 36 205 76 35 206 53 35 207 53 36 208 76 39 209 77 36 210 60 38 211 58 39 212 59 38 213 58 36 214 60 37 215 57 46 216 106 40 217 89 42 218 86 40 219 89 46 220 106 44 221 107 43 222 88 47 223 103 42 224 86 42 225 86 47 226 103 46 227 106 45 228 102 43 229 88 41 230 87 43 231 88 45 232 102 47 233 103 40 234 110 44 235 111 41 236 87 41 237 87 44 238 111 45 239 102 44 240 107 46 241 106 50 242 108 44 243 107 50 244 108 48 245 109 47 246 103 51 247 105 46 248 106 46 249 106 51 250 105 50 251 108 49 252 104 47 253 103 45 254 102 47 255 103 49 256 104 51 257 105 44 258 111 48 259 112 45 260 102 45 261 102 48 262 112 49 263 104 48 264 93 51 265 91 49 266 92 51 267 91 48 268 93 50 269 90 40 270 83 52 271 85 42 272 82 52 273 85 40 274 83 53 275 84 40 276 83 41 277 113 54 278 114 40 279 83 54 280 114 53 281 84 41 282 113 43 283 115 55 284 116 41 285 113 55 286 116 54 287 114 42 288 82 55 289 116 43 290 115 55 291 116 42 292 82 52 293 85 53 294 95 56 295 118 52 296 97 56 297 118 53 298 95 57 299 117 54 300 96 57 301 117 53 302 95 57 303 117 54 304 96 58 305 120 55 306 94 59 307 119 54 308 121 54 309 121 59 310 119 58 311 122 52 312 97 56 313 118 55 314 94 55 315 94 56 316 118 59 317 119 56 318 101 58 319 99 59 320 100 58 321 99 56 322 101 57 323 98 62 324 127 66 325 147 60 326 130 60 327 130 66 328 147 64 329 148 63 330 129 67 331 144 62 332 127 62 333 127 67 334 144 66 335 147 61 336 128 65 337 143 63 338 129 63 339 129 65 340 143 67 341 144 60 342 161 64 343 162 61 344 128 61 345 128 64 346 162 65 347 143 70 348 149 64 349 148 66 350 147 64 351 148 70 352 149 68 353 150 67 354 144 71 355 146 66 356 147 66 357 147 71 358 146 70 359 149 67 360 144 65 361 143 69 362 145 67 363 144 69 364 145 71 365 146 64 366 162 68 367 163 65 368 143 65 369 143 68 370 163 69 371 145 68 372 134 71 373 132 69 374 133 71 375 132 68 376 134 70 377 131 60 378 124 72 379 126 62 380 123 72 381 126 60 382 124 73 383 125 60 384 124 61 385 151 74 386 152 60 387 124 74 388 152 73 389 125 61 390 151 63 391 153 75 392 154 61 393 151 75 394 154 74 395 152 62 396 123 75 397 154 63 398 153 75 399 154 62 400 123 72 401 126 73 402 136 76 403 156 72 404 138 76 405 156 73 406 136 77 407 155 74 408 137 77 409 155 73 410 136 77 411 155 74 412 137 78 413 160 75 414 135 79 415 158 74 416 157 74 417 157 79 418 158 78 419 159 72 420 138 76 421 156 75 422 135 75 423 135 76 424 156 79 425 158 76 426 142 78 427 140 79 428 141 78 429 140 76 430 142 77 431 139</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_Bucket_01_visual" name="aws_robomaker_warehouse_Bucket_01_visual">
<node name="aws_robomaker_warehouse_Bucket_01_visual" id="aws_robomaker_warehouse_Bucket_01_visual" layer="aws_robomaker_warehouse_Bucket_01" sid="aws_robomaker_warehouse_Bucket_01_visual"><matrix sid="matrix">1.000000 0.000000 0.000000 -0.000031 0.000000 1.000000 0.000000 0.168701 0.000000 0.000000 1.000000 0.490845 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_Bucket_01_visual-lib"><bind_material><technique_common><instance_material symbol="Material #946392" target="#Material #946392"/></technique_common></bind_material></instance_geometry><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_Bucket_01_visual"></instance_visual_scene>
</scene>
</COLLADA>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<model>
<name>aws_robomaker_warehouse_Bucket_01</name>
<version>1.0</version>
<sdf version="1.6">model.sdf</sdf>
<author>
<name></name>
<email></email>
</author>
<description></description>
</model>

View File

@ -0,0 +1,63 @@
<?xml version='1.0'?>
<sdf version='1.6'>
<model name='aws_robomaker_warehouse_Bucket_01'>
<link name='body'>
<inertial>
<mass>2</mass>
<pose frame=''>0 0 0 0 0 0</pose>
<inertia>
<ixx>0.570</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.474</iyy>
<iyz>0</iyz>
<izz>0.391</izz>
</inertia>
</inertial>
<pose frame=''>0 0 0 0 -0 0</pose>
<self_collide>0</self_collide>
<kinematic>0</kinematic>
<gravity>1</gravity>
<visual name='visual'>
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_Bucket_01/meshes/aws_robomaker_warehouse_Bucket_01_visual.DAE</uri>
</mesh>
</geometry>
<meta> <layer> 1 </layer></meta>
</visual>
<collision name='collision_0'>
<laser_retro>0</laser_retro>
<max_contacts>10</max_contacts>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_Bucket_01/meshes/aws_robomaker_warehouse_Bucket_01_collision.DAE</uri>
<scale>1 1 1</scale>
</mesh>
</geometry>
<surface>
<friction>
<ode>
<mu>0.4</mu>
<mu2>0.4</mu2>
<fdir1>0 0 0</fdir1>
<slip1>0</slip1>
<slip2>0</slip2>
</ode>
<torsional>
<coefficient>1</coefficient>
<patch_radius>0</patch_radius>
<surface_radius>0</surface_radius>
<use_patch_radius>1</use_patch_radius>
<ode>
<slip>0</slip>
</ode>
</torsional>
</friction>
</surface>
</collision>
</link>
<static>true</static>
</model>
</sdf>

View File

@ -0,0 +1,327 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-03-18T11:45:58Z</created><keywords></keywords><modified>2019-03-18T11:45:58Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_geometries>
<geometry id="aws_robomaker_warehouse_ClutteringA_01_collision-lib" name="aws_robomaker_warehouse_ClutteringA_01_collisionMesh">
<mesh>
<source id="aws_robomaker_warehouse_ClutteringA_01_collision-POSITION">
<float_array id="aws_robomaker_warehouse_ClutteringA_01_collision-POSITION-array" count="96">
-94.500908 -100.041384 3.000000
62.468575 -100.041384 3.000000
-94.500908 80.061399 3.000000
62.468575 80.061399 3.000000
-94.500908 -100.041384 111.551331
62.468575 -100.041384 111.551331
-94.500908 80.061399 111.551331
62.468575 80.061399 111.551331
29.526070 43.870054 3.000000
96.793404 43.870054 3.000000
29.526070 98.479551 3.000000
96.793404 100.129454 3.000000
29.526070 43.870054 73.674812
96.793404 43.870054 73.674812
29.526070 98.479551 73.674812
96.793404 100.129454 73.674812
56.843697 -49.131350 3.000000
46.691963 22.638792 3.000000
99.844673 23.109861 3.000000
107.644112 -43.094973 3.000000
56.843697 -49.131350 73.674812
107.644112 -43.094973 73.674812
99.844673 23.109861 73.674812
46.691963 22.638792 73.674812
-108.431084 -32.400026 3.000000
-108.431084 18.446653 3.000000
-88.055717 18.917723 3.000000
-84.168144 -31.578005 3.000000
-108.431084 -32.400026 73.674812
-84.168144 -31.578005 73.674812
-88.055717 18.917723 73.674812
-108.431084 18.446653 73.674812
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringA_01_collision-POSITION-array" count="32" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_ClutteringA_01_collision-Normal0">
<float_array id="aws_robomaker_warehouse_ClutteringA_01_collision-Normal0-array" count="432">
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
-0.024520 0.999699 0.000000
-0.024520 0.999699 0.000000
-0.024520 0.999699 0.000000
-0.024520 0.999699 0.000000
-0.024520 0.999699 0.000000
-0.024520 0.999699 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.117995 -0.993014 0.000000
0.117995 -0.993014 0.000000
0.117995 -0.993014 0.000000
0.117995 -0.993014 0.000000
0.117995 -0.993014 0.000000
0.117995 -0.993014 0.000000
0.993132 0.116999 0.000000
0.993132 0.116999 0.000000
0.993132 0.116999 0.000000
0.993132 0.116999 0.000000
0.993132 0.116999 0.000000
0.993132 0.116999 0.000000
-0.008862 0.999961 0.000000
-0.008862 0.999961 0.000000
-0.008862 0.999961 0.000000
-0.008862 0.999961 0.000000
-0.008862 0.999961 0.000000
-0.008862 0.999961 0.000000
-0.990144 -0.140054 0.000000
-0.990144 -0.140054 0.000000
-0.990144 -0.140054 0.000000
-0.990144 -0.140054 0.000000
-0.990144 -0.140054 0.000000
-0.990144 -0.140054 0.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.033860 -0.999427 0.000000
0.033860 -0.999427 0.000000
0.033860 -0.999427 0.000000
0.033860 -0.999427 0.000000
0.033860 -0.999427 0.000000
0.033860 -0.999427 0.000000
0.997050 0.076761 0.000000
0.997050 0.076761 0.000000
0.997050 0.076761 0.000000
0.997050 0.076761 0.000000
0.997050 0.076761 0.000000
0.997050 0.076761 0.000000
-0.023113 0.999733 0.000000
-0.023113 0.999733 0.000000
-0.023113 0.999733 0.000000
-0.023113 0.999733 0.000000
-0.023113 0.999733 0.000000
-0.023113 0.999733 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringA_01_collision-Normal0-array" count="144" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_ClutteringA_01_collision-UV0">
<float_array id="aws_robomaker_warehouse_ClutteringA_01_collision-UV0-array" count="192">
1.000000 0.000000
0.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
1.000000 0.000000
0.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
1.000000 1.000000
0.000000 1.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringA_01_collision-UV0-array" count="96" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_ClutteringA_01_collision-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_ClutteringA_01_collision-POSITION"/>
</vertices>
<triangles count="48"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_ClutteringA_01_collision-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_ClutteringA_01_collision-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_ClutteringA_01_collision-UV0"/><p> 1 0 1 0 1 0 3 2 3 0 3 0 2 4 2 3 5 3 7 6 7 6 7 6 4 8 4 7 9 7 4 10 4 5 11 5 5 12 11 4 13 10 0 14 8 5 15 11 0 16 8 1 17 9 7 18 15 5 19 14 1 20 12 7 21 15 1 22 12 3 23 13 6 24 19 7 25 18 3 26 16 6 27 19 3 28 16 2 29 17 4 30 23 6 31 22 2 32 20 4 33 23 2 34 20 0 35 21 9 36 25 10 37 26 11 38 27 10 39 26 9 40 25 8 41 24 14 42 30 13 43 29 15 44 31 13 45 29 14 46 30 12 47 28 13 48 35 12 49 34 8 50 32 13 51 35 8 52 32 9 53 33 15 54 39 13 55 38 9 56 36 15 57 39 9 58 36 11 59 37 14 60 43 15 61 42 11 62 40 14 63 43 11 64 40 10 65 41 12 66 47 14 67 46 10 68 44 12 69 47 10 70 44 8 71 45 19 72 51 16 73 48 18 74 50 16 75 48 17 76 49 18 77 50 22 78 54 23 79 55 20 80 52 22 81 54 20 82 52 21 83 53 21 84 58 20 85 59 16 86 56 21 87 58 16 88 56 19 89 57 22 90 62 21 91 63 19 92 60 22 93 62 19 94 60 18 95 61 23 96 66 22 97 67 18 98 64 23 99 66 18 100 64 17 101 65 20 102 70 23 103 71 17 104 68 20 105 70 17 106 68 16 107 69 26 108 74 27 109 75 24 110 72 24 111 72 25 112 73 26 113 74 31 114 79 28 115 76 30 116 78 30 117 78 28 118 76 29 119 77 28 120 83 24 121 80 29 122 82 29 123 82 24 124 80 27 125 81 30 126 86 29 127 87 27 128 84 30 129 86 27 130 84 26 131 85 30 132 91 26 133 88 31 134 90 31 135 90 26 136 88 25 137 89 28 138 94 31 139 95 25 140 92 28 141 94 25 142 92 24 143 93</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_ClutteringA_01_collision" name="aws_robomaker_warehouse_ClutteringA_01_collision">
<node name="aws_robomaker_warehouse_ClutteringA_01_collision" id="aws_robomaker_warehouse_ClutteringA_01_collision" layer="Cluttering" sid="aws_robomaker_warehouse_ClutteringA_01_collision"><matrix sid="matrix">1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_ClutteringA_01_collision-lib"/><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_ClutteringA_01_collision"></instance_visual_scene>
</scene>
</COLLADA>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<model>
<name>aws_robomaker_warehouse_ClutteringA_01</name>
<version>1.0</version>
<sdf version="1.6">model.sdf</sdf>
<author>
<name></name>
<email></email>
</author>
<description></description>
</model>

View File

@ -0,0 +1,55 @@
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="aws_robomaker_warehouse_ClutteringA_01">
<link name="link">
<inertial>
<mass>2</mass>
<inertia>
<ixx>0.841</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.954</iyy>
<iyz>0</iyz>
<izz>1.422</izz>
</inertia>
</inertial>
<collision name="collision">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_ClutteringA_01/meshes/aws_robomaker_warehouse_ClutteringA_01_collision.DAE</uri>
<scale>1 1 1</scale>
</mesh>
</geometry>
<surface>
<friction>
<ode>
<mu>0.6</mu>
<mu2>0.6</mu2>
<fdir1>0 0 0</fdir1>
<slip1>0</slip1>
<slip2>0</slip2>
</ode>
<torsional>
<coefficient>1</coefficient>
<patch_radius>0</patch_radius>
<surface_radius>0</surface_radius>
<use_patch_radius>1</use_patch_radius>
<ode>
<slip>0</slip>
</ode>
</torsional>
</friction>
</surface>
</collision>
<visual name="visual">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_ClutteringA_01/meshes/aws_robomaker_warehouse_ClutteringA_01_visual.DAE</uri>
</mesh>
</geometry>
<meta> <layer> 1 </layer></meta>
</visual>
</link>
<static>1</static>
</model>
</sdf>

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-03-20T02:46:25Z</created><keywords></keywords><modified>2019-03-20T02:46:25Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_geometries>
<geometry id="aws_robomaker_warehouse_ClutteringC_01_collision-lib" name="aws_robomaker_warehouse_ClutteringC_01_collisionMesh">
<mesh>
<source id="aws_robomaker_warehouse_ClutteringC_01_collision-POSITION">
<float_array id="aws_robomaker_warehouse_ClutteringC_01_collision-POSITION-array" count="24">
-88.666687 -102.994263 3.000000
88.666687 -102.994263 3.000000
-88.666687 102.994263 3.000000
88.666687 102.994263 3.000000
-88.666687 -102.994263 179.031189
88.666687 -102.994263 179.031189
-88.666687 102.994263 179.031189
88.666687 102.994263 179.031189
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringC_01_collision-POSITION-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_ClutteringC_01_collision-Normal0">
<float_array id="aws_robomaker_warehouse_ClutteringC_01_collision-Normal0-array" count="108">
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringC_01_collision-Normal0-array" count="36" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_ClutteringC_01_collision-UV0">
<float_array id="aws_robomaker_warehouse_ClutteringC_01_collision-UV0-array" count="48">
1.000000 0.000000
0.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringC_01_collision-UV0-array" count="24" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_ClutteringC_01_collision-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_ClutteringC_01_collision-POSITION"/>
</vertices>
<triangles count="12"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_ClutteringC_01_collision-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_ClutteringC_01_collision-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_ClutteringC_01_collision-UV0"/><p> 1 0 1 0 1 0 3 2 3 0 3 0 2 4 2 3 5 3 7 6 7 6 7 6 4 8 4 7 9 7 4 10 4 5 11 5 5 12 11 4 13 10 0 14 8 5 15 11 0 16 8 1 17 9 7 18 15 5 19 14 1 20 12 7 21 15 1 22 12 3 23 13 6 24 19 7 25 18 3 26 16 6 27 19 3 28 16 2 29 17 4 30 23 6 31 22 2 32 20 4 33 23 2 34 20 0 35 21</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_ClutteringC_01_collision" name="aws_robomaker_warehouse_ClutteringC_01_collision">
<node name="aws_robomaker_warehouse_ClutteringC_01_collision" id="aws_robomaker_warehouse_ClutteringC_01_collision" layer="Cluttering" sid="aws_robomaker_warehouse_ClutteringC_01_collision"><matrix sid="matrix">1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_ClutteringC_01_collision-lib"/><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_ClutteringC_01_collision"></instance_visual_scene>
</scene>
</COLLADA>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<model>
<name>aws_robomaker_warehouse_ClutteringC_01</name>
<version>1.0</version>
<sdf version="1.6">model.sdf</sdf>
<author>
<name></name>
<email></email>
</author>
<description></description>
</model>

View File

@ -0,0 +1,55 @@
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="aws_robomaker_warehouse_ClutteringC_01">
<link name="link">
<inertial>
<mass>1</mass>
<inertia>
<ixx>1.558</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1.821</iyy>
<iyz>0</iyz>
<izz>1.892</izz>
</inertia>
</inertial>
<collision name="collision">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_ClutteringC_01/meshes/aws_robomaker_warehouse_ClutteringC_01_collision.DAE</uri>
<scale>1 1 1</scale>
</mesh>
</geometry>
<surface>
<friction>
<ode>
<mu>0.6</mu>
<mu2>0.6</mu2>
<fdir1>0 0 0</fdir1>
<slip1>0</slip1>
<slip2>0</slip2>
</ode>
<torsional>
<coefficient>1</coefficient>
<patch_radius>0</patch_radius>
<surface_radius>0</surface_radius>
<use_patch_radius>1</use_patch_radius>
<ode>
<slip>0</slip>
</ode>
</torsional>
</friction>
</surface>
</collision>
<visual name="visual">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_ClutteringC_01/meshes/aws_robomaker_warehouse_ClutteringC_01_visual.DAE</uri>
</mesh>
</geometry>
<meta> <layer> 1 </layer></meta>
</visual>
</link>
<static>1</static>
</model>
</sdf>

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-03-25T05:42:49Z</created><keywords></keywords><modified>2019-03-25T05:42:49Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_geometries>
<geometry id="aws_robomaker_warehouse_ClutteringD_01_collision-lib" name="aws_robomaker_warehouse_ClutteringD_01_collisionMesh">
<mesh>
<source id="aws_robomaker_warehouse_ClutteringD_01_collision-POSITION">
<float_array id="aws_robomaker_warehouse_ClutteringD_01_collision-POSITION-array" count="24">
-50.844025 33.298004 -76.084843
50.844025 33.298004 -76.084843
-50.844025 182.463806 -76.084846
50.844025 182.463806 -76.084846
-50.844025 33.298012 76.084789
50.844025 33.298012 76.084789
-50.844025 182.463806 76.084789
50.844025 182.463806 76.084789
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringD_01_collision-POSITION-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_ClutteringD_01_collision-Normal0">
<float_array id="aws_robomaker_warehouse_ClutteringD_01_collision-Normal0-array" count="108">
0.000000 -0.000000 -1.000000
0.000000 -0.000000 -1.000000
0.000000 -0.000000 -1.000000
0.000000 -0.000000 -1.000000
0.000000 -0.000000 -1.000000
0.000000 -0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringD_01_collision-Normal0-array" count="36" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_ClutteringD_01_collision-UV0">
<float_array id="aws_robomaker_warehouse_ClutteringD_01_collision-UV0-array" count="48">
1.000000 0.000000
0.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_ClutteringD_01_collision-UV0-array" count="24" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_ClutteringD_01_collision-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_ClutteringD_01_collision-POSITION"/>
</vertices>
<triangles count="12"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_ClutteringD_01_collision-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_ClutteringD_01_collision-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_ClutteringD_01_collision-UV0"/><p> 1 0 1 0 1 0 3 2 3 0 3 0 2 4 2 3 5 3 7 6 7 6 7 6 4 8 4 7 9 7 4 10 4 5 11 5 5 12 11 4 13 10 0 14 8 5 15 11 0 16 8 1 17 9 5 18 14 3 19 13 7 20 15 3 21 13 5 22 14 1 23 12 6 24 19 7 25 18 3 26 16 6 27 19 3 28 16 2 29 17 4 30 23 6 31 22 2 32 20 4 33 23 2 34 20 0 35 21</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_ClutteringD_01_collision" name="aws_robomaker_warehouse_ClutteringD_01_collision">
<node name="aws_robomaker_warehouse_ClutteringD_01_collision" id="aws_robomaker_warehouse_ClutteringD_01_collision" layer="items_xiugai" sid="aws_robomaker_warehouse_ClutteringD_01_collision"><matrix sid="matrix">1.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -1.000000 0.000000 0.000000 1.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_ClutteringD_01_collision-lib"/><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_ClutteringD_01_collision"></instance_visual_scene>
</scene>
</COLLADA>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<model>
<name>aws_robomaker_warehouse_ClutteringD_01</name>
<version>1.0</version>
<sdf version="1.6">model.sdf</sdf>
<author>
<name></name>
<email></email>
</author>
<description></description>
</model>

View File

@ -0,0 +1,55 @@
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="aws_robomaker_warehouse_ClutteringD_01">
<link name="link">
<inertial>
<mass>1</mass>
<inertia>
<ixx>1.558</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1.821</iyy>
<iyz>0</iyz>
<izz>1.892</izz>
</inertia>
</inertial>
<collision name="collision">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_ClutteringD_01/meshes/aws_robomaker_warehouse_ClutteringD_01_collision.DAE</uri>
<scale>1 1 1</scale>
</mesh>
</geometry>
<surface>
<friction>
<ode>
<mu>0.6</mu>
<mu2>0.6</mu2>
<fdir1>0 0 0</fdir1>
<slip1>0</slip1>
<slip2>0</slip2>
</ode>
<torsional>
<coefficient>1</coefficient>
<patch_radius>0</patch_radius>
<surface_radius>0</surface_radius>
<use_patch_radius>1</use_patch_radius>
<ode>
<slip>0</slip>
</ode>
</torsional>
</friction>
</surface>
</collision>
<visual name="visual">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_ClutteringD_01/meshes/aws_robomaker_warehouse_ClutteringD_01_visual.DAE</uri>
</mesh>
</geometry>
<meta> <layer> 1 </layer></meta>
</visual>
</link>
<static>1</static>
</model>
</sdf>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<model>
<name>aws_robomaker_warehouse_DeskC_01</name>
<version>1.0</version>
<sdf version="1.6">model.sdf</sdf>
<author>
<name></name>
<email></email>
</author>
<description></description>
</model>

View File

@ -0,0 +1,46 @@
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="aws_robomaker_warehouse_DeskC_01">
<link name="link">
<inertial>
<mass>1</mass>
<inertia>
<ixx>0.608</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.476</iyy>
<iyz>0</iyz>
<izz>0.542</izz>
</inertia>
</inertial>
<collision name="collision">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_DeskC_01/meshes/aws_robomaker_warehouse_DeskC_01_collision.DAE</uri>
<scale>1 1 1</scale>
</mesh>
</geometry>
<surface>
<friction>
<ode>
<mu>0.3</mu>
<mu2>0.3</mu2>
<fdir1>0 0 0</fdir1>
<slip1>0</slip1>
<slip2>0</slip2>
</ode>
</friction>
</surface>
</collision>
<visual name="visual">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_DeskC_01/meshes/aws_robomaker_warehouse_DeskC_01_visual.DAE</uri>
</mesh>
</geometry>
<meta> <layer> 1 </layer></meta>
</visual>
</link>
<static>1</static>
</model>
</sdf>

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-05-15T08:16:04Z</created><keywords></keywords><modified>2019-05-15T08:16:04Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_geometries>
<geometry id="aws_robomaker_warehouse_GroundB_01_collision-lib" name="aws_robomaker_warehouse_GroundB_01_collisionMesh">
<mesh>
<source id="aws_robomaker_warehouse_GroundB_01_collision-POSITION">
<float_array id="aws_robomaker_warehouse_GroundB_01_collision-POSITION-array" count="24">
-699.023499 -1045.333252 -0.000123
699.023499 -1045.333252 -0.000124
-699.023499 -1045.333252 12.431540
699.023499 -1045.333252 12.431539
-699.023499 1045.333252 0.000128
699.023499 1045.333252 0.000129
-699.023499 1045.333130 12.431791
699.023499 1045.333130 12.431792
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_GroundB_01_collision-POSITION-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_GroundB_01_collision-Normal0">
<float_array id="aws_robomaker_warehouse_GroundB_01_collision-Normal0-array" count="108">
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_GroundB_01_collision-Normal0-array" count="36" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_GroundB_01_collision-UV0">
<float_array id="aws_robomaker_warehouse_GroundB_01_collision-UV0-array" count="48">
1.000000 0.000000
0.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_GroundB_01_collision-UV0-array" count="24" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_GroundB_01_collision-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_GroundB_01_collision-POSITION"/>
</vertices>
<triangles count="12"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_GroundB_01_collision-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_GroundB_01_collision-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_GroundB_01_collision-UV0"/><p> 3 0 3 2 1 2 0 2 0 3 3 3 0 4 0 1 5 1 6 6 6 5 7 5 4 8 4 5 9 5 6 10 6 7 11 7 1 12 9 0 13 8 5 14 11 0 15 8 4 16 10 5 17 11 7 18 15 3 19 13 1 20 12 7 21 15 1 22 12 5 23 14 6 24 19 3 25 16 7 26 18 3 27 16 6 28 19 2 29 17 6 30 22 0 31 21 2 32 20 0 33 21 6 34 22 4 35 23</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_GroundB_01_collision" name="aws_robomaker_warehouse_GroundB_01_collision">
<node name="aws_robomaker_warehouse_GroundB_01_collision" id="aws_robomaker_warehouse_GroundB_01_collision" layer="zhenghe_collution" sid="aws_robomaker_warehouse_GroundB_01_collision"><matrix sid="matrix">1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_GroundB_01_collision-lib"/><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_GroundB_01_collision"></instance_visual_scene>
</scene>
</COLLADA>

View File

@ -0,0 +1,706 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-05-15T08:15:48Z</created><keywords></keywords><modified>2019-05-15T08:15:48Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_images>
<image id="Map #1123124520-image" name="Map #1123124520">
<init_from>../materials/textures/aws_robomaker_warehouse_GroundB_01.png</init_from>
</image>
<image id="Map #1123124521-image" name="Map #1123124521">
<init_from>../materials/textures/aws_robomaker_warehouse_GroundB_02.png</init_from>
</image>
</library_images>
<library_materials>
<material id="Material #946568" name="Material #946568">
<instance_effect url="#Material #946568-fx"/>
</material>
<material id="Material #946569" name="Material #946569">
<instance_effect url="#Material #946569-fx"/>
</material>
</library_materials>
<library_effects>
<effect id="Material #946568-fx" name="Material #946568">
<profile_COMMON>
<technique sid="standard">
<phong>
<emission>
<color sid="emission">0.000000 0.000000 0.000000 1.000000</color>
</emission>
<ambient>
<color sid="ambient">0.588000 0.588000 0.588000 1.000000</color>
</ambient>
<diffuse>
<texture texture="Map #1123124520-image" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
<specular>
<color sid="specular">0.000000 0.000000 0.000000 1.000000</color>
</specular>
<shininess>
<float sid="shininess">2.000000</float>
</shininess>
<reflective>
<color sid="reflective">0.000000 0.000000 0.000000 1.000000</color>
</reflective>
<reflectivity>
<float sid="reflectivity">1.000000</float>
</reflectivity>
<transparent opaque="RGB_ZERO">
<color sid="transparent">1.000000 1.000000 1.000000 1.000000</color>
</transparent>
<transparency>
<float sid="transparency">0.000000</float>
</transparency>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="Material #946569-fx" name="Material #946569">
<profile_COMMON>
<technique sid="standard">
<phong>
<emission>
<color sid="emission">0.000000 0.000000 0.000000 1.000000</color>
</emission>
<ambient>
<color sid="ambient">0.588000 0.588000 0.588000 1.000000</color>
</ambient>
<diffuse>
<texture texture="Map #1123124521-image" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
<specular>
<color sid="specular">0.000000 0.000000 0.000000 1.000000</color>
</specular>
<shininess>
<float sid="shininess">2.000000</float>
</shininess>
<reflective>
<color sid="reflective">0.000000 0.000000 0.000000 1.000000</color>
</reflective>
<reflectivity>
<float sid="reflectivity">1.000000</float>
</reflectivity>
<transparent opaque="RGB_ZERO">
<color sid="transparent">1.000000 1.000000 1.000000 1.000000</color>
</transparent>
<transparency>
<float sid="transparency">0.000000</float>
</transparency>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="aws_robomaker_warehouse_GroundB_01_visual-lib" name="aws_robomaker_warehouse_GroundB_01_visualMesh">
<mesh>
<source id="aws_robomaker_warehouse_GroundB_01_visual-POSITION">
<float_array id="aws_robomaker_warehouse_GroundB_01_visual-POSITION-array" count="300">
-699.023499 -1045.333252 -0.000123
699.023499 -1045.333252 -0.000124
-699.023499 -1045.333252 12.431540
699.023499 -1045.333252 12.431539
-699.023499 1045.333252 0.000128
699.023499 1045.333252 0.000129
-699.023499 1045.333130 12.431791
699.023499 1045.333130 12.431792
-255.414734 -237.748291 12.445392
44.585266 -237.748291 12.445392
-255.414734 62.251705 12.445440
44.585266 62.251705 12.445440
-248.186340 -230.519897 12.445393
37.356873 -230.519897 12.445393
37.356873 55.023312 12.445439
-248.186340 55.023312 12.445439
-255.414734 -882.155273 12.445316
44.585266 -882.155273 12.445316
-255.414734 -582.155273 12.445366
44.585266 -582.155273 12.445366
-248.186340 -874.926880 12.445318
37.356873 -874.926880 12.445318
37.356873 -589.383667 12.445364
-248.186340 -589.383667 12.445364
-255.414734 -559.951782 12.445369
44.585266 -559.951782 12.445369
-255.414734 -259.951782 12.445388
44.585266 -259.951782 12.445388
-248.186340 -552.723389 12.445371
37.356873 -552.723389 12.445371
37.356873 -267.180176 12.445387
-248.186340 -267.180176 12.445387
-255.414734 84.455200 12.445444
44.585266 84.455200 12.445444
-255.414734 384.455200 12.445462
44.585266 384.455200 12.445462
-248.186340 91.683594 12.445445
37.356873 91.683594 12.445445
37.356873 377.226807 12.445461
-248.186340 377.226807 12.445461
-255.414734 406.658691 12.445527
44.585266 406.658691 12.445527
-255.414734 706.658691 12.445576
44.585266 706.658691 12.445576
-248.186340 413.887085 12.445528
37.356873 413.887085 12.445528
37.356873 699.430298 12.445575
-248.186340 699.430298 12.445575
132.339752 -1043.718018 12.445252
141.445953 -1043.718018 12.445252
132.339752 1046.807373 12.445501
141.445953 1046.807373 12.445501
141.445953 -908.130371 12.445269
132.339752 -908.130371 12.445269
141.445953 -983.652710 12.445258
132.339752 -983.652710 12.445258
141.445953 -992.508667 12.445259
132.339752 -992.508667 12.445259
-423.674530 -983.652710 12.445258
-423.674530 -992.508667 12.445259
141.445953 -899.566162 12.445268
132.339752 -899.566162 12.445268
-337.738800 -908.130371 12.445269
-337.738800 -899.566162 12.445268
-329.554382 -908.130371 12.445269
-329.554382 -899.566162 12.445268
-337.738800 1046.807373 12.445501
-329.554382 1046.807373 12.445501
-415.294403 -983.652710 12.445258
-415.294403 -992.508667 12.445259
-423.674530 1046.807373 12.445501
-415.294403 1046.807373 12.445501
-423.674530 883.609009 12.445482
-415.294403 883.609009 12.445482
-415.294403 959.849304 12.445491
-423.674530 959.849304 12.445491
-423.674591 875.711548 12.445481
-415.294403 875.711609 12.445481
-686.119019 883.609009 12.445482
-686.119019 875.711548 12.445481
-415.294403 968.018066 12.445493
-423.674530 968.018066 12.445493
-689.973267 959.849304 12.445491
-689.973267 968.018066 12.445493
215.702194 -1044.132324 12.445252
224.808395 -1044.132324 12.445252
215.702194 177.500122 12.445397
224.808395 177.500122 12.445397
224.808395 168.217163 12.445396
215.702194 168.217163 12.445396
700.987549 177.500122 12.445397
700.987549 168.217163 12.445396
215.702194 258.095581 12.445407
224.808395 258.095581 12.445407
224.808395 1046.807373 12.445501
215.702194 1046.807373 12.445501
224.808395 266.876099 12.445409
215.702194 266.876099 12.445409
700.987549 258.095581 12.445407
700.987549 266.876099 12.445409
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_GroundB_01_visual-POSITION-array" count="100" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_GroundB_01_visual-Normal0">
<float_array id="aws_robomaker_warehouse_GroundB_01_visual-Normal0-array" count="846">
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
-0.000000 1.000000 0.000010
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
-0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
0.000000 -0.000000 1.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_GroundB_01_visual-Normal0-array" count="282" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_GroundB_01_visual-UV0">
<float_array id="aws_robomaker_warehouse_GroundB_01_visual-UV0-array" count="328">
4.846894 2.550678
4.846894 4.846265
4.826477 4.846265
4.826477 2.550678
4.783730 2.550678
4.804147 2.550678
4.804147 4.846265
4.783730 4.846265
1.222342 2.572054
4.655206 2.572054
4.655206 4.867640
1.222342 4.867640
1.222341 4.953428
4.655206 4.953428
4.655205 4.973845
1.222341 4.973845
1.179594 0.114090
4.612459 0.114091
4.612458 2.409678
1.179594 2.409678
1.414463 2.740246
1.414463 -0.692619
1.434875 -0.692619
1.434875 2.740246
-1.691137 1.355757
-1.976730 0.985989
-1.933884 0.943143
-1.733945 1.312949
-1.976730 -0.792248
-1.933884 -0.749402
-1.691137 -0.420905
-1.733945 -0.378097
-1.799502 -0.426135
-1.798186 -0.952645
-1.755340 -0.995491
-1.842348 -0.468980
-1.798186 -2.730882
-1.755340 -2.688036
-1.799502 -2.204372
-1.842348 -2.161526
-1.799502 1.365183
-1.798186 0.838673
-1.755340 0.795827
-1.842348 1.322337
-1.798186 -0.939565
-1.755340 -0.896719
-1.799502 -0.413054
-1.842348 -0.370208
-1.730909 -0.433973
-1.875866 -0.575192
-1.833020 -0.618038
-1.773717 -0.476781
-1.875866 -2.353429
-1.833020 -2.310584
-1.730909 -2.210634
-1.773717 -2.167826
-1.958919 2.451030
-1.717841 -0.433973
-1.675033 -0.476781
-2.001765 2.408185
-1.717841 -2.210634
-1.675033 -2.167826
-1.958919 0.672793
-2.001765 0.715639
0.521328 0.470354
0.521328 0.474995
0.410392 1.020932
0.410392 1.016567
0.415033 1.016567
-1.461452 0.891229
0.495226 0.474995
-1.461452 0.864380
0.495226 0.470354
-1.461452 0.858776
-1.461452 0.864380
-1.461452 0.858776
0.415033 1.020932
-1.461452 0.896788
-1.461452 0.896788
-1.461452 0.891229
-1.461452 0.891229
-1.461452 0.896788
-1.461452 0.896788
-1.461452 0.896788
-1.461452 0.864380
-1.461452 0.858776
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
-1.461452 0.864380
0.436771 0.036056
0.441413 0.036056
0.422756 0.026574
0.422756 0.021932
0.418024 0.026574
0.418024 0.021932
0.422756 0.269288
0.418024 0.269288
-1.767357 1.965086
-1.767357 0.186848
0.425656 0.029564
0.430298 0.029564
0.430298 0.034040
0.425656 0.034040
0.430297 0.431580
0.425656 0.431580
0.444403 0.403750
0.448879 0.403750
-1.724511 0.229694
-1.724511 1.922239
-1.855502 0.428975
-1.898310 0.471783
-1.855502 2.205637
-1.898310 2.162829
-1.842433 0.376135
-1.842433 -1.400526
-1.799625 -1.357718
-1.799626 0.333327
-1.743367 -2.377502
-1.786175 -2.334694
-1.743367 -0.600840
-1.786175 -0.643649
-1.795829 2.663701
-1.795829 0.885463
-1.752983 0.928309
-1.752983 2.620854
-1.855502 -1.400526
-1.898310 -1.357718
-1.855502 0.376135
-1.898310 0.333327
-1.842434 2.165865
-1.842433 0.389204
-1.799626 0.432011
-1.799626 2.123057
-1.743367 -0.587772
-1.786175 -0.544964
-1.743367 1.188889
-1.786175 1.146081
-1.842434 3.955595
-1.842434 2.178934
-1.799626 2.221741
-1.799626 3.912786
-1.743367 1.201958
-1.786175 1.244766
-1.743367 2.978619
-1.786175 2.935811
0.410392 0.024476
0.415033 0.024476
0.490712 0.474995
0.490712 0.470354
0.441413 0.654006
0.436771 0.654006
0.444403 0.646464
0.448879 0.646464
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_GroundB_01_visual-UV0-array" count="164" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_GroundB_01_visual-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_GroundB_01_visual-POSITION"/>
</vertices>
<triangles count="12" material="Material #946568"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_GroundB_01_visual-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_GroundB_01_visual-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_GroundB_01_visual-UV0"/><p> 3 0 2 2 1 3 0 2 0 3 3 2 0 4 0 1 5 1 6 6 5 5 7 7 4 8 4 5 9 7 6 10 5 7 11 6 1 12 11 0 13 8 5 14 10 0 15 8 4 16 9 5 17 10 7 18 14 3 19 15 1 20 12 7 21 14 1 22 12 5 23 13 6 24 18 3 25 16 7 26 17 3 27 16 6 28 18 2 29 19 6 30 21 0 31 23 2 32 20 0 33 23 6 34 21 4 35 22</p></triangles>
<triangles count="82" material="Material #946569"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_GroundB_01_visual-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_GroundB_01_visual-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_GroundB_01_visual-UV0"/><p> 8 36 108 9 37 109 13 38 118 8 39 108 13 40 118 12 41 119 9 42 25 11 43 28 14 44 29 9 45 25 14 46 29 13 47 26 11 48 120 10 49 122 15 50 123 11 51 120 15 52 123 14 53 121 10 54 30 8 55 24 12 56 27 10 57 30 12 58 27 15 59 31 16 60 124 17 61 125 21 62 126 16 63 124 21 64 126 20 65 127 17 66 33 19 67 36 22 68 37 17 69 33 22 70 37 21 71 34 19 72 128 18 73 130 23 74 131 19 75 128 23 76 131 22 77 129 18 78 38 16 79 32 20 80 35 18 81 38 20 82 35 23 83 39 24 84 132 25 85 133 29 86 134 24 87 132 29 88 134 28 89 135 25 90 41 27 91 44 30 92 45 25 93 41 30 94 45 29 95 42 27 96 136 26 97 138 31 98 139 27 99 136 31 100 139 30 101 137 26 102 46 24 103 40 28 104 43 26 105 46 28 106 43 31 107 47 32 108 140 33 109 141 37 110 142 32 111 140 37 112 142 36 113 143 33 114 49 35 115 52 38 116 53 33 117 49 38 118 53 37 119 50 35 120 144 34 121 146 39 122 147 35 123 144 39 124 147 38 125 145 34 126 54 32 127 48 36 128 51 34 129 54 36 130 51 39 131 55 40 132 148 41 133 149 45 134 150 40 135 148 45 136 150 44 137 151 41 138 57 43 139 60 46 140 61 41 141 57 46 142 61 45 143 58 43 144 152 42 145 154 47 146 155 43 147 152 47 148 155 46 149 153 42 150 62 40 151 56 44 152 59 42 153 62 44 154 59 47 155 63 57 156 72 49 157 65 56 158 70 49 159 65 57 160 72 48 161 64 61 162 68 53 163 76 60 164 67 60 165 67 53 166 76 52 167 66 55 168 159 57 169 72 54 170 158 54 171 158 57 172 72 56 173 70 69 174 85 55 175 71 68 176 84 55 177 71 69 178 85 57 179 73 50 180 157 61 181 68 51 182 156 51 183 156 61 184 68 60 185 67 61 186 77 65 187 81 64 188 80 61 189 77 64 190 80 53 191 69 65 192 81 63 193 78 64 194 80 63 195 78 62 196 79 64 197 80 66 198 83 63 199 78 67 200 82 67 201 82 63 202 78 65 203 81 68 204 84 58 205 74 69 206 85 58 207 74 59 208 75 69 209 85 76 210 92 68 211 84 77 212 93 68 213 84 76 214 92 58 215 74 81 216 97 75 217 91 80 218 96 80 219 96 75 220 91 74 221 90 72 222 88 77 223 93 73 224 89 77 225 93 72 226 88 76 227 92 78 228 94 76 229 92 72 230 88 76 231 92 78 232 94 79 233 95 81 234 97 71 235 86 70 236 87 71 237 86 81 238 97 80 239 96 83 240 98 75 241 91 81 242 97 75 243 91 83 244 98 82 245 99 89 246 161 84 247 100 88 248 160 88 249 160 84 250 100 85 251 101 86 252 105 89 253 103 87 254 104 87 255 104 89 256 103 88 257 102 88 258 102 91 259 106 87 260 104 90 261 107 87 262 104 91 263 106 97 264 113 93 265 111 96 266 112 93 267 111 97 268 113 92 269 110 95 270 115 97 271 113 94 272 114 94 273 114 97 274 113 96 275 112 93 276 162 98 277 116 96 278 163 99 279 117 96 280 163 98 281 116</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_GroundB_01_visual" name="aws_robomaker_warehouse_GroundB_01_visual">
<node name="aws_robomaker_warehouse_GroundB_01_visual" id="aws_robomaker_warehouse_GroundB_01_visual" layer="zhenghe" sid="aws_robomaker_warehouse_GroundB_01_visual"><matrix sid="matrix">1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_GroundB_01_visual-lib"><bind_material><technique_common><instance_material symbol="Material #946568" target="#Material #946568"/><instance_material symbol="Material #946569" target="#Material #946569"/></technique_common></bind_material></instance_geometry><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_GroundB_01_visual"></instance_visual_scene>
</scene>
</COLLADA>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<model>
<name>aws_robomaker_warehouse_GroundB_01</name>
<version>1.0</version>
<sdf version="1.6">model.sdf</sdf>
<author>
<name></name>
<email></email>
</author>
<description></description>
</model>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="aws_robomaker_warehouse_GroundB_01">
<link name="link">
<collision name="collision">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_GroundB_01/meshes/aws_robomaker_warehouse_GroundB_01_collision.DAE</uri>
<scale>1 1 1</scale>
</mesh>
</geometry>
<surface>
<friction>
<ode>
<mu>100</mu>
<mu2>50</mu2>
<fdir1>0 0 0</fdir1>
<slip1>0</slip1>
<slip2>0</slip2>
</ode>
</friction>
</surface>
</collision>
<visual name="visual">
<geometry>
<mesh>
<uri>model://aws_robomaker_warehouse_GroundB_01/meshes/aws_robomaker_warehouse_GroundB_01_visual.DAE</uri>
</mesh>
</geometry>
<meta> <layer> 1 </layer></meta>
</visual>
</link>
<static>1</static>
</model>
</sdf>

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2019-04-04T08:27:36Z</created><keywords></keywords><modified>2019-04-04T08:27:36Z</modified><revision></revision><subject></subject><title></title><unit meter="0.010000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
<library_geometries>
<geometry id="aws_robomaker_warehouse_Lamp_01_collision-lib" name="aws_robomaker_warehouse_Lamp_01_collisionMesh">
<mesh>
<source id="aws_robomaker_warehouse_Lamp_01_collision-POSITION">
<float_array id="aws_robomaker_warehouse_Lamp_01_collision-POSITION-array" count="24">
-51.220013 -75.723572 -50.385498
51.220005 -75.723572 -50.385498
-51.220013 75.723572 -50.385498
51.220005 75.723572 -50.385498
-51.220005 -75.723572 50.385498
51.220013 -75.723572 50.385498
-51.220005 75.723572 50.385498
51.220013 75.723572 50.385498
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Lamp_01_collision-POSITION-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_Lamp_01_collision-Normal0">
<float_array id="aws_robomaker_warehouse_Lamp_01_collision-Normal0-array" count="108">
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 -1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 0.000000 1.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
0.000000 -1.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
-1.000000 0.000000 0.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Lamp_01_collision-Normal0-array" count="36" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="aws_robomaker_warehouse_Lamp_01_collision-UV0">
<float_array id="aws_robomaker_warehouse_Lamp_01_collision-UV0-array" count="48">
1.000000 0.000000
0.000000 0.000000
1.000000 1.000000
0.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
0.000000 0.000000
1.000000 0.000000
0.000000 1.000000
1.000000 1.000000
</float_array>
<technique_common>
<accessor source="#aws_robomaker_warehouse_Lamp_01_collision-UV0-array" count="24" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="aws_robomaker_warehouse_Lamp_01_collision-VERTEX">
<input semantic="POSITION" source="#aws_robomaker_warehouse_Lamp_01_collision-POSITION"/>
</vertices>
<triangles count="12"><input semantic="VERTEX" offset="0" source="#aws_robomaker_warehouse_Lamp_01_collision-VERTEX"/><input semantic="NORMAL" offset="1" source="#aws_robomaker_warehouse_Lamp_01_collision-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#aws_robomaker_warehouse_Lamp_01_collision-UV0"/><p> 1 0 1 0 1 0 3 2 3 0 3 0 2 4 2 3 5 3 7 6 7 6 7 6 4 8 4 7 9 7 4 10 4 5 11 5 4 12 10 1 13 9 5 14 11 1 15 9 4 16 10 0 17 8 7 18 15 5 19 14 1 20 12 7 21 15 1 22 12 3 23 13 6 24 19 7 25 18 3 26 16 6 27 19 3 28 16 2 29 17 4 30 23 6 31 22 2 32 20 4 33 23 2 34 20 0 35 21</p></triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="aws_robomaker_warehouse_Lamp_01_collision" name="aws_robomaker_warehouse_Lamp_01_collision">
<node name="aws_robomaker_warehouse_Lamp_01_collision" id="aws_robomaker_warehouse_Lamp_01_collision" sid="aws_robomaker_warehouse_Lamp_01_collision"><matrix sid="matrix">-0.999000 -0.000000 -0.000000 0.087481 -0.000000 0.000000 0.998995 0.000494 0.000000 1.002288 -0.000000 1325.909302 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#aws_robomaker_warehouse_Lamp_01_collision-lib"/><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node>
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#aws_robomaker_warehouse_Lamp_01_collision"></instance_visual_scene>
</scene>
</COLLADA>

Some files were not shown because too many files have changed in this diff Show More