Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2
Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2
Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2
Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2
Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2 arm_api2

Repository Summary

Description Code wrapper for MoveIt2! and ROS 2.
Checkout URI https://github.com/croboticsolutions/arm_api2.git
VCS Type git
VCS Version master
Last Updated 2025-07-21
Dev Status UNKNOWN
Released UNRELEASED
Tags robotics manipulation ros2 moveit2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
arm_api2 0.0.0

README

arm_api2

:mechanical_arm: API for robotic manipulators based on ROS 2 and MoveIt2!

Docker for building required environment can be found here.

Use prebuilt docker

Pull and run docker container arm_api2_cont:

git clone git@github.com:CroboticSolutions/docker_files.git 
cd ./docker_files/ros2/humble/arm_api2
./pull_and_run_docker.sh
<robot>_sim (start robot in simulation)

Run move_group for that robot (see particular instructions for supported arms in How to use section). And after that run:

ros2 launch arm_api2 moveit2_simple_iface.launch.py robot_name:=<robot_name>

Currently supported robot names are: ur, kinova, franka, piper.

For full instructions check section How to use arm_api2?

Build your own docker

In order to build it easily, run following comands:

git clone git@github.com:CroboticSolutions/docker_files.git
cd ./docker_files/ros2/humble/arm_api2
docker build -t arm_api2_img:humble .
./run_docker.sh 

After running docker, you can enter container with:

docker exec -it arm_api2_cont bash

Docker for building required environment can be found here.

For building ROS 2 packages and moveit, it is neccessary to use colcon.

Tell us anonymously what arms we should support here. :smile:

Depends on:

Aditional dependencies are (depending on the arm you use):

How to use arm_api2?

Change robot state:

The robot state can be changed via a ROS2 service.

  • name: arm/change_state
  • srv: /arm_api2_msgs/srv/ChangeState.srv
  • values JOINT_TRAJ_CTL || CART_TRAJ_CTL || SERVO_CTL

Example service call:

ros2 service call /arm/change_state arm_api2_msgs/srv/ChangeState "{state: JOINT_TRAJ_CTL}"

Currently implemented and available robot states are:

  • JOINT_TRAJ_CTL, which is used for joint control
  • CART_TRAJ_CTL, which is used for cartesian control
  • SERVO_CTL, which is used for the end effector servoing

Set max velocity and acceleration scaling factor:

Set velocity and acceleration scaling factors via service call:

  • name: arm/set_vel_acc
  • srv: /arm_api2_msgs/srv/SetVelAcc.srv
  • values max_vel and max_acc (both float64)

Example service call:

ros2 service call /arm/set_vel_acc arm_api2_msgs/srv/SetVelAcc "{max_vel: 0.5, max_acc: 0.5}"

Set end effector link:

Set end effector link via service call:

  • name: arm/set_eelink
  • srv: /arm_api2_msgs/srv/SetStringParam.srv
  • values value (string)

File truncated at 100 lines see the full file

Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2
Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2
Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2
Repo symbol

arm_api2 repository

robotics manipulation ros2 moveit2