Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ PROJECT_NAME="airstack"
# If you've run ./airstack.sh setup, then this will auto-generate from the git commit hash every time a change is made
# to a Dockerfile or docker-compose.yaml file. Otherwise this can also be set explicitly to make a release version.
# auto-generated from git commit hash
DOCKER_IMAGE_TAG="0.15.0"
DOCKER_IMAGE_TAG="0.15.1"
# Can replace with your docker hub username
PROJECT_DOCKER_REGISTRY="airlab-docker.andrew.cmu.edu/airstack"
# ============================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ def robot_selection_callback(self, msg):
if msg.data not in self.behavior_tree_graphviz_subs.keys():
def callback(m):
self.robot_graphviz_callback(msg.data, m)
self.behavior_tree_graphviz_subs[msg.data] = self.node.create_subscription(String,
self.behavior_tree_graphviz_subs[msg.data] = self.node.create_subscription(GraphVizXdot,
'/' + msg.data + \
'/behavior/behavior_tree_graphviz',
callback,
Expand Down
26 changes: 2 additions & 24 deletions gcs/docker/Dockerfile.gcs
Original file line number Diff line number Diff line change
Expand Up @@ -34,28 +34,7 @@ RUN mkdir /var/run/sshd && echo 'root:airstack' | chpasswd && \
EXPOSE 22

# TMux config
RUN git clone https://github.com/tmux-plugins/tpm /home/gcs/.tmux/plugins/tpm


WORKDIR /home/gcs/AirStack/gcs/ros_ws
# Make it so that files created within the container reflect the user's UID/GID so they don't have to change file permissions from root. See https://github.com/boxboat/fixuid
# need to give access to docker to access container name
# creates user "gcs" with UID 1000, home directory /home/gcs, and shell /bin/sh
# creates group "gcs" with GID 1000
RUN addgroup --gid 1000 gcs && \
adduser --uid 1000 --ingroup gcs --home /home/gcs --shell /bin/bash --disabled-password --gecos "" gcs && \
chown -R gcs:gcs /home/gcs && \
usermod -aG sudo gcs && \
echo "gcs ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/gcs && \
echo "gcs:gcs" | chpasswd

RUN USER=gcs && \
GROUP=gcs && \
curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.6.0/fixuid-0.6.0-linux-amd64.tar.gz | tar -C /usr/local/bin -xzf - && \
chown root:root /usr/local/bin/fixuid && \
chmod 4755 /usr/local/bin/fixuid && \
mkdir -p /etc/fixuid && \
printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml
RUN git clone https://github.com/tmux-plugins/tpm /root/.tmux/plugins/tpm

RUN wget https://get.foxglove.dev/desktop/latest/foxglove-studio-latest-linux-amd64.deb
RUN apt -o Acquire::AllowInsecureRepositories=true -o Acquire::AllowDowngradeToInsecureRepositories=true update && apt -o APT::Get::AllowUnauthenticated=true install -y ./foxglove-studio-latest-linux-amd64.deb
Expand All @@ -64,5 +43,4 @@ RUN apt -o APT::Get::AllowUnauthenticated=true install -y ros-humble-foxglove-br
# Cleanup. Prevent people accidentally doing git commits from within Docker
RUN apt purge git -y && apt autoremove -y && apt clean -y && rm -rf /var/lib/apt/lists/*

USER gcs:gcs
ENTRYPOINT ["fixuid"]
WORKDIR /root/AirStack/gcs/ros_ws
20 changes: 10 additions & 10 deletions gcs/docker/gcs-base-docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,17 @@ services:
tty: true
volumes:
# display stuff
- $HOME/.Xauthority:/home/gcs/.Xauthority
- $HOME/.Xauthority:/root/.Xauthority
- /tmp/.X11-unix:/tmp/.X11-unix
# developer stuff
- ../../common/.bash_profile:/home/gcs/.bash_profile:rw
- .bashrc:/home/gcs/.bashrc:rw
- ../../common/.tmux.conf:/home/gcs/.tmux.conf:rw
- ../../common/.bash_profile:/root/.bash_profile:rw
- .bashrc:/root/.bashrc:rw
- ../../common/.tmux.conf:/root/.tmux.conf:rw
- ../../common/inputrc:/etc/inputrc:rw
- ../../.devcontainer/gcs/launch.json:/home/gcs/AirStack/.vscode/launch.json:rw
- ../../.devcontainer/gcs/tasks.json:/home/gcs/AirStack/.vscode/tasks.json:rw
- ./Foxglove:/home/gcs/.config/Foxglove:rw
- ../../.devcontainer/gcs/launch.json:/root/AirStack/.vscode/launch.json:rw
- ../../.devcontainer/gcs/tasks.json:/root/AirStack/.vscode/tasks.json:rw
- ./Foxglove:/root/.config/Foxglove:rw
# autonomy stack stuff
- ../..:/home/gcs/AirStack
- ../../common/ros_packages:/home/gcs/AirStack/gcs/ros_ws/src/common:rw # common ROS packages
- ../../common/ros_packages/fastdds.xml:/home/gcs/AirStack/gcs/ros_ws/fastdds.xml:rw # fastdds.xml
- ../..:/root/AirStack
- ../../common/ros_packages:/root/AirStack/gcs/ros_ws/src/common:rw # common ROS packages
- ../../common/ros_packages/fastdds.xml:/root/AirStack/gcs/ros_ws/fastdds.xml:rw # fastdds.xml
4 changes: 2 additions & 2 deletions gcs/ros_ws/src/gcs_bringup/config/gcs.perspective
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,11 @@
"plugin": {
"keys": {
"command_config_filename": {
"repr": "'/home/gcs/AirStack/gcs/ros_ws/install/rqt_gcs/share/rqt_gcs/config/gui_config.yaml'",
"repr": "'/root/AirStack/gcs/ros_ws/install/rqt_gcs/share/rqt_gcs/config/gui_config.yaml'",
"type": "repr"
},
"trajectory_config_filename": {
"repr": "'/home/gcs/AirStack/gcs/ros_ws/install/rqt_gcs/share/rqt_gcs/config/fixed_trajectories.yaml'",
"repr": "'/root/AirStack/gcs/ros_ws/install/rqt_gcs/share/rqt_gcs/config/fixed_trajectories.yaml'",
"type": "repr"
}
},
Expand Down
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ nav:
- robot/ros_ws/src/autonomy/3_local/b_planners/takeoff_landing_planner/test/README.md
- DROAN (Obstacle Avoidance Planner):
- robot/ros_ws/src/autonomy/3_local/b_planners/droan_local_planner/README.md
- DROAN GL:
- robot/ros_ws/src/autonomy/3_local/b_planners/droan_gl/README.md
- Controls:
- docs/robot/autonomy/3_local/controls/index.md
- robot/ros_ws/src/autonomy/3_local/c_controls/trajectory_controller/README.md
Expand Down
47 changes: 2 additions & 45 deletions robot/docker/Dockerfile.robot
Original file line number Diff line number Diff line change
Expand Up @@ -203,55 +203,12 @@ RUN if [ "$SKIP_MACVO" != "true" ]; then pip uninstall matplotlib -y; fi


# TMux config
RUN git clone https://github.com/tmux-plugins/tpm /home/robot/.tmux/plugins/tpm

WORKDIR /home/robot/AirStack/robot/ros_ws

# Make it so that files created within the container reflect the user's UID/GID so they don't have to change file permissions from root. See https://github.com/boxboat/fixuid
# need to give access to docker to access container name
# creates user "robot" with UID 1000, home directory /home/robot, and shell /bin/bash
# creates group "robot" with GID 1000
RUN addgroup --gid 1000 robot && \
adduser --uid 1000 --ingroup robot --home /home/robot --shell /bin/bash --disabled-password --gecos "" robot && \
chown -R robot:robot /home/robot && \
usermod -aG sudo robot && \
echo "robot ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/robot && \
echo "robot:robot" | chpasswd


ARG REAL_ROBOT=false
RUN if [ "$REAL_ROBOT" = "true" ]; then \
# Put commands here that should run for the real robot but not the sim
echo "REAL_ROBOT is true"; \
apt-get ${UPDATE_FLAGS} update && apt-get ${INSTALL_FLAGS} install -y libimath-dev; \
groupadd -g 20 dialout; \
usermod -aG dialout robot; \
USER=robot && \
GROUP=robot && \
curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.6.0/fixuid-0.6.0-linux-arm64.tar.gz | tar -C /usr/local/bin -xzf - && \
chown root:root /usr/local/bin/fixuid && \
chmod 4755 /usr/local/bin/fixuid && \
mkdir -p /etc/fixuid && \
printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml; \
else \
# Put commands here that should be run for the sim but not the real robot
echo "REAL_ROBOT is false"; \
USER=robot && \
GROUP=robot && \
curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.6.0/fixuid-0.6.0-linux-amd64.tar.gz | tar -C /usr/local/bin -xzf - && \
chown root:root /usr/local/bin/fixuid && \
chmod 4755 /usr/local/bin/fixuid && \
mkdir -p /etc/fixuid && \
printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml; \
fi

RUN git clone https://github.com/tmux-plugins/tpm /root/.tmux/plugins/tpm

WORKDIR /root/AirStack/robot/ros_ws

# Cleanup
RUN apt autoremove -y \
&& apt clean -y \
&& rm -rf /var/lib/apt/lists/*

USER robot:robot
ENTRYPOINT ["fixuid"]

1 change: 0 additions & 1 deletion robot/docker/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ services:
file: ./robot-base-docker-compose.yaml
service: robot_base
image: &desktop_image ${PROJECT_DOCKER_REGISTRY}/${PROJECT_NAME}:v${DOCKER_IMAGE_TAG}_robot-x86-64
user: "${USER_ID:-1000}:${GROUP_ID:-1000}"
build:
dockerfile: ./Dockerfile.robot
args:
Expand Down
18 changes: 9 additions & 9 deletions robot/docker/robot-base-docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ services:
- $HOME/.Xauthority:/.Xauthority
- /tmp/.X11-unix:/tmp/.X11-unix
# developer stuff
- .dev:/home/robot/.dev:rw # developer config
- ../../common/.bash_profile:/home/robot/.bash_profile:rw
- .bashrc:/home/robot/.bashrc:rw # bash config
- .dev:/root/.dev:rw # developer config
- ../../common/.bash_profile:/root/.bash_profile:rw
- .bashrc:/root/.bashrc:rw # bash config
- ../../common/inputrc:/etc/inputrc:rw # for using page up/down to search through command history
- ../../common/.tmux.conf:/home/robot/.tmux.conf:rw # tmux config
- ../../.devcontainer/robot/launch.json:/home/robot/AirStack/.vscode/launch.json:rw
- ../../.devcontainer/robot/tasks.json:/home/robot/AirStack/.vscode/tasks.json:rw
- ../../common/.tmux.conf:/root/.tmux.conf:rw # tmux config
- ../../.devcontainer/robot/launch.json:/root/AirStack/.vscode/launch.json:rw
- ../../.devcontainer/robot/tasks.json:/root/AirStack/.vscode/tasks.json:rw
# autonomy stack stuff
- ../..:/home/robot/AirStack
- ../../common/ros_packages:/home/robot/AirStack/robot/ros_ws/src/common:rw # common ROS packages
- ../../common/ros_packages/fastdds.xml:/home/robot/AirStack/robot/ros_ws/fastdds.xml:rw # fastdds.xml
- ../..:/root/AirStack
- ../../common/ros_packages:/root/AirStack/robot/ros_ws/src/common:rw # common ROS packages
- ../../common/ros_packages/fastdds.xml:/root/AirStack/robot/ros_ws/fastdds.xml:rw # fastdds.xml

Empty file removed robot/ros_ws/base_link:
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ DROAN local planner takes the global plan, and finds the global plan's closest p
DROAN trims the global plan to be from that point to the end of the global plan.

Consequently, DROAN currently does NOT use a waypoint manager, and is NOT guaranteed to reach every waypoint on the global plan, especially if the global plan loops back on itself.
Ideally in the future we will use a proper waypoint manager.
Ideally in the future we will use a proper waypoint manager.
4 changes: 2 additions & 2 deletions robot/ros_ws/src/robot_bringup/config/core.perspective
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
"plugin": {
"keys": {
"config_filename": {
"repr": "'/home/robot/AirStack/robot/ros_ws/install/rqt_behavior_tree_command/share/rqt_behavior_tree_command/config/gui_config.yaml'",
"repr": "'/root/AirStack/robot/ros_ws/install/rqt_behavior_tree_command/share/rqt_behavior_tree_command/config/gui_config.yaml'",
"type": "repr"
}
},
Expand Down Expand Up @@ -114,7 +114,7 @@
"type": "repr"
},
"config_filename": {
"repr": "'/home/robot/AirStack/robot/ros_ws/install/rqt_fixed_trajectory_generator/share/rqt_fixed_trajectory_generator/config/fixed_trajectories.yaml'",
"repr": "'/root/AirStack/robot/ros_ws/install/rqt_fixed_trajectory_generator/share/rqt_fixed_trajectory_generator/config/fixed_trajectories.yaml'",
"type": "repr"
}
},
Expand Down
2 changes: 1 addition & 1 deletion robot/ros_ws/src/robot_bringup/launch/robot.launch.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

<!-- Domain Bridge -->
<node pkg="domain_bridge" exec="domain_bridge"
args="/home/robot/AirStack/robot/ros_ws/src/robot_bringup/params/domain_bridge.yaml"
args="/root/AirStack/robot/ros_ws/src/robot_bringup/params/domain_bridge.yaml"
output="screen" respawn="true" respawn_delay="1" />

</launch>
Loading