cleanup
This commit is contained in:
parent
90639412ef
commit
b6b70dde04
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
*.pgm
|
*.pgm
|
||||||
|
maps/
|
29
cert.pem
29
cert.pem
@ -1,29 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,62 +0,0 @@
|
|||||||
services:
|
|
||||||
### Husarnet VPN Container for remote access
|
|
||||||
husarnet:
|
|
||||||
image: husarnet/husarnet
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- /var/lib/husarnet # This will persist your Husarnet Client keys, thus IP of the container will be stable/the same between (re)boots
|
|
||||||
sysctls:
|
|
||||||
- net.ipv6.conf.all.disable_ipv6=0 # Husarnet is using IPv6 for the internal connections
|
|
||||||
cap_add:
|
|
||||||
- NET_ADMIN
|
|
||||||
devices:
|
|
||||||
- /dev/net/tun
|
|
||||||
env_file:
|
|
||||||
- ./husarnet/.env # create .env file in the same folder as Dockerfile and specify HOSTNAME and JOINCODE there
|
|
||||||
|
|
||||||
color_controller:
|
|
||||||
build:
|
|
||||||
dockerfile: husarnet/Dockerfile
|
|
||||||
volumes:
|
|
||||||
- ./husarnet/cyclonedds.xml:/cyclonedds.xml
|
|
||||||
command:
|
|
||||||
- bash
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
export CYCLONEDDS_URI=file:///cyclonedds.xml
|
|
||||||
ros2 run my_demo_pkg color_controller
|
|
||||||
network_mode: service:husarnet
|
|
||||||
|
|
||||||
move_controller:
|
|
||||||
build:
|
|
||||||
dockerfile: husarnet/Dockerfile
|
|
||||||
volumes:
|
|
||||||
- ./husarnet/cyclonedds.xml:/cyclonedds.xml
|
|
||||||
command:
|
|
||||||
- bash
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
export CYCLONEDDS_URI=file:///cyclonedds.xml
|
|
||||||
ros2 run my_demo_pkg move_controller
|
|
||||||
network_mode: service:husarnet
|
|
||||||
|
|
||||||
turtle_sim:
|
|
||||||
image: osrf/ros:galactic-desktop
|
|
||||||
privileged: true
|
|
||||||
environment:
|
|
||||||
# Allows graphical programs in the container.
|
|
||||||
- DISPLAY=${DISPLAY}
|
|
||||||
- QT_X11_NO_MITSHM=1
|
|
||||||
- NVIDIA_DRIVER_CAPABILITIES=all
|
|
||||||
volumes:
|
|
||||||
# Allows graphical programs in the container.
|
|
||||||
- /tmp/.X11-unix:/tmp/.X11-unix:rw
|
|
||||||
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
|
|
||||||
- ./husarnet/cyclonedds.xml:/cyclonedds.xml
|
|
||||||
command:
|
|
||||||
- bash
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
export CYCLONEDDS_URI=file:///cyclonedds.xml
|
|
||||||
ros2 run turtlesim turtlesim_node
|
|
||||||
network_mode: service:husarnet # This is the most important line in this setup. This will put the Husarnet Client in the same network namespace as your app (in this example: turtle_sim)
|
|
27
init_repo.sh
27
init_repo.sh
@ -1,27 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Basic entrypoint for ROS / Colcon Docker containers
|
|
||||||
|
|
||||||
# Source ROS 2
|
|
||||||
source /opt/ros/${ROS_DISTRO}/setup.bash
|
|
||||||
echo "Sourced ROS 2 ${ROS_DISTRO}"
|
|
||||||
|
|
||||||
# Source the base workspace, if built
|
|
||||||
if [ -f ${UNDERLAY_WS}/install/setup.bash ]
|
|
||||||
then
|
|
||||||
source ${UNDERLAY_WS}/install/setup.bash
|
|
||||||
#export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$(ros2 pkg prefix turtlebot3_gazebo)/share/turtlebot3_gazebo/models
|
|
||||||
echo "Sourced Bot Mini base workspace"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source the overlay workspace, if built
|
|
||||||
if [ -f /overlay_ws/install/setup.bash ]
|
|
||||||
then
|
|
||||||
source /overlay_ws/install/setup.bash
|
|
||||||
#export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$(ros2 pkg prefix tb3_worlds)/share/tb3_worlds/models
|
|
||||||
echo "Sourced Bot Mini overlay workspace"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy over files
|
|
||||||
cp -r /overlay_ws/src/* /repo/src/
|
|
||||||
|
|
||||||
wait
|
|
19
install.sh
19
install.sh
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Specify the name of your Python script
|
|
||||||
SCRIPT_NAME="robot_config.py"
|
|
||||||
|
|
||||||
# Check if the script exists in the current directory
|
|
||||||
if [ -f "$SCRIPT_NAME" ]; then
|
|
||||||
# Check if /usr/local/bin is writable
|
|
||||||
if [ -w "/usr/local/bin" ]; then
|
|
||||||
# Copy the script to /usr/local/bin
|
|
||||||
sudo cp "$SCRIPT_NAME" "/usr/local/bin"
|
|
||||||
sudo chmod +x "/usr/local/bin/$SCRIPT_NAME"
|
|
||||||
echo "Script '$SCRIPT_NAME' has been installed in /usr/local/bin."
|
|
||||||
else
|
|
||||||
echo "Error: /usr/local/bin is not writable. You may need to use 'sudo' to install the script."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Error: Script '$SCRIPT_NAME' not found in the current directory."
|
|
||||||
fi
|
|
52
key.pem
52
key.pem
@ -1,52 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
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
|
|
||||||
O61K2Igm/AywqweBe9cWRgB7lOXwIA==
|
|
||||||
-----END PRIVATE KEY-----
|
|
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
image: map_floor_save.pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-13.7, -5.57, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
@ -1,7 +0,0 @@
|
|||||||
image: map_floor_mainb_save_retouched.pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-66.2, -24.5, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
@ -1,7 +0,0 @@
|
|||||||
image: map_floor_mainb_save.pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-20.9, -7.03, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
image: map_floor_03-10-23.sav.pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-27.2, -0.0189, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -1,7 +0,0 @@
|
|||||||
image: map_floor_mainb_save_retouched.pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-20.9, -7.03, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
image: map_floor_save.pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-13.7, -5.57, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
File diff suppressed because one or more lines are too long
@ -1,7 +0,0 @@
|
|||||||
image: map_openlabday.pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-13.5, -20.9, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
File diff suppressed because one or more lines are too long
@ -1,7 +0,0 @@
|
|||||||
image: map_save_16.10..pgm
|
|
||||||
mode: trinary
|
|
||||||
resolution: 0.05
|
|
||||||
origin: [-25.7, -17, 0]
|
|
||||||
negate: 0
|
|
||||||
occupied_thresh: 0.65
|
|
||||||
free_thresh: 0.25
|
|
Binary file not shown.
Binary file not shown.
@ -1,71 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
# Function to get the path to the docker-compose.yaml file
|
|
||||||
def get_compose_file_path():
|
|
||||||
path = input("Enter the path to the docker-compose.yaml file (press Enter for current directory): ").strip()
|
|
||||||
return path if path else "docker-compose.yaml"
|
|
||||||
|
|
||||||
# Initialize the path to the docker-compose.yaml file
|
|
||||||
compose_file_path = get_compose_file_path()
|
|
||||||
|
|
||||||
# Define a list to keep track of running services
|
|
||||||
running_services = []
|
|
||||||
|
|
||||||
# Function to check if a service is already running
|
|
||||||
def is_service_running(service_name):
|
|
||||||
return service_name in running_services
|
|
||||||
|
|
||||||
# Function to start a service
|
|
||||||
def start_service(service_name):
|
|
||||||
if not is_service_running(service_name):
|
|
||||||
print(f"Starting {service_name}...")
|
|
||||||
subprocess.run(["docker", "compose", "-f", compose_file_path, "up", "-d", service_name])
|
|
||||||
running_services.append(service_name)
|
|
||||||
else:
|
|
||||||
print(f"{service_name} is already running.")
|
|
||||||
|
|
||||||
# Function to stop a service
|
|
||||||
def stop_service(service_name):
|
|
||||||
if is_service_running(service_name):
|
|
||||||
print(f"Stopping {service_name}...")
|
|
||||||
subprocess.run(["docker", "compose", "-f", compose_file_path, "down", "-v", "--remove-orphans", service_name])
|
|
||||||
running_services.remove(service_name)
|
|
||||||
else:
|
|
||||||
print(f"{service_name} is not running.")
|
|
||||||
|
|
||||||
# Main program
|
|
||||||
if __name__ == "__main__":
|
|
||||||
while True:
|
|
||||||
print("Options:")
|
|
||||||
print("1. Start Controller, Teleop, RSP, Lidar")
|
|
||||||
print("2. Start AMCL and Navigation")
|
|
||||||
print("3. Start Mapping and Navigation")
|
|
||||||
print("4. Stop AMCL and Mapping")
|
|
||||||
print("5. Change docker-compose.yaml file path")
|
|
||||||
print("6. Quit")
|
|
||||||
|
|
||||||
choice = input("Enter your choice: ")
|
|
||||||
|
|
||||||
if choice == "1":
|
|
||||||
start_service("controller")
|
|
||||||
start_service("teleop")
|
|
||||||
start_service("rsp")
|
|
||||||
start_service("lidar")
|
|
||||||
elif choice == "2":
|
|
||||||
start_service("amcl")
|
|
||||||
start_service("navigation")
|
|
||||||
elif choice == "3":
|
|
||||||
start_service("mapping")
|
|
||||||
start_service("navigation")
|
|
||||||
elif choice == "4":
|
|
||||||
stop_service("amcl")
|
|
||||||
stop_service("mapping")
|
|
||||||
elif choice == "5":
|
|
||||||
compose_file_path = get_compose_file_path()
|
|
||||||
elif choice == "6":
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
print("Invalid choice. Please try again.")
|
|
70
rviz2.yaml
70
rviz2.yaml
@ -1,70 +0,0 @@
|
|||||||
networks:
|
|
||||||
pc: # config for this pc. Only required for running the containers locally on the pc. For instance rviz2 or guis with gazebo.
|
|
||||||
driver: macvlan
|
|
||||||
driver_opts:
|
|
||||||
parent: wlx00e04c5513fc # pc network interface: here my wifi card. Can be found with ifconfig.
|
|
||||||
ipam:
|
|
||||||
config:
|
|
||||||
- subnet: 192.168.0.0/24
|
|
||||||
gateway: 192.168.0.1
|
|
||||||
ip_range: 192.168.0.200/25
|
|
||||||
aux_addresses:
|
|
||||||
net-address: 192.168.0.100 #? what is this for --> to exclude addresses from buing used.
|
|
||||||
|
|
||||||
services:
|
|
||||||
# rviz2
|
|
||||||
rviz2:
|
|
||||||
image: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis
|
|
||||||
# command: >
|
|
||||||
# ros2 launch cps_rmp220_support robot_rviz2.launch.py
|
|
||||||
command: >
|
|
||||||
ros2 launch cps_rmp220_support rviz.launch.py
|
|
||||||
# Interactive shell
|
|
||||||
stdin_open: true
|
|
||||||
tty: true
|
|
||||||
# Networking and IPC for ROS 2
|
|
||||||
network_mode: host
|
|
||||||
ipc: host
|
|
||||||
# Needed to display graphical applications
|
|
||||||
privileged: true
|
|
||||||
environment:
|
|
||||||
# Allows graphical programs in the container.
|
|
||||||
- DISPLAY=${DISPLAY}
|
|
||||||
- QT_X11_NO_MITSHM=1
|
|
||||||
- NVIDIA_DRIVER_CAPABILITIES=all
|
|
||||||
- ROS_DOMAIN_ID=5
|
|
||||||
- RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
|
|
||||||
volumes:
|
|
||||||
# Allows graphical programs in the container.
|
|
||||||
- /tmp/.X11-unix:/tmp/.X11-unix:rw
|
|
||||||
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
|
|
||||||
# networks: # not using bridging anymore, instead try using all services on macvlan? let's see... shoudl word for now. Bridging does definitely not work because multicast is not supported here.
|
|
||||||
# pc:
|
|
||||||
# ipv4_address: 192.168.0.201 #here need to set fixed ip to avoid collissions with other containers on robot.
|
|
||||||
|
|
||||||
rviz2-depthai:
|
|
||||||
image: luxonis/depthai-ros:humble-latest
|
|
||||||
command: >
|
|
||||||
ros2 launch cps_rmp220_support rviz.launch.py
|
|
||||||
# Interactive shell
|
|
||||||
stdin_open: true
|
|
||||||
tty: true
|
|
||||||
# Networking and IPC for ROS 2
|
|
||||||
network_mode: host
|
|
||||||
ipc: host
|
|
||||||
# Needed to display graphical applications
|
|
||||||
privileged: true
|
|
||||||
environment:
|
|
||||||
# Allows graphical programs in the container.
|
|
||||||
- DISPLAY=${DISPLAY}
|
|
||||||
- QT_X11_NO_MITSHM=1
|
|
||||||
- NVIDIA_DRIVER_CAPABILITIES=all
|
|
||||||
- ROS_DOMAIN_ID=5
|
|
||||||
- RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
|
|
||||||
volumes:
|
|
||||||
# Allows graphical programs in the container.
|
|
||||||
- /tmp/.X11-unix:/tmp/.X11-unix:rw
|
|
||||||
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
|
|
||||||
# networks: # not using bridging anymore, instead try using all services on macvlan? let's see... shoudl word for now. Bridging does definitely not work because multicast is not supported here.
|
|
||||||
# pc:
|
|
||||||
# ipv4_address: 192.168.0.201 #here need to set fixed ip to avoid collissions with other containers on robot.
|
|
@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.1",
|
|
||||||
"engine": "linux|Transformer|1.40.6|1.40.6|latest",
|
|
||||||
"containerized": false,
|
|
||||||
"host_distro": {
|
|
||||||
"name": "NixOS",
|
|
||||||
"version": "23.11",
|
|
||||||
"display_name": "NixOS 23.11 (Tapir)"
|
|
||||||
},
|
|
||||||
"type": "build",
|
|
||||||
"state": "error",
|
|
||||||
"target_reference": "ubuntu",
|
|
||||||
"system": {
|
|
||||||
"type": "",
|
|
||||||
"release": "",
|
|
||||||
"distro": {
|
|
||||||
"name": "",
|
|
||||||
"version": "",
|
|
||||||
"display_name": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"source_image": {
|
|
||||||
"identity": {
|
|
||||||
"id": ""
|
|
||||||
},
|
|
||||||
"size": 0,
|
|
||||||
"size_human": "",
|
|
||||||
"create_time": "",
|
|
||||||
"docker_version": "",
|
|
||||||
"architecture": "",
|
|
||||||
"container_entry": {
|
|
||||||
"exe_path": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"minified_image_size": 0,
|
|
||||||
"minified_image_size_human": "",
|
|
||||||
"minified_image": "",
|
|
||||||
"minified_image_has_data": false,
|
|
||||||
"minified_by": 0,
|
|
||||||
"artifact_location": "",
|
|
||||||
"container_report_name": "",
|
|
||||||
"seccomp_profile_name": "",
|
|
||||||
"apparmor_profile_name": "",
|
|
||||||
"image_stack": null,
|
|
||||||
"image_created": false,
|
|
||||||
"image_build_engine": ""
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
# Define the stacks
|
|
||||||
stack1 = ["controller", "teleop", "rsp", "lidar"]
|
|
||||||
stack2 = stack1 + ["mapping", "navigation"]
|
|
||||||
stack3 = stack1 + ["amcl", "navigation"]
|
|
||||||
|
|
||||||
# Function to start a stack
|
|
||||||
def start_stack(stack):
|
|
||||||
print(f"Starting {', '.join(stack)}...")
|
|
||||||
subprocess.run(["docker", "compose", "up", "-d"] + stack)
|
|
||||||
|
|
||||||
# Function to stop a stack
|
|
||||||
def stop_stack(stack):
|
|
||||||
print(f"Stopping {', '.join(stack)}...")
|
|
||||||
subprocess.run(["docker", "compose", "down", "-v", "--remove-orphans"] + stack)
|
|
||||||
|
|
||||||
# Main program
|
|
||||||
if __name__ == "__main__":
|
|
||||||
while True:
|
|
||||||
print("Options:")
|
|
||||||
print("1. Start Stack 1")
|
|
||||||
print("2. Start Stack 2")
|
|
||||||
print("3. Start Stack 3")
|
|
||||||
print("4. Stop Stack 1")
|
|
||||||
print("5. Stop Stack 2")
|
|
||||||
print("6. Stop Stack 3")
|
|
||||||
print("7. Quit")
|
|
||||||
|
|
||||||
choice = input("Enter your choice: ")
|
|
||||||
|
|
||||||
if choice == "1":
|
|
||||||
stop_stack(stack2 + stack3) # Stop stack2 and stack3 to avoid interference
|
|
||||||
start_stack(stack1)
|
|
||||||
elif choice == "2":
|
|
||||||
stop_stack(stack1 + stack3) # Stop stack1 and stack3 to avoid interference
|
|
||||||
start_stack(stack2)
|
|
||||||
elif choice == "3":
|
|
||||||
stop_stack(stack1 + stack2) # Stop stack1 and stack2 to avoid interference
|
|
||||||
start_stack(stack3)
|
|
||||||
elif choice == "4":
|
|
||||||
stop_stack(stack1)
|
|
||||||
elif choice == "5":
|
|
||||||
stop_stack(stack2)
|
|
||||||
elif choice == "6":
|
|
||||||
stop_stack(stack3)
|
|
||||||
elif choice == "7":
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
print("Invalid choice. Please try again.")
|
|
@ -1 +0,0 @@
|
|||||||
docker compose up -d controller teleop rsp lidar mapping navigation
|
|
@ -1 +0,0 @@
|
|||||||
docker compose up -d controller teleop rsp lidar amcl navigation
|
|
@ -1 +0,0 @@
|
|||||||
docker compose up -d controller teleop rsp lidar
|
|
133
test.rviz
133
test.rviz
@ -1,133 +0,0 @@
|
|||||||
Panels:
|
|
||||||
- Class: rviz_common/Displays
|
|
||||||
Help Height: 85
|
|
||||||
Name: Displays
|
|
||||||
Property Tree Widget:
|
|
||||||
Expanded:
|
|
||||||
- /Global Options1
|
|
||||||
- /Status1
|
|
||||||
Splitter Ratio: 0.5
|
|
||||||
Tree Height: 528
|
|
||||||
- Class: rviz_common/Selection
|
|
||||||
Name: Selection
|
|
||||||
- Class: rviz_common/Tool Properties
|
|
||||||
Expanded:
|
|
||||||
- /2D Goal Pose1
|
|
||||||
- /Publish Point1
|
|
||||||
Name: Tool Properties
|
|
||||||
Splitter Ratio: 0.5886790156364441
|
|
||||||
- Class: rviz_common/Views
|
|
||||||
Expanded:
|
|
||||||
- /Current View1
|
|
||||||
Name: Views
|
|
||||||
Splitter Ratio: 0.5
|
|
||||||
- Class: rviz_common/Time
|
|
||||||
Experimental: false
|
|
||||||
Name: Time
|
|
||||||
SyncMode: 0
|
|
||||||
SyncSource: ""
|
|
||||||
Visualization Manager:
|
|
||||||
Class: ""
|
|
||||||
Displays:
|
|
||||||
- Alpha: 0.5
|
|
||||||
Cell Size: 1
|
|
||||||
Class: rviz_default_plugins/Grid
|
|
||||||
Color: 160; 160; 164
|
|
||||||
Enabled: true
|
|
||||||
Line Style:
|
|
||||||
Line Width: 0.029999999329447746
|
|
||||||
Value: Lines
|
|
||||||
Name: Grid
|
|
||||||
Normal Cell Count: 0
|
|
||||||
Offset:
|
|
||||||
X: 0
|
|
||||||
Y: 0
|
|
||||||
Z: 0
|
|
||||||
Plane: XY
|
|
||||||
Plane Cell Count: 10
|
|
||||||
Reference Frame: <Fixed Frame>
|
|
||||||
Value: true
|
|
||||||
Enabled: true
|
|
||||||
Global Options:
|
|
||||||
Background Color: 48; 48; 48
|
|
||||||
Fixed Frame: map
|
|
||||||
Frame Rate: 30
|
|
||||||
Name: root
|
|
||||||
Tools:
|
|
||||||
- Class: rviz_default_plugins/Interact
|
|
||||||
Hide Inactive Objects: true
|
|
||||||
- Class: rviz_default_plugins/MoveCamera
|
|
||||||
- Class: rviz_default_plugins/Select
|
|
||||||
- Class: rviz_default_plugins/FocusCamera
|
|
||||||
- Class: rviz_default_plugins/Measure
|
|
||||||
Line color: 128; 128; 0
|
|
||||||
- Class: rviz_default_plugins/SetInitialPose
|
|
||||||
Covariance x: 0.25
|
|
||||||
Covariance y: 0.25
|
|
||||||
Covariance yaw: 0.06853891909122467
|
|
||||||
Topic:
|
|
||||||
Depth: 5
|
|
||||||
Durability Policy: Volatile
|
|
||||||
History Policy: Keep Last
|
|
||||||
Reliability Policy: Reliable
|
|
||||||
Value: /initialpose
|
|
||||||
- Class: rviz_default_plugins/SetGoal
|
|
||||||
Topic:
|
|
||||||
Depth: 5
|
|
||||||
Durability Policy: Volatile
|
|
||||||
History Policy: Keep Last
|
|
||||||
Reliability Policy: Reliable
|
|
||||||
Value: /goal_pose
|
|
||||||
- Class: rviz_default_plugins/PublishPoint
|
|
||||||
Single click: true
|
|
||||||
Topic:
|
|
||||||
Depth: 5
|
|
||||||
Durability Policy: Volatile
|
|
||||||
History Policy: Keep Last
|
|
||||||
Reliability Policy: Reliable
|
|
||||||
Value: /clicked_point
|
|
||||||
Transformation:
|
|
||||||
Current:
|
|
||||||
Class: rviz_default_plugins/TF
|
|
||||||
Value: true
|
|
||||||
Views:
|
|
||||||
Current:
|
|
||||||
Class: rviz_default_plugins/Orbit
|
|
||||||
Distance: 10
|
|
||||||
Enable Stereo Rendering:
|
|
||||||
Stereo Eye Separation: 0.05999999865889549
|
|
||||||
Stereo Focal Distance: 1
|
|
||||||
Swap Stereo Eyes: false
|
|
||||||
Value: false
|
|
||||||
Focal Point:
|
|
||||||
X: 0
|
|
||||||
Y: 0
|
|
||||||
Z: 0
|
|
||||||
Focal Shape Fixed Size: true
|
|
||||||
Focal Shape Size: 0.05000000074505806
|
|
||||||
Invert Z Axis: false
|
|
||||||
Name: Current View
|
|
||||||
Near Clip Distance: 0.009999999776482582
|
|
||||||
Pitch: 0.785398006439209
|
|
||||||
Target Frame: <Fixed Frame>
|
|
||||||
Value: Orbit (rviz)
|
|
||||||
Yaw: 0.785398006439209
|
|
||||||
Saved: ~
|
|
||||||
Window Geometry:
|
|
||||||
Displays:
|
|
||||||
collapsed: false
|
|
||||||
Height: 845
|
|
||||||
Hide Left Dock: false
|
|
||||||
Hide Right Dock: false
|
|
||||||
QMainWindow State: 000000ff00000000fd00000004000000000000015a000002a6fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006b00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000044000002a6000000eb00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002a6fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000044000002a6000000b900fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004af0000003efc0100000002fb0000000800540069006d00650100000000000004af000002d200fffffffb0000000800540069006d0065010000000000000450000000000000000000000238000002a600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
|
|
||||||
Selection:
|
|
||||||
collapsed: false
|
|
||||||
Time:
|
|
||||||
collapsed: false
|
|
||||||
Tool Properties:
|
|
||||||
collapsed: false
|
|
||||||
Views:
|
|
||||||
collapsed: false
|
|
||||||
Width: 1199
|
|
||||||
X: 199
|
|
||||||
Y: 115
|
|
Loading…
Reference in New Issue
Block a user