Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
b19c25c
Initial executive work.
kbrowne15 Mar 3, 2023
87e66c8
More executive work.
kbrowne15 Mar 9, 2023
028f698
Merge branch 'ros2' into ros2-executive
kbrowne15 Mar 27, 2023
69a7e71
More executive progress
kbrowne15 Mar 30, 2023
00b3244
More executive work
kbrowne15 Mar 31, 2023
35569b3
Executive is compiling.
kbrowne15 Apr 3, 2023
0043cfd
Started working on the executive tools.
kbrowne15 Apr 3, 2023
ec15ce9
Finished executive data to disk tool.
kbrowne15 Apr 3, 2023
f4ecd6a
Merge branch 'ros2' into ros2-executive
kbrowne15 Apr 3, 2023
a971482
More executive tools work.
kbrowne15 Apr 3, 2023
1335853
More progress
kbrowne15 Apr 3, 2023
3514e4c
COnverted 2 more executive tools to ros2
kbrowne15 Apr 4, 2023
1ae1fc4
Converted the executive simple move tool to ros2
kbrowne15 Apr 5, 2023
a4db604
More progress.
kbrowne15 Apr 6, 2023
dd60358
More progress
kbrowne15 Apr 10, 2023
340f1ba
More teleop tool progress
kbrowne15 Apr 11, 2023
0bdf416
Finished converting executive tools to ros2
kbrowne15 Apr 17, 2023
d1ff874
Transformed sys_monitor, needed to not start in FAULT mode
ana-GT Jun 1, 2024
49ede36
Hanging in pmc driver
ana-GT Jun 3, 2024
fa0cf5f
Deleted most Debug messages. ConfigClient works when adding a new nod…
ana-GT Jun 4, 2024
d94d9dd
Put back the configClient Set function in executive and deleted debug…
ana-GT Jun 4, 2024
e9c6613
Added executive
ana-GT Jun 4, 2024
4837921
Delete more debug messages
ana-GT Jun 5, 2024
1502d6c
Added lines to pull gazebo >= 11.13, which supports wideanglecamera f…
ana-GT Jun 5, 2024
59e1080
Added fix on time calculation that was making EKF come with wrong tim…
ana-GT Jun 5, 2024
8e18178
Cleaned up code. Works for undock and motion. Cameras are also visible
ana-GT Jun 5, 2024
0515af6
Added initial changes for ns. Still failing in the spawn
ana-GT Jun 6, 2024
7cbb0fa
Added spawn for ns and no-ns
ana-GT Jun 6, 2024
4a35aa8
Works for namespaced bumble and non-ns robot
ana-GT Jun 6, 2024
ca478be
Merge pull request #1 from traclabs/ros2_executive_ns
ana-GT Jun 6, 2024
b5f5452
Forgot to add the namespace for synthetic
ana-GT Jun 6, 2024
c8360ed
Merge branch 'ros2_executive_ns' into ros2_executive
ana-GT Jun 6, 2024
ef66e54
Merge remote-tracking branch 'upstream/ros2' into ros2_executive
ana-GT Dec 11, 2024
08a8c2c
Added time at the end of assertFault
ana-GT Dec 11, 2024
9b154a7
Merge pull request #2 from traclabs/sync/merge_latest_nasa_ros2
ana-GT Dec 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion astrobee/config/robots/sim.config
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ agent_name = "sim"

heartbeat_queue_size = 20

nodes_not_running = {"light_flow"}
nodes_not_running = {"dds_ros_bridge", "astrobee_astrobee_bridge", "light_flow", "data_bagger", "handrail_detect", "image_sampler", "pico_driver", "planner_qp"}

bags_save_directory = "/tmp/bags"

Expand Down
4 changes: 2 additions & 2 deletions astrobee/config/simulation/simulation.config
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ disable_cameras_on_speedup = true;
-- cost. Setting the rate to zero effectively disables the camera. By default
-- we only enable the haz_cam, because it's needed for obstacle detection.

nav_cam_rate = 0.0;
dock_cam_rate = 0.0;
nav_cam_rate = 1.0;
dock_cam_rate = 1.0;
perch_cam_rate = 5.0;
haz_cam_rate = 5.0;
105 changes: 62 additions & 43 deletions astrobee/launch/astrobee.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@


from utilities.utilities import *

from launch.actions import GroupAction
from launch_ros.actions import PushRosNamespace

def generate_launch_description():
robot_description = Command(['xacro ', get_path('urdf/model.urdf.xacro', 'description'),
Expand Down Expand Up @@ -63,66 +64,84 @@ def generate_launch_description():
# Set the TF prefix, create a robot description and joint state publisher
Node(
package="robot_state_publisher",
namespace="",
namespace=LaunchConfiguration("ns"),
executable="robot_state_publisher",
name="robot_state_publisher",
parameters=[{'robot_description': ParameterValue(robot_description) }],
parameters=[
{'use_sim_time': True},
{'robot_description': ParameterValue(robot_description) }
],
),

# If we need to load synthetic drivers (we are not running on a real robot)
# TODO(asymingt) - pass nodes, spurn and extra into gazebo
IncludeLaunchDescription(
get_launch_file("launch/controller/synthetic.launch.py"),
launch_arguments={
"world": LaunchConfiguration("world"), # Don't start driver nodes
"ns" : LaunchConfiguration("ns"), # Prevent node
"sim" : LaunchConfiguration("sim"), # Launch node group
"pose" : LaunchConfiguration("pose"), # Inject extra nodes
"bag" : LaunchConfiguration("bag"), # Debug a node set
"robot_description" : robot_description, # Robot description
}.items(),
condition=UnlessCondition(LaunchConfiguration("drivers"))
GroupAction(
actions=[
PushRosNamespace(LaunchConfiguration('ns')),
IncludeLaunchDescription(
get_launch_file("launch/controller/synthetic.launch.py"),
launch_arguments={
"world": LaunchConfiguration("world"), # Don't start driver nodes
"ns" : LaunchConfiguration("ns"), # Prevent node
"sim" : LaunchConfiguration("sim"), # Launch node group
"pose" : LaunchConfiguration("pose"), # Inject extra nodes
"bag" : LaunchConfiguration("bag"), # Debug a node set
"robot_description" : robot_description, # Robot description
}.items(),
condition=UnlessCondition(LaunchConfiguration("drivers"))
)
]
),

# LLP
# <!-- Connect and update environment variables if required -->
# <machine unless="$(eval arg('llp')=='local')" timeout="10"
# name="llp" address="$(arg llp)" user="astrobee" password="astrobee"
# env-loader="/opt/astrobee/env_wrapper.sh" default="true">
# </machine>
IncludeLaunchDescription(
get_launch_file("launch/robot/LLP.launch.py"),
launch_arguments={
"drivers": LaunchConfiguration("drivers"), # Don't start driver nodes
"spurn" : LaunchConfiguration("spurn"), # Prevent node
"nodes" : LaunchConfiguration("nodes"), # Launch node group
"extra" : LaunchConfiguration("extra"), # Inject extra nodes
"debug" : LaunchConfiguration("debug"), # Debug a node set
"output" : LaunchConfiguration("output"),
"gtloc" : LaunchConfiguration("gtloc"), # Use Ground Truth Localizer
}.items(),
condition=LaunchConfigurationNotEquals("llp", "disabled"),
# <!-- Connect and update environment variables if required -->
# <machine unless="$(eval arg('llp')=='local')" timeout="10"
# name="llp" address="$(arg llp)" user="astrobee" password="astrobee"
# env-loader="/opt/astrobee/env_wrapper.sh" default="true">
# </machine>
GroupAction(
actions=[
PushRosNamespace(LaunchConfiguration('ns')),
IncludeLaunchDescription(
get_launch_file("launch/robot/LLP.launch.py"),
launch_arguments={
"drivers": LaunchConfiguration("drivers"), # Don't start driver nodes
"spurn" : LaunchConfiguration("spurn"), # Prevent node
"nodes" : LaunchConfiguration("nodes"), # Launch node group
"extra" : LaunchConfiguration("extra"), # Inject extra nodes
"debug" : LaunchConfiguration("debug"), # Debug a node set
"output" : LaunchConfiguration("output"),
"gtloc" : LaunchConfiguration("gtloc"), # Use Ground Truth Localizer
}.items(),
condition=LaunchConfigurationNotEquals("llp", "disabled"),
)
]
),

# MLP
# <!-- Connect and update environment variables if required -->
# <machine unless="$(eval arg('mlp')=='local')" timeout="10"
# name="mlp" address="$(arg mlp)" user="astrobee" password="astrobee"
# env-loader="/opt/astrobee/env_wrapper.sh" default="true">
# </machine>
IncludeLaunchDescription(
get_launch_file("launch/robot/MLP.launch.py"),
launch_arguments={
# <!-- Connect and update environment variables if required -->
# <machine unless="$(eval arg('mlp')=='local')" timeout="10"
# name="mlp" address="$(arg mlp)" user="astrobee" password="astrobee"
# env-loader="/opt/astrobee/env_wrapper.sh" default="true">
# </machine>
GroupAction(
actions=[
PushRosNamespace(LaunchConfiguration('ns')),
IncludeLaunchDescription(
get_launch_file("launch/robot/MLP.launch.py"),
launch_arguments={
"drivers": LaunchConfiguration("drivers"), # Don't start driver nodes
"spurn" : LaunchConfiguration("spurn"), # Prevent node
"nodes" : LaunchConfiguration("nodes"), # Launch node group
"extra" : LaunchConfiguration("extra"), # Inject extra nodes
"debug" : LaunchConfiguration("debug"), # Debug a node set
"output" : LaunchConfiguration("output"),
"gtloc" : LaunchConfiguration("gtloc"), # Use Ground Truth Localizer
}.items(),
condition=LaunchConfigurationNotEquals("llp", "disabled"),
),
}.items(),
condition=LaunchConfigurationNotEquals("llp", "disabled"),
)
]
)

])


Expand Down
1 change: 1 addition & 0 deletions astrobee/launch/controller/rviz.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ def generate_launch_description():
namespace="",
executable="rviz2",
name="rviz_node",
parameters=[{'use_sim_time': True}],
arguments=["-d", PathJoinSubstitution([get_package_share_directory("astrobee"),"resources/rviz",LaunchConfiguration("rviz_file")])],
respawn=True,
),
Expand Down
9 changes: 6 additions & 3 deletions astrobee/launch/robot/LLP.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,14 @@ def generate_launch_description():
package='ctl',
plugin='ctl::CtlComponent',
name='ctl',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
ComposableNode(
package='fam',
plugin='fam::FamComponent',
name='fam',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
]
),
ComposableNodeContainer(
Expand Down Expand Up @@ -193,7 +195,8 @@ def generate_launch_description():
package='light_flow',
plugin='light_flow::LightFlowComponent',
name='light_flow',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
]
),
])
74 changes: 45 additions & 29 deletions astrobee/launch/robot/MLP.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,14 @@ def generate_launch_description():
package='localization_manager',
plugin='localization_manager::LocalizationManagerComponent',
name='localization_manager',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
ComposableNode(
package='ground_truth_localizer',
plugin='ground_truth_localizer::GroundTruthLocalizerComponent',
name='ground_truth_localizer',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
# ComposableNode(
# package='image_sampler',
# plugin='image_sampler::ImageSampler',
Expand All @@ -85,7 +87,8 @@ def generate_launch_description():
package='localization_manager',
plugin='localization_manager::LocalizationManagerNodelet',
name='localization_manager',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
# ComposableNode(
# package='image_sampler',
# plugin='image_sampler::ImageSampler',
Expand Down Expand Up @@ -226,25 +229,28 @@ def generate_launch_description():
package='mapper',
plugin='mapper::MapperComponent',
name='mapper',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
]
),
ComposableNodeContainer(
name='mlp_management',
namespace='',
package='rclcpp_components',
executable='component_container',
executable='component_container_mt',
composable_node_descriptions=[
# ComposableNode(
# package='executive',
# plugin='executive::Executive',
# name='executive',
# extra_arguments=[{'use_intra_process_comms': True}]),
# ComposableNode(
# package='access_control',
# plugin='access_control::AccessControl',
# name='access_control',
# extra_arguments=[{'use_intra_process_comms': True}]),
ComposableNode(
package='executive',
plugin='executive::Executive',
name='executive',
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
ComposableNode(
package='access_control',
plugin='access_control::AccessControl',
name='access_control',
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
]
),
ComposableNodeContainer(
Expand Down Expand Up @@ -291,11 +297,12 @@ def generate_launch_description():
executable='component_container',
condition=UnlessCondition(LaunchConfiguration("drivers")),
composable_node_descriptions=[
# ComposableNode(
# package='sys_monitor',
# plugin='sys_monitor::SysMonitor',
# name='sys_monitor',
# extra_arguments=[{'use_intra_process_comms': True}]),
ComposableNode(
package='sys_monitor',
plugin='sys_monitor::SysMonitor',
name='sys_monitor',
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
]
),
ComposableNodeContainer(
Expand Down Expand Up @@ -348,17 +355,20 @@ def generate_launch_description():
package='choreographer',
plugin='choreographer::ChoreographerComponent',
name='choreographer',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
ComposableNode(
package='planner_trapezoidal',
plugin='planner_trapezoidal::PlannerTrapezoidalComponent',
name='planner_trapezoidal',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
ComposableNode(
package='framestore',
plugin='mobility::FrameStore',
name='framestore',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
]
),
ComposableNodeContainer(
Expand All @@ -370,7 +380,8 @@ def generate_launch_description():
ComposableNode(
package='arm',
plugin='arm::ArmComponent',
name='arm'),
name='arm',
parameters=[{'use_sim_time': True}] ),
]
),
ComposableNodeContainer(
Expand All @@ -382,8 +393,10 @@ def generate_launch_description():
ComposableNode(
package='dock',
plugin='dock::DockComponent',
name='dock'),
#extra_arguments=[{'use_intra_process_comms': True}]),
name='dock',
parameters=[{'use_sim_time': True}]
#extra_arguments=[{'use_intra_process_comms': False}]
),
]
),
ComposableNodeContainer(
Expand All @@ -395,8 +408,10 @@ def generate_launch_description():
ComposableNode(
package='perch',
plugin='perch::PerchComponent',
name='perch'),
#extra_arguments=[{'use_intra_process_comms': True}]),
name='perch',
parameters=[{'use_sim_time': True}],
#extra_arguments=[{'use_intra_process_comms': True}]
),
]
),
ComposableNodeContainer(
Expand All @@ -423,7 +438,8 @@ def generate_launch_description():
package='states',
plugin='states::StatesComponent',
name='states',
extra_arguments=[{'use_intra_process_comms': False, 'use_sim_time': True}]),
parameters=[{'use_sim_time': True}],
extra_arguments=[{'use_intra_process_comms': False}]),
]
),
])
Expand Down
Loading
Loading