This repository contains all libraries required to control an Orbita2d actuator. It allows:
- to fully control the actuator using Python
- access the full API (Rust package or C-API library)
- integrate the actuator in your ROS robot (URDF and ROS2 humble control hardware interface)
The actuator is defined by the following parameters:
- two motors (
$A$ and$B$ ) with their respective reduction ratio ($r_{A}$ and$r_{B}$ ). When not specified, they are always used in this order as argument or results. Yet, you should never nead to control them directly. - the output axes (
$ring$ and$center$ ). When not specified, they are always given in that order either as argument or results.
Please refer to the following schema for more details:
See orbita2d_control for more details.
See orbita2d python bindings for more details.
-
To integrate into a ROS2 workspace, simply clone this repository into the src/ directory of your workspace.
-
Make sure to have the ros2_pollen_toolbox in the same workspace
-
Make sure to have ros2_rust setup.
If its your first time using rust with ros
Make sure to install:pip install git+https://github.com/colcon/colcon-cargo.git pip install git+https://github.com/colcon/colcon-ros-cargo.git
-
Make sure to use "patched version" of cargo-ament-built (see this PR for more details)
cargo install --debug --git https://github.com/jerry73204/cargo-ament-build.git --branch conditionally-copy-cargo-lock-file
- Update colcon-cargo with:
python3 -m pip install --upgrade --force-reinstall git+https://github.com/pollen-robotics/colcon-cargo.git
colcon build --symlink-install --packages-up-to orbita2d_system_hwi
-
colcon build --symlink-install --packages-up-to orbita2d_description
-
See the orbita2d_description package for more details.
This repository contains the following sub-packages:
- orbita2d_kinematics: forward/inverse kinematics model (in Rust)
- orbita2d_control: low-level communication (serial or ethercat) and control (in Rust)
- orbita2d c_api: plain C-API library to control the actuator
- orbita2d python bindings: Python bindings for the C-API library
- orbita2d_description: URDF/ros2_control description of the actuator
- orbita2d_system_hwi: ros2 control hardware system interface for the actuator
- Unit test and doc-test:
cargo test
- Hardware tests:
- torque on/off:
cargo run --bin test_torque -- --config $(PWD)/orbita2d_controller/config/left_shoulder_flipsky.yaml
- velocity limit:
cargo run --bin test_velocity -- --config $(PWD)/orbita2d_controller/config/left_shoulder_flipsky.yaml
- torque limit:
cargo run --bin test_torque_limit -- --config $(PWD)/orbita2d_controller/config/left_shoulder_flipsky.yaml
- torque on/off:
See CHANGELOG.md