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
andmax_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