Skip to content

Commit 0804412

Browse files
author
Tinker Twins
committed
Revert to v0.2.0
1 parent e1bc10d commit 0804412

File tree

170 files changed

+1506
-4326
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+1506
-4326
lines changed

README.md

+12-40
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
# SINGABOAT-VRX | Virtual RobotX (VRX) Competition
22

3-
<img src="https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/PNG/Team.png" width="1080">
3+
<a href="https://youtu.be/jI0Y9ovG-Dg"><img src="https://i.ytimg.com/vi/jI0Y9ovG-Dg/maxresdefault.jpg" width="1080" ></a>
44

55
**COMPETITION:** Virtual RobotX (VRX) Competition 2022
66

77
**TEAM NAME:** SINGABOAT-VRX
88

99
**INSTITUTE:** Nanyang Technological University, Singapore
1010

11-
**MEMBERS:** Tanmay Vilas Samak, Chinmay Vilas Samak and Chern Peng Lee
11+
**MEMBERS:** Tanmay Samak, Chinmay Samak and Chern Peng Lee
1212

1313
**ADVISOR:** Dr. Ming Xie
1414

1515
## DEPENDENCIES
1616

1717
1. Robot Operating System (ROS) - Tested with [ROS Noetic Ninjemys](http://wiki.ros.org/noetic) on [Ubuntu 20.04.4 LTS (Focal Fossa)](https://releases.ubuntu.com/20.04/).
1818
2. [Virtual RobotX (VRX)](https://github.com/osrf/vrx) Simulation Environment - Included as `vrx` directory with this `SINGABOAT-VRX` repository.
19-
3. Python3 Dependencies - Listed in `requirements.txt` file of `singaboat_vrx` ROS package. These can be simply installed using the following command:
19+
3. Python3 Dependencies - Listed in `requirements.txt` file of this `SINGABOAT-VRX` repository. These can be simply installed using the following command:
2020
```bash
2121
$ pip3 install -r requirements.txt
2222
```
@@ -48,46 +48,18 @@
4848

4949
## USAGE
5050

51-
1. Launch any VRX task simulation instance.
51+
Launch SINGABOAT-VRX solution(s) for VRX Competition.
5252
```bash
53-
$ roslaunch vrx_gazebo <TASK_NAME>.launch
54-
55-
$ roslaunch vrx_gazebo station_keeping.launch
56-
$ roslaunch vrx_gazebo wayfinding.launch
57-
$ roslaunch vrx_gazebo perception_task.launch
58-
$ roslaunch vrx_gazebo wildlife.launch
59-
$ roslaunch vrx_gazebo gymkhana.launch
60-
$ roslaunch vrx_gazebo scan_dock_deliver.launch
61-
```
62-
63-
2. Launch `singaboat_task_manager` to automatically identify the VRX task and execute the corresponding SINGABOAT-VRX solution algorithm.
64-
```bash
65-
$ roslaunch singaboat_vrx singaboat_vrx.launch
66-
53+
$ roslaunch singaboat_vrx <TASK_NAME>.launch
54+
55+
$ roslaunch singaboat_vrx singaboat_station_keeping.launch
56+
$ roslaunch singaboat_vrx singaboat_wayfinding.launch
57+
$ roslaunch singaboat_vrx singaboat_scene_perception.launch
58+
$ roslaunch singaboat_vrx singaboat_semantic_navigation.launch
59+
$ roslaunch singaboat_vrx singaboat_gymkhana_challenge.launch
60+
$ roslaunch singaboat_vrx singaboat_scan_dock_deliver.launch
6761
```
6862

6963
## DOCKER
7064

7165
The docker container image(s) containing all the source code as well as dependencies is available on [Docker Hub](https://hub.docker.com/repository/docker/tinkertwins/singaboat-vrx).
72-
73-
## VIDEOS
74-
75-
Demonstration videos are available on [YouTube](https://youtube.com/playlist?list=PLY45pkzWzH982DTT3n9avu5bGrd0cAcfZ).
76-
77-
| <a href="https://youtu.be/jI0Y9ovG-Dg"><img src="https://i.ytimg.com/vi/jI0Y9ovG-Dg/maxresdefault.jpg" width="500"></a> | <a href="https://youtu.be/x7_Z7U9vJPY"><img src="https://i.ytimg.com/vi/x7_Z7U9vJPY/maxresdefault.jpg" width="500"></a> |
78-
|:-------------------------------------------------------------------------:|:-------------------------------------------------------------------------:|
79-
| [Task Descriptions](https://youtu.be/jI0Y9ovG-Dg) | [Task Solutions](https://youtu.be/x7_Z7U9vJPY) |
80-
81-
## VRX COMPETITION 2022
82-
83-
[Our team worked meticulously](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/PNG/Team%20Working%20on%20Tasks.png) to complete all the [6 tasks of VRX Competition 2022](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/PNG/Tasks.png) and ultimately emerged as one of the winners of the challange, while also bagging several other special awards.
84-
85-
| ![Station-Keeping](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/GIF/Task%201%20-%20Station-Keeping.gif) | ![Wayfinding](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/GIF/Task%202%20-%20Wayfinding.gif) | ![Scene Perception](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/GIF/Task%203%20-%20Scene%20Perception.gif) |
86-
|:-----------------------------------------------:|:-------------------------------------------------:|:-----------------------------------------------:|
87-
| [Station-Keeping Task](https://github.com/osrf/vrx/wiki/vrx_2022-station_keeping_task) | [Wayfinding Task](https://github.com/osrf/vrx/wiki/vrx_2022-wayfinding_task) | [Scene Perception Task](https://github.com/osrf/vrx/wiki/vrx_2022-perception_task) |
88-
| ![Semantic Navigation](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/GIF/Task%204%20-%20Semantic%20Navigation.gif) | ![Gymkhana Challenge](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/GIF/Task%205%20-%20Gymkhana%20Challenge.gif) | ![Scan-Dock-Deliver](https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/GIF/Task%206%20-%20Scan-Dock-Deliver.gif) |
89-
| [Semantic Navigation Task](https://github.com/osrf/vrx/wiki/vrx_2022-wildlife_task) | [Gymkhana Challenge Task](https://github.com/osrf/vrx/wiki/vrx_2022-gymkhana_task) | [Scan-Dock-Deliver Task](https://github.com/osrf/vrx/wiki/vrx_2022-scan_dock_deliver_task) |
90-
91-
The detailed scores and ranks of all the teams that qualified for finals of VRX Competition 2022 are available on [VRX GitHub Wiki](https://github.com/osrf/vrx/wiki/vrx_2022-phase3_results), and a summary of results and awards declared during the [VRX 2022 Award Ceremony](https://youtu.be/aVPmrvTCjpg) are available on [VRX Website](https://robotx.org/2022/05/04/vrx-2022-awards-and-final-standings/).
92-
93-
<img src="https://github.com/Tinker-Twins/SINGABOAT-VRX/blob/main/media/PNG/Awards.png" width="1080">

docker/Dockerfile

+6-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Pull ROS Noetic base image
1+
# Pull ROS Noetic base image.
22
FROM ros:noetic-ros-base
33

4-
# Insall package dependencies
4+
# Insall package dependencies.
55
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \
66
&& apt update \
77
&& apt install -y \
@@ -16,7 +16,6 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio
1616
ros-noetic-key-teleop \
1717
ros-noetic-robot-localization \
1818
ros-noetic-robot-state-publisher \
19-
ros-noetic-joint-state-publisher \
2019
ros-noetic-rviz \
2120
ros-noetic-teleop-tools \
2221
ros-noetic-teleop-twist-keyboard \
@@ -27,21 +26,15 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio
2726
&& pip3 install --no-cache-dir --upgrade pip \
2827
&& pip3 install --no-cache-dir numpy==1.22.3 scipy==1.8.0 pymap3d==2.7.2 open3d==0.13.0 dubins==1.0.1
2928

30-
# Set working directory
29+
# Set working directory.
3130
WORKDIR /home/$USER
3231

33-
# Install VRX packages
32+
# Install VRX packages.
3433
RUN mkdir -p VRX_Workspace/src/
3534
COPY ./ VRX_Workspace/src/
3635
RUN /bin/bash -c 'source /opt/ros/noetic/setup.bash && cd VRX_Workspace && catkin_make' \
3736
&& /bin/bash -c 'echo "source /home/$USER/VRX_Workspace/devel/setup.bash" >> ~/.bashrc' \
3837
&& /bin/bash -c 'source ~/.bashrc'
3938

40-
# Install VNC server and GUI tools
41-
RUN apt update --fix-missing \
42-
&& apt install -y x11vnc xvfb \
43-
&& mkdir ~/.vnc \
44-
&& x11vnc -storepasswd singaboat-vrx ~/.vnc/passwd
45-
46-
# Set entrypoint
47-
ENTRYPOINT ["VRX_Workspace/src/SINGABOAT-VRX/singaboat_vrx/scripts/entrypoint.sh"]
39+
# Set entrypoint.
40+
ENTRYPOINT ["VRX_Workspace/src/SINGABOAT-VRX/singaboat_vrx/scripts/singaboat_vrx.sh"]

docker/Gazebo_Docker_Config.md

-20
This file was deleted.

docker/README.md

+18-70
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,58 @@
11
# SINGABOAT-VRX Docker Instructions
22

3-
#### Building Docker Image from the Dockerfile:
4-
5-
1. Change directory to `$HOME/VRX_Workspace/src` (catkin workspace for VRX Competition):
6-
```bash
7-
$ cd <PATH/TO/DIRECTORY> .
8-
$ cd $HOME/VRX_Workspace/src
9-
```
10-
11-
2. Build the docker image from the dockerfile:
3+
1. Change directory to `$HOME/VRX_Workspace/src` (catkin workspace for VRX Competition) and build the docker image:
124
```bash
135
$ docker build --tag <USERNAME>/<IMAGE_REPOSITORY_NAME>:<TAG> -f <PATH/TO/DOCKERFILE> .
14-
$ docker build --tag tinkertwins/singaboat-vrx:v2022.3 -f SINGABOAT-VRX/docker/Dockerfile .
6+
$ docker build --tag tinkertwins/singaboat-vrx:v2022.2 -f SINGABOAT-VRX/docker/Dockerfile .
157
```
168

17-
#### Contaninerization and Pushing the Container to Docker Hub:
18-
19-
1. Run the image you created in the previous step inside a container:
9+
2. Create a container with the image you created in the previous step:
2010
```bash
2111
$ docker run <USERNAME>/<IMAGE_REPOSITORY_NAME>:<TAG>
22-
$ docker run tinkertwins/singaboat-vrx:v2022.3
12+
$ docker run tinkertwins/singaboat-vrx:v2022.2
2313
```
2414

25-
2. In a new terminal window, list all containers and make a note of the desired CONTAINER ID:
15+
3. In a different terminal window, list all containers and take a note of desired CONTAINER ID:
2616
```bash
2717
$ docker ps -a
2818
```
2919

30-
3. Commit changes to Docker Hub:
20+
4. Commit changes to Docker Hub:
3121
```bash
3222
$ docker commit -m "<COMMIT MESSAGE>" -a "<FULL NAME>" <CONTAINER ID> <USERNAME>/<IMAGE_REPOSITORY_NAME>:<TAG>
33-
$ docker commit -m "SINGABOAT-VRX" -a "Tinker Twins" 35b286bf2b9b tinkertwins/singaboat-vrx:v2022.3
23+
$ docker commit -m "SINGABOAT-VRX" -a "Tinker Twins" 35b286bf2b9b tinkertwins/singaboat-vrx:v2022.2
3424
```
3525

36-
4. Login to Docker Hub:
26+
5. Login to Docker Hub:
3727
```bash
3828
$ docker login
3929
```
4030

41-
5. Push the container to Docker Hub, once done, you should be able to see your repository on Docker Hub:
31+
6. Push container image to Docker Hub, once done, you should be able to see your repository on Docker Hub:
4232
```bash
4333
$ docker push <USERNAME>/<IMAGE_REPOSITORY_NAME>:<TAG>
44-
$ docker push tinkertwins/singaboat-vrx:v2022.3
34+
$ docker push tinkertwins/singaboat-vrx:v2022.2
4535
```
4636

47-
#### Running the Containerized Image:
48-
49-
1. Run the containerized image (follow either step 1.1 or 1.2):
50-
51-
1.1. Run the containerized image in **headless mode** with a name (`--name`) and interactive tty (`-it`), and remove the container upon exiting (`--rm`):
52-
```bash
53-
$ docker run --rm -it --name <CONTAINER_NAME> <USERNAME>/<IMAGE_REPOSITORY_NAME>:<TAG>
54-
$ docker run --rm -it --name singaboat_vrx tinkertwins/singaboat-vrx:v2022.3
55-
```
56-
57-
1.2. Run the containerized image in **GUI mode** (requires a VNC viewer) with a name (`--name`) and interactive tty (`-it`), bind TCP port of host to port of the conatainer and publish it to the host system’s interfaces (`-p`), and remove the container upon exiting (`--rm`):
58-
```bash
59-
$ docker run --rm -it -p <HOST_PORT:CONTAINER_PORT> --name <CONTAINER_NAME> <USERNAME>/<IMAGE_REPOSITORY_NAME>:<TAG>
60-
$ docker run --rm -it -p 5900:5900 --name singaboat_vrx tinkertwins/singaboat-vrx:v2022.3
61-
```
62-
63-
Launch the VNC viewer (tested with [RealVNC Viewer](https://www.realvnc.com/en/connect/download/viewer/)) and configure the connection parameters (the password for establishing secure connection is `singaboat-vrx`):
64-
65-
For running VNC viewer on the host machine:
66-
```bash
67-
$ vncviewer localhost:5900
68-
```
69-
70-
For running VNC viewer on a remote machine:
71-
```bash
72-
$ vncviewer ip.address.of.host:5900
73-
```
74-
75-
You can also configure the connection parameters via GUI of the VNC viewer application.
37+
7. Run the container to test it in interactive tty (i.e., `-it`) mode:
38+
```bash
39+
$ docker run -it --name <GIVE A CONTAINER NAME> <USERNAME>/<IMAGE_REPOSITORY_NAME>:<TAG>
40+
$ docker run -it --name singaboat_vrx tinkertwins/singaboat-vrx:v2022.2
41+
```
7642

77-
2. [Optional] Start additional bash session(s) within the container (each in a new terminal window):
43+
8. In a different terminal window, execute a bash from within the container to access it:
7844
```bash
7945
$ docker exec -it <CONTAINER NAME> bash
8046
$ docker exec -it singaboat_vrx bash
8147
```
8248

83-
3. Once you are done with the intended job, exit the bash session(s):
49+
9. Exit the bash:
8450
```bash
8551
$ exit
8652
```
8753

88-
4. Kill the running container (required only if the containerized image is still running):
54+
10. Kill the container:
8955
```bash
9056
$ docker kill <CONTAINER NAME>
9157
$ docker kill singaboat_vrx
9258
```
93-
94-
5. Remove the container (required only if the containerized image is not run with the `--rm` option):
95-
```bash
96-
$ docker rm <CONTAINER NAME>
97-
$ docker rm singaboat_vrx
98-
```
99-
100-
#### Cleaning Up Docker Resources:
101-
102-
Running or caching multiple docker images or containers can quickly eat up a lot of disk space. Hence, it is always a good idea to frequently check docker disk utilization:
103-
```bash
104-
$ docker system df
105-
```
106-
107-
In order to avoid utilizing a lot of disk space, it is a good idea to frequently purge docker resources such as images, containers, volumes and networks that are unused or dangling (i.e. not tagged or associated with a container). There are a number of ways with a lot of options to achieve this, please refer appropriate documentation. The easiest way (but a potentially dangerous one) is to use a single command to clean up all the docker resources (dangling or otherwise):
108-
```bash
109-
$ docker system prune -a
110-
```

docker/RViz_Docker_Config.md

-19
This file was deleted.
-24.2 MB
Binary file not shown.

media/GIF/Task 2 - Wayfinding.gif

-62.2 MB
Binary file not shown.
-17.3 MB
Binary file not shown.
-20.9 MB
Binary file not shown.
-46.5 MB
Binary file not shown.
-44.3 MB
Binary file not shown.

media/PNG/Awards.png

-1020 KB
Binary file not shown.

media/PNG/Tasks.png

-22 MB
Binary file not shown.

media/PNG/Team Working on Tasks.png

-7.25 MB
Binary file not shown.

media/PNG/Team.png

-2.82 MB
Binary file not shown.

singaboat_vrx/CMakeLists.txt

+8-6
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ catkin_python_setup()
3535
# Dynamic reconfigure options
3636
generate_dynamic_reconfigure_options(
3737
cfg/teleoperation_config.cfg
38-
cfg/inverse_kinematics_config.cfg
38+
cfg/pose_processor_config.cfg
39+
cfg/ik_solver_config.cfg
3940
cfg/task_manager_config.cfg
4041
cfg/mission_manager_config.cfg
4142
cfg/station_keeping_config.cfg
@@ -91,7 +92,8 @@ catkin_package(CATKIN_DEPENDS
9192
# Install all the script files
9293
catkin_install_python(PROGRAMS
9394
src/singaboat_teleoperation.py
94-
src/singaboat_inverse_kinematics.py
95+
src/singaboat_pose_processor.py
96+
src/singaboat_ik_solver.py
9597
src/singaboat_mission_manager.py
9698
src/singaboat_task_manager.py
9799
src/singaboat_station_keeping.py
@@ -102,13 +104,13 @@ catkin_install_python(PROGRAMS
102104
src/singaboat_scan_dock_deliver.py
103105
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
104106

105-
# Install all the script config files
107+
# Install all the cfg files
106108
install(DIRECTORY cfg/
107109
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/cfg)
108110

109-
# Install all the WAM-V config files
110-
install(DIRECTORY wamv/
111-
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/wamv)
111+
# Install all the config files
112+
install(DIRECTORY config/
113+
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config)
112114

113115
# Install all the world files
114116
install(DIRECTORY worlds/

0 commit comments

Comments
 (0)