11/28/23
Recommended File Structure
- Install Virtuoso and all other ROS2 dependencies being built from source within one workspace (e.g. dev_ws)
- This makes building Virtuoso simpler
~/mrg
└───vrx_ws
└───dev_ws
│ └───build (auto-generated during a build)
│ └───install (auto-generated during a build)
│ └───log (auto-generated during a build)
│ └───src
│ └───Virtuoso
| └───ublox_dgnss
| └───urg_node
System Requirements
Hardware
- 8 Gb of RAM
- Nvidia Graphics Card, e.g. Nvidia GTX 650
- Modern multi-core CPU, e.g. Intel Core i5
- A gamepad (such as Logitech F310) is recommended for driving the WAM-V in simulated world
Software
- Ubuntu Desktop 22.04 Jammy (64-bit)
- ROS 2 Humble
- See ROS Setup
- Gazebo Garden
- See Gazebo
- additional dependencies
sudo apt install python3-sdformat13 ros-humble-ros-gzgarden ros-humble-xacro
Install VRX
Set up the Virtual RobotX (VRX) Simulation https://github.com/osrf/vrx/wiki/installation_tutorial
- Create vrx workspace and clone the vrx repo
mkdir -p ~/vrx_ws/src
cd ~/vrx_ws/src
git clone https://github.com/osrf/vrx.git
- build workspace
cd vrx_ws
colcon build --merge-install
- source the setup script
source install/setup.bash
Run VRX
- Spawn a USV in Sydney Regatta environment (2023 RobotX venue)
- This can take some time due to size of the environment
- For initial launch, it will also download 3D models from the vrx collection on Fuel
ros2 launch vrx_gz competition.launch.py world:=sydney_regatta
Install Virtuoso
- Clone the repo
cd dev_ws/src
git clone git@github.com:gt-marine-robotics-group/Virtuoso.git
Install IMU and Lidar packages
Note: you can skip this step if you are not using a physical sensor
Install Ublox-Dgnss
- This package is only used for communicating with the physical IMU we have and not needed for simulation
- You may also need to create a udev rule as directed in their README.md
cd dev_ws/src git clone https://github.com/aussierobots/ublox_dgnss
Install urg_node
- This package is only used for communicating with the physical Hokuyo lidar and not needed for simulation
# cd into dev_ws/src git clone -b ros2-devel https://github.com/ros-drivers/urg_node.git
Install remaining dependencies
- Install all of Virtuoso’s dependencies that are not built from source
- If sensor dependencies were skipped, you may see “some packages were not found”.
# cd into dev_ws
rosdep install --from-paths src/Virtuoso --ignore-src -r
- If you get error:
rosdep installation not initalized yet
sudo rosdep init
rosdep update
Build Virtuoso
- Build the
virtuoso_autonomy
package and all of its dependencies
colcon build --packages-up-to virtuoso_autonomy
- If not using physical sensors:
colcon build --packages-up-to virtuoso_autonomy --packages-ignore virtuoso_sensors
- If you get error: Cmake cannot find package configuration file provided by “pcl_ros”, run:
sudo apt install ros-humble-pcl-ros
Running Virtuoso in Simulation
- Launch VRX using the pre-built URDF in
Virtuoso/utils/<competition>
- These custom URDF files were built from
.yaml
files inVirtuoso/utils/urdf/...
to configure the WAM-V simulation motors and sensors
- These custom URDF files were built from
# cd into mrg
source vrx_ws/install/setup.bash
ros2 launch vrx_gz competition.launch.py urdf:=dev_ws/src/virtuoso/utils/urdf/vrx/x_drive/usv.urdf