vrx_2023 wamv_compliance - osrf/vrx GitHub Wiki
All WAM-V configuration files submitted as part of VRX competition solutions must adhere to the following rules:
-
All components must be contained within one of the component bounding boxes (details here):
-
All thrusters must be contained within one of the thruster bounding boxes (details here):
-
The numbers of each component and thruster in the configuration must be within the limits defined here for components and here for thrusters.
-
Finally, there can only be one thruster in each bounding box. This is to prevent stacking thrusters together in one location, which is physically infeasible.
A list of all supported thrusters and components is given in the allowed thrusters and allowed components files (currently we have only one thruster type).
A number of parameters are available to help configure components and thrusters. These include name
, prefix
, position
, orientation
, x
, y
, z
, R
, P
, Y
, post_Y
, depending on the component or thruster.
- The script
generate_wamv.launch.py
will print error messages if it is called on non-compliant configuration YAML files. - The URDF file will still be created and be able to be used as usual.
- However, it is not a valid configuration for a VRX competition.
Below is some example output produced by generate_wamv.launch.py
when run on non-compliant configuration files:
[INFO] [launch]: All log files can be found below /home/caguero/.ros/log/2022-12-22-22-35-39-966859-cold-3067211
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [generate_wamv.py-1]: process started with pid [3067212]
[generate_wamv.py-1] [INFO] [1671744940.180974378] [configure_wamv]:
[generate_wamv.py-1] Using /home/caguero/my_wamv/example_thruster_config.yaml as the thruster configuration yaml file
[generate_wamv.py-1]
[generate_wamv.py-1] [INFO] [1671744940.181217251] [configure_wamv]:
[generate_wamv.py-1] Trying to open /home/caguero/my_wamv/example_thruster_config.xacro
[generate_wamv.py-1]
[generate_wamv.py-1] [ERROR] [1671744940.184488473] [compliance]: engine second_right is out of bounds
[generate_wamv.py-1] [ERROR] [1671744940.184698986] [compliance]: engine second_right is at xyz=(-2.373776, -1.027135, 0.318237), it must fit in at least one of the following boxes with remaining space:
[generate_wamv.py-1] [ERROR] [1671744940.184906448] [compliance]: <Box name:thruster_compliance_port_aft x:[-1.75, -2.75] y:[1.5,0.5] z:[0.6,-0.6] remaining_space:0>
[generate_wamv.py-1] [ERROR] [1671744940.185110821] [compliance]: <Box name:thruster_compliance_star_aft x:[-1.75, -2.75] y:[-0.5,-1.5] z:[0.6,-0.6] remaining_space:0>
[generate_wamv.py-1] [ERROR] [1671744940.185323194] [compliance]: <Box name:thruster_compliance_port_for x:[1.75, 0.75] y:[1.5,0.5] z:[0.6,-0.6] remaining_space:1>
[generate_wamv.py-1] [ERROR] [1671744940.185535786] [compliance]: <Box name:thruster_compliance_star_for x:[1.75, 0.75] y:[-0.5,-1.5] z:[0.6,-0.6] remaining_space:1>
[generate_wamv.py-1] [ERROR] [1671744940.185748079] [compliance]: <Box name:thruster_compliance_middle x:[1.5, -1.0] y:[0.5,-0.5] z:[0.6,-0.6] remaining_space:1>
[generate_wamv.py-1] [INFO] [1671744940.186929714] [configure_wamv]:
[generate_wamv.py-1] Using /home/caguero/my_wamv/example_component_config.yaml as the component configuration yaml file
[generate_wamv.py-1]
[generate_wamv.py-1] [ERROR] [1671744940.191308478] [compliance]: Too many wamv_camera requested
[generate_wamv.py-1] [ERROR] [1671744940.191511711] [compliance]: maximum of 3 wamv_camera allowed
[generate_wamv.py-1] [ERROR] [1671744940.370982269] [configure_wamv]:
[generate_wamv.py-1] This component/thruster configuration is NOT compliant with the (current) VRX constraints. A urdf file will be created, but please note that the above errors must be fixed for this to be a valid configuration for the VRX competition.
[generate_wamv.py-1]
[generate_wamv.py-1] WAM-V urdf file successfully generated. File location: /home/caguero/my_wamv/wamv_target_2.urdf
[INFO] [generate_wamv.py-1]: process has finished cleanly [pid 3067212]
Note that the URDF file is still created, but these error messages show why your configuration is not compliant.
To reproduce the example above, run the following command using the example non-compliant configuration files given below:
ros2 launch vrx_gazebo generate_wamv.launch.py component_yaml:=`pwd`/example_component_config.yaml thruster_yaml:=`pwd`/example_thruster_config.yaml wamv_target:=`pwd`/wamv_target_2.urdf wamv_locked:=False
engine:
- prefix: "left"
position: "-2.373776 1.027135 0.318237"
orientation: "0.0 0.0 0.0"
- prefix: "right"
position: "-2.373776 -1.027135 0.318237"
orientation: "0.0 0.0 0.0"
# Adding new thruster in non-compliant position
- prefix: "second_right"
position: "-2.373776 -1.027135 0.318237"
orientation: "0.0 0.0 0.0"
# Too many cameras
wamv_camera:
- name: front_left_camera
x: 0.75
y: 0.1
P: ${radians(15)}
- name: front_right_camera
x: 0.75
y: -0.1
P: ${radians(15)}
- name: front_far_left_camera
x: 0.75
y: 0.3
P: ${radians(15)}
- name: front_far_right_camera
x: 0.75
y: -0.3
P: ${radians(15)}
- name: middle_left_camera
x: 0.6
y: 0.4
P: ${radians(15)}
Y: ${radians(90)}
post_Y: ${radians(90)}
Back: WAM-V Compliance | Top: VRX Tutorials | Next: Validation |
---|