Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate ros2_control and add user documentation (backport #162) #163

Closed
wants to merge 1 commit into from

Conversation

mergify[bot]
Copy link

@mergify mergify bot commented Apr 20, 2024

Changes Made

This is a pretty significant PR that makes several API-breaking changes. In particular, the following breaking changes were made:

  1. blue_dynamics has been ported to hydrodynamics. The new project cleans up the original dynamics implementation and will also make it easier to add new features that are unrelated to Blue (e.g., parsing hydrodynamic parameters from a URDF/SDF file).
  2. blue_control has been re-written using ros2_control and ported to auv_controllers. Controllers will now be easier to implement and are vehicle-agnostic.
  3. ArduSub-specific packages/files including sitl.launch.py, blue_joy, blue_manager, and the PWM passthrough handling have all been ported to ardusub_driver.
    • In the new repo, SITL, MAVROS, and the ArduSub manager can all be launched using the launch files available in
      ardusub_bringup.
    • PWM passthrough is now accomplished in the thruster_hardware package and is implemented as a ros2_control
      hardware interface
    • blue_manager now lives in ardusub_manager and has been cleaned up.
    • The blue_joy package has become ardusub_teleop and now has a joystick configuration file tailored specifically to
      ArduSub.
  4. Launch files were re-written using the new YAML syntax. The new launch files are a MAJOR improvement over the verbose Python launch files that were originally used.
  5. blue_utils has been removed.

Outside of these breaking changes, user documentation has been added with pipelines that deploy the documentation on push to main. The documentation is written using Docusaurus.

Associated Issues

Testing

Testing was done in simulation using SITL.


This is an automatic backport of pull request #162 done by [Mergify](https://mergify.com).

* Started migration to new controller package and ardusub interface

* Replaced launch files with yaml

* Started integrating new control framework

* Removed old scripts and configuration files; continued ardusub manager integration

* Fixed launch files and started debugging manager

* Fixed mavros configuration file

* Added vscode file

* Working state - need to finish updates to joy package

* Working state all vehicles updated

* Save point before I break things

* Waiting to add demos until i add documentation

* Added docs

* Started reintegrating demos

* Cleaned up devcontainer config

* Added demos and vehicle images

* Added links to demo readme

* Added tutorials

* Cleaned up site visualizations and styling

* Updated readme

* Moved citation

* Fixed issues in tutorials

* Fixed ci

* Removed codespell

* Fixed spelling errors

* Fixed dockerignore

* Added user documentation (#160)

* Added docs

* Started reintegrating demos

* Cleaned up devcontainer config

* Added demos and vehicle images

* Added links to demo readme

* Added tutorials

* Cleaned up site visualizations and styling

* Updated readme

* Moved citation

* Fixed issues in tutorials

* Fixed ci

* Removed codespell

* Fixed spelling errors

* Fixed dockerignore

* Testing docs cd pipeline

* Fixed reference to package-lock

* Added path to docs

* prolly wont work but worth a shot

* take 2

* Another attempt

* Testing

* Removed previous change

* Added separate ci docs pipeline

* Added fixes and switched back to rolling

* Fixed dockerfile ros version

* Fixed readme

(cherry picked from commit 3709432)

# Conflicts:
#	.devcontainer/nouveau/devcontainer.json
#	.devcontainer/nvidia/devcontainer.json
#	blue.repos
Copy link
Author

mergify bot commented Apr 20, 2024

Cherry-pick of 3709432 has failed:

On branch mergify/bp/humble/pr-162
Your branch is up to date with 'origin/humble'.

You are currently cherry-picking commit 3709432.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	deleted:    .clang-format
	deleted:    .clang-tidy
	new file:   .codespellrc
	new file:   .devcontainer/documentation/Dockerfile
	new file:   .devcontainer/documentation/devcontainer.json
	modified:   .devcontainer/nouveau/Dockerfile
	modified:   .devcontainer/nvidia/Dockerfile
	modified:   .docker/Dockerfile
	modified:   .dockerignore
	modified:   .github/PULL_REQUEST_TEMPLATE.md
	new file:   .github/workflows/ci-docs.yaml
	modified:   .github/workflows/ci.yaml
	modified:   .github/workflows/docker.yaml
	new file:   .github/workflows/docs.yaml
	modified:   .gitignore
	deleted:    .markdownlint.json
	modified:   .pre-commit-config.yaml
	new file:   .ruff.toml
	new file:   .vscode/c_cpp_properties.json
	new file:   .vscode/settings.json
	new file:   .vscode/tasks.json
	modified:   README.md
	modified:   blue_bringup/CMakeLists.txt
	deleted:    blue_bringup/launch/base.launch.py
	deleted:    blue_bringup/launch/bluerov2/bluerov2.launch.py
	new file:   blue_bringup/launch/bluerov2/bluerov2.launch.yaml
	deleted:    blue_bringup/launch/bluerov2/tf.launch.py
	new file:   blue_bringup/launch/bluerov2/thrusters.launch.yaml
	deleted:    blue_bringup/launch/bluerov2_heavy/bluerov2_heavy.launch.py
	new file:   blue_bringup/launch/bluerov2_heavy/bluerov2_heavy.launch.yaml
	deleted:    blue_bringup/launch/bluerov2_heavy/tf.launch.py
	new file:   blue_bringup/launch/bluerov2_heavy/thrusters.launch.yaml
	deleted:    blue_bringup/launch/bluerov2_heavy_reach/bluerov2_heavy_reach.launch.py
	new file:   blue_bringup/launch/bluerov2_heavy_reach/bluerov2_heavy_reach.launch.yaml
	deleted:    blue_bringup/launch/bluerov2_heavy_reach/tf.launch.py
	new file:   blue_bringup/launch/bluerov2_heavy_reach/thrusters.launch.yaml
	deleted:    blue_bringup/launch/sitl.launch.py
	modified:   blue_bringup/package.xml
	deleted:    blue_control/CMakeLists.txt
	deleted:    blue_control/include/blue_control/controller.hpp
	deleted:    blue_control/include/blue_control/ismc.hpp
	deleted:    blue_control/launch/control.launch.py
	deleted:    blue_control/package.xml
	deleted:    blue_control/src/controller.cpp
	deleted:    blue_control/src/ismc.cpp
	new file:   blue_demos/CMakeLists.txt
	renamed:    blue_control/LICENSE -> blue_demos/LICENSE
	new file:   blue_demos/README.md
	new file:   blue_demos/control_integration/config/bluerov2_controllers.yaml
	new file:   blue_demos/control_integration/config/bluerov2_heavy_controllers.yaml
	new file:   blue_demos/control_integration/description/ros2_control/bluerov2.ros2_control.xacro
	new file:   blue_demos/control_integration/description/ros2_control/bluerov2_heavy.ros2_control.xacro
	new file:   blue_demos/control_integration/description/urdf/bluerov2.config.xacro
	new file:   blue_demos/control_integration/description/urdf/bluerov2_heavy.config.xacro
	new file:   blue_demos/control_integration/launch/bluerov2_controllers.launch.py
	new file:   blue_demos/control_integration/launch/bluerov2_demo.launch.yaml
	new file:   blue_demos/control_integration/launch/bluerov2_heavy_controllers.launch.py
	new file:   blue_demos/control_integration/launch/bluerov2_heavy_demo.launch.yaml
	renamed:    blue_joy/package.xml -> blue_demos/package.xml
	new file:   blue_demos/teleoperation/config/joy_teleop.yaml
	new file:   blue_demos/teleoperation/launch/joy_teleop.launch.yaml
	modified:   blue_description/CMakeLists.txt
	new file:   blue_description/config/ardusub/ardusub_manager.yaml
	renamed:    blue_description/config/mavros.yaml -> blue_description/config/ardusub/mavros.yaml
	deleted:    blue_description/config/bluerov2/controllers.yaml
	deleted:    blue_description/config/bluerov2/manager.yaml
	deleted:    blue_description/config/bluerov2_heavy/controllers.yaml
	deleted:    blue_description/config/bluerov2_heavy/manager.yaml
	deleted:    blue_description/config/bluerov2_heavy_reach/controllers.yaml
	deleted:    blue_description/config/bluerov2_heavy_reach/manager.yaml
	deleted:    blue_description/config/joy_teleop.yaml
	renamed:    blue_description/xacro/bluerov2/config.xacro -> blue_description/description/bluerov2/config.xacro
	renamed:    blue_description/xacro/bluerov2/gazebo.xacro -> blue_description/description/bluerov2/gazebo.xacro
	renamed:    blue_description/xacro/bluerov2/urdf.xacro -> blue_description/description/bluerov2/urdf.xacro
	renamed:    blue_description/xacro/bluerov2_heavy/config.xacro -> blue_description/description/bluerov2_heavy/config.xacro
	renamed:    blue_description/xacro/bluerov2_heavy/gazebo.xacro -> blue_description/description/bluerov2_heavy/gazebo.xacro
	renamed:    blue_description/xacro/bluerov2_heavy/urdf.xacro -> blue_description/description/bluerov2_heavy/urdf.xacro
	renamed:    blue_description/xacro/bluerov2_heavy_reach/config.xacro -> blue_description/description/bluerov2_heavy_reach/config.xacro
	renamed:    blue_description/xacro/bluerov2_heavy_reach/gazebo.xacro -> blue_description/description/bluerov2_heavy_reach/gazebo.xacro
	renamed:    blue_description/xacro/bluerov2_heavy_reach/urdf.xacro -> blue_description/description/bluerov2_heavy_reach/urdf.xacro
	renamed:    blue_description/xacro/camera/gazebo.xacro -> blue_description/description/camera/gazebo.xacro
	renamed:    blue_description/xacro/camera/urdf.xacro -> blue_description/description/camera/urdf.xacro
	renamed:    blue_description/xacro/t200/gazebo.xacro -> blue_description/description/t200/gazebo.xacro
	renamed:    blue_description/xacro/t200/urdf.xacro -> blue_description/description/t200/urdf.xacro
	modified:   blue_description/package.xml
	deleted:    blue_dynamics/CMakeLists.txt
	deleted:    blue_dynamics/LICENSE
	deleted:    blue_dynamics/include/blue_dynamics/hydrodynamics.hpp
	deleted:    blue_dynamics/include/blue_dynamics/thruster_dynamics.hpp
	deleted:    blue_dynamics/package.xml
	deleted:    blue_dynamics/src/hydrodynamics.cpp
	deleted:    blue_dynamics/src/thruster_dynamics.cpp
	deleted:    blue_dynamics/test/test_hydrodynamics.cpp
	deleted:    blue_dynamics/test/test_thruster_dynamics.cpp
	deleted:    blue_joy/LICENSE
	deleted:    blue_joy/blue_joy/joy.py
	deleted:    blue_joy/launch/joy.launch.py
	deleted:    blue_joy/resource/blue_joy
	deleted:    blue_joy/setup.cfg
	deleted:    blue_joy/setup.py
	deleted:    blue_joy/test/test_copyright.py
	deleted:    blue_manager/LICENSE
	deleted:    blue_manager/blue_manager/__init__.py
	deleted:    blue_manager/blue_manager/manager.py
	deleted:    blue_manager/launch/manager.launch.py
	deleted:    blue_manager/package.xml
	deleted:    blue_manager/resource/blue_manager
	deleted:    blue_manager/setup.cfg
	deleted:    blue_manager/setup.py
	deleted:    blue_manager/test/test_copyright.py
	deleted:    blue_utils/CMakeLists.txt
	deleted:    blue_utils/LICENSE
	deleted:    blue_utils/include/blue_utils/eigen.hpp
	deleted:    blue_utils/include/blue_utils/tf2.hpp
	deleted:    blue_utils/package.xml
	deleted:    blue_utils/scripts/arm.sh
	deleted:    blue_utils/scripts/disarm.sh
	deleted:    blue_utils/scripts/send_cmd.sh
	deleted:    blue_utils/scripts/send_pwm.sh
	deleted:    blue_utils/scripts/start_keyboard_teleop.sh
	new file:   docs/.gitignore
	new file:   docs/babel.config.js
	new file:   docs/docs/contributing.mdx
	new file:   docs/docs/installation.mdx
	new file:   docs/docs/overview.mdx
	new file:   docs/docs/tutorials/_category_.json
	new file:   docs/docs/tutorials/control.mdx
	new file:   docs/docs/tutorials/simulation.mdx
	new file:   docs/docs/tutorials/teleop.mdx
	new file:   docs/docs/welcome.mdx
	new file:   docs/docusaurus.config.js
	new file:   docs/package-lock.json
	new file:   docs/package.json
	new file:   docs/sidebars.js
	new file:   docs/src/components/Vehicle.jsx
	new file:   docs/src/css/cards.scss
	new file:   docs/src/css/custom.scss
	new file:   docs/src/css/fonts-and-colors.scss
	new file:   docs/src/css/header.scss
	new file:   docs/src/css/typography.scss
	renamed:    blue_joy/blue_joy/__init__.py -> docs/static/.nojekyll
	new file:   docs/static/img/favicon.ico
	new file:   docs/static/img/vehicles/bluerov2.png
	new file:   docs/static/img/vehicles/bluerov2_heavy.png
	new file:   docs/static/img/vehicles/bluerov2_heavy_reach.png
	deleted:    requirements-dev.txt
	deleted:    setup.cfg

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   .devcontainer/nouveau/devcontainer.json
	both modified:   .devcontainer/nvidia/devcontainer.json
	both modified:   blue.repos

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@mergify mergify bot added the conflicts label Apr 20, 2024
@evan-palmer evan-palmer deleted the mergify/bp/humble/pr-162 branch April 24, 2024 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant