Skip to content

Commit bcd523a

Browse files
Merge pull request #18 from incebellipipo/master
new version
2 parents 9d752e3 + 441e7fd commit bcd523a

File tree

117 files changed

+6992
-1882
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+6992
-1882
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"image": "incebellipipo/devcontainer:humble",
33
"customizations": {
4-
"terminalPrompt": "🐳 [container] ${containerName} ${folder}",
4+
"terminalPrompt": "[container] ${containerName} ${folder}",
55
"settings": {
66
"terminal.integrated.shell.linux": "/bin/bash"
77
},

.github/workflows/build-and-push-arm64.yml

Lines changed: 0 additions & 51 deletions
This file was deleted.

.github/workflows/build-and-push.yml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,10 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
configurations:
16-
- ros_distro: 'humble'
17-
arch: 'amd64'
16+
- ros_distro: 'kilted'
1817
- ros_distro: 'jazzy'
19-
arch: 'amd64'
20-
- ros_distro: 'humble'
21-
arch: 'arm64'
22-
- ros_distro: 'jazzy'
23-
arch: 'arm64'
2418

25-
# runs-on: ubuntu-latest
26-
runs-on: ubuntu-22.04
19+
runs-on: ubuntu-latest
2720

2821
steps:
2922
- name: Checkout
@@ -49,5 +42,5 @@ jobs:
4942
build-args: |
5043
ROS_DISTRO=${{ matrix.configurations.ros_distro }}
5144
push: true
52-
platforms: linux/${{ matrix.configurations.arch }}
45+
platforms: linux/amd64,linux/arm64
5346
tags: incebellipipo/cybership:${{ matrix.configurations.ros_distro }}

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# cybership_common
22

3-
This repository is the home of the CyberShip Software Suite a collection of ROS 2 packages that together provide the tools to simulate, visualize, and control autonomous maritime vessels. The suite covers everything from the digital twin (URDF models and visualization) to real-time sensor integration (IMU, motion capture, etc.) and advanced control (dynamic positioning and thrust allocation).
3+
This repository is the home of the CyberShip Software Suite - a collection of ROS 2 packages that together provide the tools to simulate, visualize, and control autonomous maritime vessels. The suite covers everything from the digital twin (URDF models and visualization) to real-time sensor integration (IMU, motion capture, etc.) and advanced control (dynamic positioning and thrust allocation).
44

5-
## Whats Included
5+
## What's Included
66

77
- **cybership_bringup**: Launch files to initialize all the necessary nodes for bringing up a vessel in a ROS 2 environment. This includes hardware drivers, localization, and sensor integration.
88
- **cybership_simulator**: Simple Python scripts for vessel simulation using basic physics. Use these scripts to test vessel behavior in simulation.
@@ -84,7 +84,7 @@ For Simulation:
8484
Use the cybership_simulator package. This runs simplified physics scripts:
8585
8686
### 3. Visualization
87-
Visualize your vessel using the RViz visualization tools provided in the suite. The cybership_viz package sets up RViz with a preconfigured scene showing your vessels URDF model and sensor data overlays. To launch visualization:
87+
Visualize your vessel using the RViz visualization tools provided in the suite. The cybership_viz package sets up RViz with a preconfigured scene showing your vessel's URDF model and sensor data overlays. To launch visualization:
8888
8989
Additionally, the cybership_description package can publish the URDF model via:
9090
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import launch
2+
import launch.actions
3+
import launch.conditions
4+
import launch.launch_description_sources
5+
import launch.substitutions
6+
import launch_ros.substitutions
7+
8+
9+
def generate_launch_description():
10+
11+
ld = launch.LaunchDescription()
12+
13+
vessel_model = launch.substitutions.LaunchConfiguration("vessel_model")
14+
vessel_name = vessel_model
15+
16+
ld.add_action(
17+
launch.actions.DeclareLaunchArgument(
18+
"vessel_model",
19+
description="Vessel model to bring up (drillship|enterprise|voyager)",
20+
)
21+
)
22+
23+
include_drillship = launch.actions.IncludeLaunchDescription(
24+
launch.launch_description_sources.PythonLaunchDescriptionSource(
25+
launch.substitutions.PathJoinSubstitution(
26+
[
27+
launch_ros.substitutions.FindPackageShare("cybership_bringup"),
28+
"launch",
29+
"drillship.launch.py",
30+
]
31+
)
32+
),
33+
condition=launch.conditions.IfCondition(
34+
launch.substitutions.PythonExpression(["'", vessel_model, "' == 'drillship'"])
35+
),
36+
)
37+
38+
include_enterprise = launch.actions.IncludeLaunchDescription(
39+
launch.launch_description_sources.PythonLaunchDescriptionSource(
40+
launch.substitutions.PathJoinSubstitution(
41+
[
42+
launch_ros.substitutions.FindPackageShare("cybership_bringup"),
43+
"launch",
44+
"enterprise.launch.py",
45+
]
46+
)
47+
),
48+
condition=launch.conditions.IfCondition(
49+
launch.substitutions.PythonExpression(["'", vessel_model, "' == 'enterprise'"])
50+
),
51+
)
52+
53+
include_voyager = launch.actions.IncludeLaunchDescription(
54+
launch.launch_description_sources.PythonLaunchDescriptionSource(
55+
launch.substitutions.PathJoinSubstitution(
56+
[
57+
launch_ros.substitutions.FindPackageShare("cybership_bringup"),
58+
"launch",
59+
"voyager.launch.py",
60+
]
61+
)
62+
),
63+
condition=launch.conditions.IfCondition(
64+
launch.substitutions.PythonExpression(["'", vessel_model, "' == 'voyager'"])
65+
),
66+
)
67+
68+
include_localization = launch.actions.IncludeLaunchDescription(
69+
launch.launch_description_sources.PythonLaunchDescriptionSource(
70+
launch.substitutions.PathJoinSubstitution(
71+
[
72+
launch_ros.substitutions.FindPackageShare("cybership_bringup"),
73+
"launch",
74+
"localization.launch.py",
75+
]
76+
)
77+
),
78+
launch_arguments={
79+
"vessel_model": vessel_model,
80+
"vessel_name": vessel_name,
81+
}.items(),
82+
)
83+
84+
include_dp = launch.actions.IncludeLaunchDescription(
85+
launch.launch_description_sources.PythonLaunchDescriptionSource(
86+
launch.substitutions.PathJoinSubstitution(
87+
[
88+
launch_ros.substitutions.FindPackageShare("cybership_dp"),
89+
"launch",
90+
"dp.launch.py",
91+
]
92+
)
93+
),
94+
launch_arguments={
95+
"vessel_model": vessel_model,
96+
"vessel_name": vessel_name,
97+
}.items(),
98+
)
99+
100+
ld.add_action(include_drillship)
101+
ld.add_action(include_enterprise)
102+
ld.add_action(include_voyager)
103+
ld.add_action(include_localization)
104+
ld.add_action(include_dp)
105+
106+
return ld

cybership_bringup/launch/drillship.launch.py

Lines changed: 3 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,10 @@
55
import launch.launch_description_sources
66

77

8-
def include_launch_action_with_config(
9-
vessel_model,
10-
vessel_name,
11-
launch_file,
12-
param_file=""):
13-
14-
bringup_pkg_dir = launch_ros.substitutions.FindPackageShare(
15-
'cybership_bringup')
16-
config_pkg_dir = launch_ros.substitutions.FindPackageShare(
17-
'cybership_config')
18-
19-
launch_arguments = [
20-
('vessel_name', vessel_name),
21-
('vessel_model', vessel_model)
22-
]
23-
24-
if len(param_file) != 0:
25-
launch_arguments.append(
26-
(
27-
'param_file',
28-
launch.substitutions.PathJoinSubstitution(
29-
launch.substitutions.PathJoinSubstitution(
30-
[config_pkg_dir, 'config', vessel_model, param_file]
31-
)
32-
)
33-
)
34-
)
358

36-
return launch.actions.IncludeLaunchDescription(
37-
launch.launch_description_sources.PythonLaunchDescriptionSource(
38-
launch.substitutions.PathJoinSubstitution(
39-
[bringup_pkg_dir, 'launch', 'include', launch_file]
40-
)
41-
),
42-
launch_arguments=launch_arguments
43-
)
9+
10+
from cybership_utilities.launch import include_launch_action_with_config
11+
4412

4513

4614
def generate_launch_description():
@@ -72,13 +40,6 @@ def generate_launch_description():
7240
)
7341
)
7442

75-
# ld.add_action(
76-
# include_launch_action_with_config(
77-
# vessel_model, vessel_name,
78-
# 'robot_localization.launch.py', 'robot_localization.yaml'
79-
# )
80-
# )
81-
8243
ld.add_action(
8344
include_launch_action_with_config(
8445
vessel_model, vessel_name,
@@ -100,11 +61,4 @@ def generate_launch_description():
10061
)
10162
)
10263

103-
# ld.add_action(
104-
# include_launch_action_with_config(
105-
# vessel_model, vessel_name,
106-
# 'urdf_description.launch.py', 'empty.yaml'
107-
# )
108-
# )
109-
11064
return ld

cybership_bringup/launch/enterprise.launch.py

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,8 @@
55
import launch.launch_description_sources
66

77

8-
def include_launch_action_with_config(
9-
vessel_model,
10-
vessel_name,
11-
launch_file,
12-
config_file=""):
8+
from cybership_utilities.launch import include_launch_action_with_config
139

14-
bringup_pkg_dir = launch_ros.substitutions.FindPackageShare(
15-
'cybership_bringup')
16-
config_pkg_dir = launch_ros.substitutions.FindPackageShare(
17-
'cybership_config')
18-
19-
launch_arguments = [
20-
('vessel_name', vessel_name),
21-
('vessel_model', vessel_model)
22-
]
23-
24-
if len(config_file) != 0:
25-
launch_arguments.append(
26-
(
27-
'param_file',
28-
launch.substitutions.PathJoinSubstitution(
29-
launch.substitutions.PathJoinSubstitution(
30-
[config_pkg_dir, 'config', vessel_model, config_file]
31-
)
32-
)
33-
)
34-
)
35-
36-
return launch.actions.IncludeLaunchDescription(
37-
launch.launch_description_sources.PythonLaunchDescriptionSource(
38-
launch.substitutions.PathJoinSubstitution(
39-
[bringup_pkg_dir, 'launch', 'include', launch_file]
40-
)
41-
),
42-
launch_arguments=launch_arguments
43-
)
4410

4511

4612
def generate_launch_description():
@@ -65,13 +31,6 @@ def generate_launch_description():
6531
)
6632
)
6733

68-
# ld.add_action(
69-
# include_launch_action_with_config(
70-
# vessel_model, vessel_name,
71-
# 'robot_localization.launch.py', 'robot_localization.yaml'
72-
# )
73-
# )
74-
7534
ld.add_action(
7635
include_launch_action_with_config(
7736
vessel_model, vessel_name,

0 commit comments

Comments
 (0)