-
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/job-manager
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
- 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/rust-toolchain@1.75 | ||
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
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,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="yadunund@openrobotics.org">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.