Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
8c6b310
move base interface for the state machine
AshayAswale Dec 4, 2021
fcf9732
Scheduler and state machine skeleton
AshayAswale Dec 5, 2021
4b8566a
tendons and tissues to skeleton
AshayAswale Dec 5, 2021
04bcd4b
dirty fix to static issue
AshayAswale Dec 6, 2021
bc43111
connection checks and publishes
AshayAswale Dec 6, 2021
85f83f6
Working explorer state machine
AshayAswale Dec 6, 2021
3f6112d
Explorer works on its own, doesn't communicate next location
AshayAswale Dec 7, 2021
6b6be7d
working communication of relay and explorer
AshayAswale Dec 7, 2021
5502969
pending commit for time prediction
AshayAswale Dec 9, 2021
c7fb465
[ADD] finds largest frontier and travels to center --- slow
tberg1234 Dec 10, 2021
3cd06e3
[FIX] More efficient frontier search
tberg1234 Dec 10, 2021
4d43dc0
[CHANGE] cell size in occupancy grid for quicker frontier convergence
tberg1234 Dec 10, 2021
4b627b1
[REFACTOR] overall function created
tberg1234 Dec 10, 2021
e610583
[ADD] cost based frontier selection
tberg1234 Dec 10, 2021
1ea0197
[ADD] exploration metrics for evalutation
tberg1234 Dec 11, 2021
672a6eb
[CHANGE] consistant timing for both percent and distance - can match …
tberg1234 Dec 11, 2021
3462914
[ADD] helper scripts
tberg1234 Jan 13, 2022
9fe6158
[ADD] full inputs for reinforcment learning finalized
tberg1234 Jan 15, 2022
a793680
Updated commit hash for pausing exploration
AshayAswale Feb 4, 2022
bbb73d4
Added ReadMe file for the state machine flow
AshayAswale Feb 17, 2022
6d53a3a
Modifications as requested by #18
AshayAswale Feb 18, 2022
8cfbc7c
changed helper files
tberg1234 Feb 19, 2022
c00b682
[ADD] all RL stuff
tberg1234 Feb 19, 2022
c9718f4
merge service request
nikopoulospet Feb 19, 2022
09c4f05
move base interface for the state machine
AshayAswale Dec 4, 2021
eca6e96
Scheduler and state machine skeleton
AshayAswale Dec 5, 2021
e469fa8
tendons and tissues to skeleton
AshayAswale Dec 5, 2021
e3917ce
dirty fix to static issue
AshayAswale Dec 6, 2021
80488dc
connection checks and publishes
AshayAswale Dec 6, 2021
3264d81
Working explorer state machine
AshayAswale Dec 6, 2021
fa62afc
Explorer works on its own, doesn't communicate next location
AshayAswale Dec 7, 2021
36fa8ee
working communication of relay and explorer
AshayAswale Dec 7, 2021
0e17528
pending commit for time prediction
AshayAswale Dec 9, 2021
6ea6a2a
Added ReadMe file for the state machine flow
AshayAswale Feb 17, 2022
71b063a
Modifications as requested by #18
AshayAswale Feb 18, 2022
e6f0e36
merge service request
nikopoulospet Feb 19, 2022
f065a40
gitignore
nikopoulospet Feb 19, 2022
af6a028
Merge remote-tracking branch 'origin/SM_add_merge_service' into SM_ad…
nikopoulospet Feb 19, 2022
2253ac6
Builds
nikopoulospet Feb 19, 2022
958f238
simple tests
nikopoulospet Feb 19, 2022
820c944
[ADD] pointing to right folders in launch files
tberg1234 Feb 21, 2022
f6a6a84
push to merge, completed non moving merges.
nikopoulospet Feb 22, 2022
296d7ab
commit to merge
nikopoulospet Feb 22, 2022
c495e75
commit to merge
nikopoulospet Feb 22, 2022
b0a9726
[DEBUG] added things to help with inability to import packages
tberg1234 Feb 22, 2022
04dc4df
partially working stuff
nikopoulospet Feb 22, 2022
200a56d
[ADD] submodules for gmapping and rl
tberg1234 Feb 22, 2022
b750cb9
[CHANGE] git
tberg1234 Feb 22, 2022
1f441a7
[ADD] submodule again
tberg1234 Feb 22, 2022
c7bd72e
[ADD] finds largest frontier and travels to center --- slow
tberg1234 Dec 10, 2021
9886ceb
[FIX] More efficient frontier search
tberg1234 Dec 10, 2021
cefa34e
[CHANGE] cell size in occupancy grid for quicker frontier convergence
tberg1234 Dec 10, 2021
aa89584
[REFACTOR] overall function created
tberg1234 Dec 10, 2021
88a4568
[ADD] cost based frontier selection
tberg1234 Dec 10, 2021
c9f0735
[ADD] exploration metrics for evalutation
tberg1234 Dec 11, 2021
953c2ea
[CHANGE] consistant timing for both percent and distance - can match …
tberg1234 Dec 11, 2021
8b27670
[ADD] helper scripts
tberg1234 Jan 13, 2022
9eea3ac
[ADD] full inputs for reinforcment learning finalized
tberg1234 Jan 15, 2022
e3310db
changed helper files
tberg1234 Feb 19, 2022
ae7d7ab
[ADD] all RL stuff
tberg1234 Feb 19, 2022
cb063cf
[ADD] pointing to right folders in launch files
tberg1234 Feb 21, 2022
f70782c
[DEBUG] added things to help with inability to import packages
tberg1234 Feb 22, 2022
03d8b47
[ADD] submodules for gmapping and rl
tberg1234 Feb 22, 2022
06f6a2e
[FIX] git submodule
tberg1234 Feb 22, 2022
cb6d313
Changing name of ros pkg to python3-catkin-pkg
tylerferrara Feb 23, 2022
4c7878a
installing ros-noetic-global-planner
tylerferrara Feb 24, 2022
9fd3046
Installing apt-utils
tylerferrara Feb 24, 2022
7595028
[ADD] additional packages needed
tberg1234 Feb 24, 2022
145f6b3
Merge branch 'frontierSearchForTestingMasterMergeV2' of github.com:NE…
tberg1234 Feb 24, 2022
bc8abe2
frontier based meetings
yshah9103 Mar 1, 2022
33855a7
TODO: explorer early meeting start
yshah9103 Mar 1, 2022
48eb40a
test meeting more
yshah9103 Mar 1, 2022
3ebb70d
final before merge
yshah9103 Mar 2, 2022
ff6bd2d
[ADD] frontier publish for state machine and move base reset file
tberg1234 Mar 2, 2022
4511583
[FIX] dockerfile for singularity
tberg1234 Mar 2, 2022
678ca45
[FIX] pose publish bugs
tberg1234 Mar 2, 2022
81549e4
Merge branch 'main' into state_machine_merge_test
yshah9103 Mar 2, 2022
faf911d
merging
yshah9103 Mar 3, 2022
5df0799
frontiers merged
yshah9103 Mar 3, 2022
872f198
latest tweaks, methods changed for full argos sim
nikopoulospet Mar 8, 2022
b6a1389
Merge branch 'SM_add_merge_service' into state_frontier_map_merge
AshayAswale Mar 8, 2022
b878ef2
[bugfix] compilation error fix
AshayAswale Mar 15, 2022
91241e2
parameter fixes for the smaller maze
AshayAswale Mar 15, 2022
8cdd38c
Updated submodules coms and tb3_sims
AshayAswale Mar 15, 2022
d89fc67
[bugfix] for turtlebot localmap population
AshayAswale Mar 15, 2022
ea43416
Updating latest coms
tylerferrara Mar 16, 2022
40eda3f
Using static tb3
tylerferrara Mar 16, 2022
7e3a5d6
Changing submodule url from git to https
tylerferrara Mar 16, 2022
dbacea4
Removing submodules
tylerferrara Mar 16, 2022
1a63166
Adding static submodules
tylerferrara Mar 16, 2022
0baebea
removed git coms submodule
AshayAswale Mar 18, 2022
334cc5a
Merge remote-tracking branch 'origin/main' into state_frontier_map_merge
AshayAswale Mar 18, 2022
34d848c
Added the required dir
AshayAswale Mar 18, 2022
371d13e
added test dir to gitignore
AshayAswale Mar 18, 2022
1f658c0
[hotfix] added static publisher for /robot/map to /robot/odom
AshayAswale Mar 18, 2022
a8866ce
connection check in namespace
AshayAswale Mar 18, 2022
e4508ef
coauthor: @cj-mclaughlin
AshayAswale Mar 18, 2022
12c101e
Add files via upload
tberg1234 Mar 27, 2022
1ec7854
Add files via upload
tberg1234 Mar 27, 2022
ce820b3
Update README.txt
tberg1234 Mar 27, 2022
e686db0
test changes
yshah9103 Mar 27, 2022
1e7346e
Update a2c_v3_trained_for_state_machine.py
tberg1234 Mar 27, 2022
795bb40
Update a2c_v3_trained_for_state_machine.py
tberg1234 Mar 28, 2022
dd7da9e
Update empty_world.launch
tberg1234 Mar 28, 2022
13dbb06
Add files via upload
tberg1234 Mar 28, 2022
1e3ae7c
Create model.config
tberg1234 Mar 28, 2022
a1b07c5
Add files via upload
tberg1234 Mar 28, 2022
2832ec5
Update multi_turtlebot3_all.launch
tberg1234 Mar 28, 2022
9b5d99b
Update multi_turtlebot3_slam.launch
tberg1234 Mar 28, 2022
f46d098
Update multi_turtlebot3_single.launch
tberg1234 Mar 28, 2022
fad3b60
Update multi_turtlebot3_slam.launch
tberg1234 Mar 28, 2022
f126a2e
robots patch other robots' locations with a empty squares in maps
AshayAswale Mar 28, 2022
662e3c5
minor fixes at multiple places for integration to work
AshayAswale Mar 28, 2022
1a347f3
Merge branch 'state_frontier_map_merge' of github.com:NESTLab/2122_Mu…
AshayAswale Mar 28, 2022
e09830f
Update a2c_v3_trained_for_state_machine.py
tberg1234 Mar 28, 2022
e01e750
dump change
yshah9103 Mar 29, 2022
4ca7c42
Merge branch 'state_frontier_map_merge' of github.com:NESTLab/2122_Mu…
yshah9103 Mar 29, 2022
bcdb7a7
Starting locations as the first meet locations
AshayAswale Mar 29, 2022
08af9c2
debug messages are with robot names in state machine
AshayAswale Mar 29, 2022
d9fd4b9
robot white patches are distance driven
AshayAswale Mar 29, 2022
81d8ba5
Merge branch 'state_frontier_map_merge' of github.com:NESTLab/2122_Mu…
AshayAswale Mar 29, 2022
d9a83d8
Fixed the connection checker for decentralization
AshayAswale Mar 29, 2022
281ebdb
Update frontier_clustering.py
tberg1234 Mar 29, 2022
26f27a8
Update a2c_v3_trained_for_state_machine.py
tberg1234 Mar 29, 2022
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: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,5 @@ CATKIN_IGNORE

# Coveralls
.coverage
.idea/
coms/coms/test1/*
4 changes: 0 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,4 +0,0 @@
[submodule "turtlebot3_simulations"]
path = turtlebot3_simulations
url = https://github.com/NESTLab/turtlebot3_simulations.git
branch = noetic-devel
76 changes: 76 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
"files.associations": {
"array": "cpp",
"string": "cpp",
"string_view": "cpp",
"unordered_map": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"csignal": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"any": "cpp",
"atomic": "cpp",
"hash_map": "cpp",
"hash_set": "cpp",
"strstream": "cpp",
"*.tcc": "cpp",
"bitset": "cpp",
"chrono": "cpp",
"codecvt": "cpp",
"complex": "cpp",
"condition_variable": "cpp",
"cstdint": "cpp",
"deque": "cpp",
"forward_list": "cpp",
"list": "cpp",
"unordered_set": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"map": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"ratio": "cpp",
"regex": "cpp",
"set": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"future": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"ostream": "cpp",
"shared_mutex": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"thread": "cpp",
"cfenv": "cpp",
"cinttypes": "cpp",
"typeindex": "cpp",
"typeinfo": "cpp",
"variant": "cpp",
"bit": "cpp"
}
}
14 changes: 13 additions & 1 deletion Dockerfile
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,20 @@ RUN git clone https://github.com/ilpincy/argos3-kheperaiv.git; \
RUN sudo apt-get update; \
sudo apt-get upgrade -y; \
sudo apt-get install -y \
apt-utils \
python-is-python3 \
ros-noetic-octomap \
ros-noetic-octomap-msgs \
iproute2 \
ros-noetic-catkin \
python3-catkin-tools \
libtf2-ros-dev
libtf2-ros-dev \
ros-noetic-global-planner ;

RUN pip install gym tensorflow ;

RUN apt install wget
RUN wget https://raw.githubusercontent.com/NESTLab/turtlebot3_simulations/local_costmap_fix/turtlebot3_gazebo/costmap_common_params_burger_local.yaml -P /opt/ros/noetic/share/turtlebot3_navigation/param/

# Add ROS dependent scripts
RUN rosdep init; \
Expand All @@ -87,6 +94,11 @@ RUN rosdep init; \
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/argos3:/opt/ros/noetic/lib" >> ~/.bashrc; \
echo "export ARGOS_PLUGIN_PATH=$HOME/catkin_ws/src/argos_bridge/ros_lib_links" >> ~/.bashrc; \
echo "export ARGOS_PLUGIN_PATH=$ARGOS_PLUGIN_PATH:$HOME/catkin_ws/devel/lib" >> ~/.bashrc

COPY . /root/catkin_ws/src

EXPOSE 8080

CMD ["chmod a+rwx /root -R"]

CMD ["/root/catkin_ws/src/entrypoint.sh"]
Binary file added Metrics/Run2/Distance_vs_Time_For_tb3_0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Metrics/Run3/Distance_vs_Time_For_tb3_0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 12 additions & 3 deletions coms/coms/src/nodes/merge_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ def gmapping_cb(self, msg: OccupancyGrid) -> None:
if self.logging:
self.bag.write('map', msg)


self.map_header = msg.header
self.map_info = msg.info
# breakpoint()
MergeHandler.parse_and_save(msg, self.latest_map)
# unpack gmapping
Expand Down Expand Up @@ -153,10 +154,18 @@ def serve_map(self, _) -> GetMapResponse:
def create_occupancy_msg(self, seq: int) -> OccupancyGrid:
occ = OccupancyGrid()
# header
occ.header.seq = seq
# metadata
# occ.header.seq = seq
# occ.header.frame_id = "tb3_"+self.robot_name[-1]+"/map"
# occ.header.stamp = rospy.Time.now()

# # metadata
# occ.info.resolution = 0.05000000074505806
# occ.info.origin.orientation.w = 1.0
occ.header = self.map_header
occ.info = self.map_info
occ.info.height = self.latest_map.shape[0]
occ.info.width = self.latest_map.shape[1]

# data
occ.data = tuple(numpy_to_ros(self.latest_map.flatten()))
return occ
Expand Down
Empty file added coms/coms/test1/dummy_file
Empty file.
21 changes: 21 additions & 0 deletions docker-compose-image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: '2'
services:
novnc:
image: tberg1234/2122_multidroneindoorslam:latest
environment:
# Adjust to your screen size
- DISPLAY_WIDTH=1366
- DISPLAY_HEIGHT=768
- RUN_XTERM=no
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun:/dev/net/tun"
- /dev/null:/dev/null
privileged: true
ports:
- "8080:8080"
networks:
- x11
networks:
x11:
34 changes: 34 additions & 0 deletions frontier_rl/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
INSTRUCTIONS:

To get the image and start the container:

docker pull tberg1234/2122_multidroneindoorslam:latest

docker-compose -f docker-compose-image.yaml up

To get into the container:

docker exec -it 2122_multidroneindoorslam_novnc_1 /bin/bash

Once inside container open 3 shells using the above command and run:

1. roslaunch a3c_turtlebot3 setup.launch
2. rosrun multi_map_ros move_base_reset.py
3. roslaunch a3c_turtlebot3 start_a2c_training.launch

Once you run the last command the training will begin. You can view the progress in the web browser (http://localhost:8080/vnc.html), but you can know it is done when the final (3rd) roslaunch finishes cleanly and returns.

To run trained model on one robo inclusing explorationt:

1. roslaunch a3c_turtlebot3 setup.launch
2. rosrun multi_map_ros move_base_reset.py
3. roslaunch a3c_turtlebot3 start_trained_a2c_v3.launch

To run trained model with publishing frontiers for state machine integration:

rosrun a3c_turtlebot3 a2c_v3_trained_for_state_machine.py
roslaunch a3c_turtlebot3 full_start_trained_a2c_v3_for_state_machine.launch

MAKE SURE TO DOWNLOAD MODEL FILES WHICH ARE TOO LARGE FOR GIT - in our drive under ML_Model


45 changes: 45 additions & 0 deletions frontier_rl/openai_examples_projects/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
**Edit a file, create a new file, and clone from Bitbucket in under 2 minutes**

When you're done, you can delete the content in this README and update the file with details for others getting started with your repository.

*We recommend that you open this README in another tab as you perform the tasks below. You can [watch our video](https://youtu.be/0ocf7u76WSo) for a full demo of all the steps in this tutorial. Open the video in a new tab to avoid leaving Bitbucket.*

---

## Edit a file

You’ll start by editing this README file to learn how to edit a file in Bitbucket.

1. Click **Source** on the left side.
2. Click the README.md link from the list of files.
3. Click the **Edit** button.
4. Delete the following text: *Delete this line to make a change to the README from Bitbucket.*
5. After making your change, click **Commit** and then **Commit** again in the dialog. The commit page will open and you’ll see the change you just made.
6. Go back to the **Source** page.

---

## Create a file

Next, you’ll add a new file to this repository.

1. Click the **New file** button at the top of the **Source** page.
2. Give the file a filename of **contributors.txt**.
3. Enter your name in the empty file space.
4. Click **Commit** and then **Commit** again in the dialog.
5. Go back to the **Source** page.

Before you move on, go ahead and explore the repository. You've already seen the **Source** page, but check out the **Commits**, **Branches**, and **Settings** pages.

---

## Clone a repository

Use these steps to clone from SourceTree, our client for using the repository command-line free. Cloning allows you to work on your files locally. If you don't yet have SourceTree, [download and install first](https://www.sourcetreeapp.com/). If you prefer to clone from the command line, see [Clone a repository](https://confluence.atlassian.com/x/4whODQ).

1. You’ll see the clone button under the **Source** heading. Click that button.
2. Now click **Check out in SourceTree**. You may need to create a SourceTree account or log in.
3. When you see the **Clone New** dialog in SourceTree, update the destination path and name if you’d like to and then click **Clone**.
4. Open the directory you just created to see your repository’s files.

Now that you're more familiar with your Bitbucket repository, go ahead and add a new file locally. You can [push your change back to Bitbucket with SourceTree](https://confluence.atlassian.com/x/iqyBMg), or you can [add, commit,](https://confluence.atlassian.com/x/8QhODQ) and [push from the command line](https://confluence.atlassian.com/x/NQ0zDQ).
Loading