This repo is the entire ROS 2 workspace (galaxsea_ws). Packages live in src/:
| Path | What it is |
|---|---|
src/galaxsea |
Our boat code (controllers, lidar preprocessing, custom Gazebo worlds/models) |
src/ROS-TCP-Endpoint |
Unity ROS-TCP-Endpoint (main-ros2), as a git submodule, for talking to the Unity simulator |
The roboboat-docker development image already ships a clone of this workspace at /root/galaxsea_ws. To clone it yourself, include the submodules:
cd /root
git clone --recurse-submodules https://github.com/RoboSub-UTD/galaxsea_wsIf you already cloned without --recurse-submodules, fetch the submodules with
git submodule update --init --recursiveimportant: run these from the workspace root (galaxsea_ws), not from src
- Build the workspace
colcon build --merge-install- Source the installation
. install/setup.bash- Launch the gazebo simulation using
ros2 launch vrx_gz competition.launch.pyAfter it launches, you should see a Gazebo GUI with a boat on the water. If you don't, try running
xhost +in a new terminal in your host computer. If it still fails, check your run script for allowing displays.
- Run the keyboard boat controller using
ros2 run galaxsea boat_controllerUsing waxd you can move the boat around the lake
Start the endpoint the Unity simulator connects to:
ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=0.0.0.0- Add the path to the custom models and worlds to $GZ_SIM_RESOURCE_PATH
export GZ_SIM_RESOURCE_PATH="/root/galaxsea_ws/src/galaxsea/custom_simulations/worlds:/root/galaxsea_ws/src/galaxsea/custom_simulations/models:$GZ_SIM_RESOURCE_PATH"Make sure to put your path in case it is different
- Launch the new world using
ros2 launch vrx_gz competition.launch.py world:=task_onechange task_one to whatever the world is called