-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into kp/ban-exceptions
Signed-off-by: Luca Della Vedova <[email protected]>
- Loading branch information
Showing
82 changed files
with
2,149 additions
and
143 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
name: workcell_editor | ||
on: | ||
pull_request: | ||
push: | ||
branches: [ main ] | ||
defaults: | ||
run: | ||
shell: bash | ||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
docker_image: ['ros:jazzy-ros-base'] | ||
container: | ||
image: ${{ matrix.docker_image }} | ||
timeout-minutes: 30 | ||
steps: | ||
- name: Deps | ||
run: | | ||
apt update && apt install -y git curl libclang-dev libasound2-dev libudev-dev libgtk-3-dev python3-pip python3-vcstool | ||
- name: Setup Rust | ||
uses: dtolnay/[email protected] | ||
with: | ||
components: clippy, rustfmt | ||
- name: Install colcon cargo | ||
run: | | ||
cargo install --debug cargo-ament-build # --debug is faster to install | ||
pip install colcon-cargo --break-system-packages | ||
pip install colcon-ros-cargo --break-system-packages | ||
- uses: actions/checkout@v2 | ||
- name: vcs | ||
# TODO(luca) Go back to cloning a tag when a new version is released with jazzy repos file | ||
run: | | ||
git clone https://github.com/ros2-rust/ros2_rust.git | ||
cd ros2_rust | ||
git checkout f45a66f47dc727e3ccb13037a6c57923af1446c7 | ||
cd .. | ||
vcs import . < ros2_rust/ros2_rust_jazzy.repos | ||
- name: rosdep | ||
run: | | ||
rosdep update | ||
rosdep install --from-paths . -yir | ||
- name: build | ||
run: /ros_entrypoint.sh colcon build --packages-up-to nexus_workcell_editor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,17 +11,25 @@ jobs: | |
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
docker_image: ['ros:iron-ros-base'] | ||
docker_image: ['ros:jazzy-ros-base'] | ||
container: | ||
image: ${{ matrix.docker_image }} | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v2 | ||
- name: uncrustify | ||
run: | | ||
sudo apt update && sudo apt install -y ros-iron-rmf-utils | ||
/ros_entrypoint.sh ament_uncrustify -c /opt/ros/iron/share/rmf_utils/rmf_code_style.cfg . --language C++ --exclude nexus_endpoints/nexus_endpoints.hpp | ||
# TODO(luca) reintroduce after formatting | ||
#- name: uncrustify | ||
# run: | | ||
# sudo apt update && sudo apt install -y ros-jazzy-rmf-utils | ||
# /ros_entrypoint.sh ament_uncrustify -c /opt/ros/jazzy/share/rmf_utils/rmf_code_style.cfg . --language C++ --exclude nexus_endpoints/nexus_endpoints.hpp | ||
- name: pycodestyle | ||
run: | | ||
sudo apt update && sudo apt install -y pycodestyle curl | ||
pycodestyle nexus_network_configuration/ | ||
- name: Setup Rust | ||
uses: dtolnay/[email protected] | ||
with: | ||
components: clippy, rustfmt | ||
- name: rustfmt | ||
run: | | ||
rustfmt --check --edition 2021 nexus_workcell_editor/src/main.rs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
# NEXUS | ||
![](https://github.com/osrf/nexus/workflows/style/badge.svg) | ||
![](https://github.com/osrf/nexus/workflows/integration_tests/badge.svg) | ||
[![style](https://github.com/osrf/nexus/actions/workflows/style.yaml/badge.svg)](https://github.com/osrf/nexus/actions/workflows/style.yaml) | ||
[![integration_tests](https://github.com/osrf/nexus/actions/workflows/nexus_integration_tests.yaml/badge.svg)](https://github.com/osrf/nexus/actions/workflows/nexus_integration_tests.yaml) | ||
[![workcell_editor](https://github.com/osrf/nexus/actions/workflows/nexus_workcell_editor.yaml/badge.svg)](https://github.com/osrf/nexus/actions/workflows/nexus_workcell_editor.yaml) | ||
|
||
![](./docs/media/nexus_architecture.png) | ||
|
||
|
@@ -9,7 +10,7 @@ A ROS 2 framework which enables configuration and orchestration of process workf | |
For details on architecture and concepts [see](./docs/concepts.md). | ||
|
||
## Requirements | ||
* [ROS 2 Iron](https://docs.ros.org/en/iron/Installation/Ubuntu-Install-Debians.html) on `Ubuntu 22.04` | ||
* [ROS 2 Jazzy](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debians.html) on `Ubuntu 24.04` | ||
|
||
## Setup | ||
|
||
|
@@ -33,12 +34,12 @@ cd ~/ws_nexus/src/ | |
git clone [email protected]:osrf/nexus | ||
vcs import . < nexus/abb.repos | ||
cd ~/ws_nexus | ||
rosdep install --from-paths src --ignore-src --rosdistro iron -y -r | ||
rosdep install --from-paths src --ignore-src --rosdistro jazzy -y -r | ||
``` | ||
|
||
### Build the NEXUS workspace | ||
```bash | ||
source /opt/ros/iron/setup.bash | ||
source /opt/ros/jazzy/setup.bash | ||
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release | ||
``` | ||
|
||
|
@@ -102,10 +103,10 @@ The linter of choice is `uncrustify` and the configuration used may be reference | |
Instead of invoking `uncrustify` directly, use `ament_uncrustify` instead which is a wrapper around a specific version of `uncrustify`. | ||
You may locally run the linter as follows | ||
```bash | ||
sudo apt update && sudo apt install -y ros-iron-rmf-utils # This is a one-time step | ||
source /opt/ros/iron/setup.bash | ||
sudo apt update && sudo apt install -y ros-jazzy-rmf-utils # This is a one-time step | ||
source /opt/ros/jazzy/setup.bash | ||
cd ~/ws_nexus/src/nexus | ||
ament_uncrustify -c /opt/ros/iron/share/rmf_utils/rmf_code_style.cfg . --language C++ --exclude nexus_endpoints/nexus_endpoints.hpp | ||
ament_uncrustify -c /opt/ros/jazzy/share/rmf_utils/rmf_code_style.cfg . --language C++ --exclude nexus_endpoints/nexus_endpoints.hpp | ||
``` | ||
To automatically reformat the code, append `--reformat` to the `ament_uncrustify` line above. | ||
It is highly recommended to audit the changes by the linter before committing. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
Changelog for package nexus_calibration | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
0.1.1 (2023-11-22) | ||
------------------ | ||
|
||
0.1.0 (2023-11-06) | ||
------------------ | ||
* Provides ``nexus_calibration_node`` which can be queried for poses of calibration links within a workcell. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
cmake_minimum_required(VERSION 3.8) | ||
project(nexus_calibration) | ||
|
||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") | ||
add_compile_options(-Wall -Wextra -Wpedantic) | ||
endif() | ||
|
||
# find dependencies | ||
find_package(ament_cmake REQUIRED) | ||
set(dep_pkgs | ||
nexus_endpoints | ||
rclcpp | ||
rclcpp_components | ||
rclcpp_lifecycle | ||
tf2 | ||
VRPN | ||
) | ||
foreach(pkg ${dep_pkgs}) | ||
find_package(${pkg} REQUIRED) | ||
endforeach() | ||
|
||
#=============================================================================== | ||
add_library(nexus_calibration_component SHARED src/calibration_node.cpp) | ||
|
||
ament_target_dependencies(nexus_calibration_component ${dep_pkgs}) | ||
|
||
target_compile_features(nexus_calibration_component INTERFACE cxx_std_17) | ||
|
||
rclcpp_components_register_node(nexus_calibration_component | ||
PLUGIN "nexus::CalibrationNode" | ||
EXECUTABLE nexus_calibration_node | ||
EXECUTOR SingleThreadedExecutor) | ||
|
||
|
||
#=============================================================================== | ||
if(BUILD_TESTING) | ||
|
||
endif() | ||
|
||
#=============================================================================== | ||
install( | ||
TARGETS | ||
nexus_calibration_component | ||
RUNTIME DESTINATION lib/${PROJECT_NAME} | ||
LIBRARY DESTINATION lib | ||
ARCHIVE DESTINATION lib | ||
) | ||
|
||
ament_package() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
## nexus_calibration | ||
|
||
This package provides a ROS 2 Lifecyle node, `nexus_calibration_node`, that connects to a [VRPN](https://vrpn.github.io/) server and builds a cache of rigid body poses in a local `TF2` buffer. | ||
These rigid bodies could represent calibration links (or reference links) on components within a workcell. | ||
The poses of these links can then be queried via a ROS 2 service call over the `nexus::endpoints::ExtrinsicCalibrationService` endpoint. | ||
|
||
## Test | ||
```bash | ||
cd nexus_calibration/ | ||
ros2 launch test/nexus_calibration.launch.py | ||
`` | ||
Then to retrieve poses of components wrt to the `robot_calibration_link`, ie a reference frame on the robot's `base_link`, | ||
```bash | ||
ros2 service call /workcell_1/calibrate_extrinsics nexus_calibration_msgs/src/CalibrateExtrinsics '{frame_id: robot_calibration_link}' | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
nexus_calibration_node: | ||
ros__parameters: | ||
vrpn_server_address: "localhost:3883" # The ip_address:port of the vrpn server. | ||
vrpn_frame_id: "world" # The calibrated reference frame wrt which the vrpn server is streaming data. | ||
workcell_id: "workcell_1" # The name of the workcell. This is used as a prefix for any endpoints. | ||
tracker_names: ["workcell_calibration_link", "robot_calibration_link"] # The names of the relevant rigid bodies trackers. | ||
update_rate: 2.0 # The rate in hz at which the update loop should run. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?xml version="1.0"?> | ||
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?> | ||
<package format="3"> | ||
<name>nexus_calibration</name> | ||
<version>0.1.1</version> | ||
<description>A package with ROS 2 nodes for calibration workcell components</description> | ||
<maintainer email="[email protected]">Yadunund</maintainer> | ||
<license>Apache License 2.0</license> | ||
|
||
<buildtool_depend>ament_cmake</buildtool_depend> | ||
|
||
<depend>nexus_endpoints</depend> | ||
<depend>rclcpp</depend> | ||
<depend>rclcpp_components</depend> | ||
<depend>rclcpp_lifecycle</depend> | ||
<depend>tf2</depend> | ||
<depend>vrpn</depend> | ||
|
||
<test_depend>nexus_gazebo</test_depend> | ||
|
||
<export> | ||
<build_type>ament_cmake</build_type> | ||
</export> | ||
</package> |
Oops, something went wrong.