This repository provides robot-agnostic ROS2 packages that interface the Closed-Chain Affordance(CCA) planner with robotic systems. The CCA planner offers an intuitive approach to planning joint trajectories for robot manipulation tasks that can be thought of as linear, rotational, or screw motions. Defining a task is as simple as specifying an axis, location, and pitch (if applicable). Additionally, it provides the capability to control the end-effector's orientation along the task path.
affordance_util
andcc_affordance_planner
packages from the Closed-Chain Affordance repository
moveit
: For self-collision checkingmoveit_visual_tools
: For visualization of joint movementbehaviortree_cpp
: To utilize the CCA Behavior Tree action node
-
Clone the packages into your ROS2 workspace's
src
folder:cd ~/<ros_workspace_name>/src git clone [email protected]:UTNuclearRoboticsPublic/closed_chain_affordance_ros.git
-
Build and source the workspace:
cd ~/<ros_workspace_name> colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release source install/setup.bash
An additional cca_<robot>
package containing robot-specific information is required to launch the planner for a particular robot. Packages are currently available for the following robots, with links provided below. Creating a package for a new robot is straightforward and largely automated, as discussed in the Implementing the Framework on a New Robot section.
A user-friendly Rviz plugin is also available and enables visual trajectory planning and execution by simply dragging interactive markers and specifying task types and goals. Launch instructions are provided in the Interactive Rviz Plugin Planning section.
-
Use the package creator script:
cd ~/<ros_workspace_name>/src/closed_chain_affordance_ros ./cca_robot_package_creator.sh
-
Configure the generated package:
- Complete
cca_<robot>_description.yaml
andcca_<robot>_ros_setup.yaml
in theconfig
folder - For programmatic trajectory planning and execution, implement task (affordance) details in
cca_<robot>_node.cpp
- Complete
-
Build the new package:
cd ~/<ros_workspace_name> colcon build --packages-select cca_<robot> source install/setup.bash
- For trajectory execution, ensure a
follow_joint_trajectory
action server is running on the robot
-
Launch trajectory visualization server:
ros2 launch cca_<robot> cca_<robot>_viz.launch.py
-
Run the planner for defined tasks:
ros2 launch cca_<robot> cca_<robot>.launch.py
-
Start the CCA ROS action server:
ros2 launch cca_<robot> cca_<robot>_action_server.launch.py
-
Launch Rviz with the interactive planning plugin:
ros2 launch cca_<robot> cca_<robot>_viz.launch.py
Janak Panthi (aka Crasun Jans)