Software Used: Python, Roslaunch, URDF
Purpose
VRX has a large suite of sensors, including lidar, GPS, IMU, and camera. It also offered multiple thruster configurations, including T, X, and H. However, customization of the sensor and thruster configuration was very limited.
The purpose of this project is to allow for easy configuration of sensors and thrusters, such that users can easily set how many they want and where they will be located.
Description
To create a custom configuration:
-
users create a yaml file that outlines their configuration
-
users pass this in as a parameter to a roslaunch script, which runs a Python script
-
the Python script parses the yaml files and creates a custom urdf file that can be used directly by Gazebo
Result
Users can now outline their sensor and thruster configurations by creating a yaml file like so:
wamv_camera:
- name: left_camera
x: 0.75
y: 0.3
z: 1.8
P: ${radians(15)}
Y: ${radians(90)}
post_Y: ${radians(90)}
- name: right_camera
x: 0.75
y: -0.3
z: 1.8
P: ${radians(15)}
Y: ${radians(-90)}
post_Y: ${radians(-90)}
wamv_imu:
- name: imu_wamv
wamv_p3d:
- name: p3d_wamv
lidar:
- name: lidar_wamv
z: 1.5
then create a custom urdf file by running:
roslaunch vrx_gazebo generate_wamv.launch thruster_yaml:=<thruster yaml> sensor_yaml:=<sensor yaml> wamv_target:=<output file>
then use their custom configuration in the simulation by running:
roslaunch vrx_gazebo sandisland.launch urdf:=<output file>
This results in a simple, easy, and reliable way to create custom boat configurations. This is very valuable for both VRX competitors, as well as researchers using the simulation for other autonomous surface vessel projects.

Figure 15: Customizable sensor configuration

Figure 16: Customizable sensor configuration

Figure 17: Customizable thruster configuration

Figure 18: Customizable thruster configuration
Relevant Commits