Skip to content

Latest commit

 

History

History
207 lines (146 loc) · 5.75 KB

README.md

File metadata and controls

207 lines (146 loc) · 5.75 KB

arm_api2

API for robotic manipulators based on:

Docker for building required environment can be found here.

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

Depends on:

Aditional dependencies are:

Aim of the repository

With arm_api as precursor, which was intended to provide simple ROS interfacing with robot manipulators with the help of MoveIt! and ROS.

This repository arm_api2 is intended to provide interfacing support for robot manipulators for ROS 2 and MoveIt2!.

Goals

Create API simple to run and maintain that supports working with different robot manipulators out of the box.

Robot manipulators of interest are:

  • Franka Emika
  • UR
  • Kinova
  • Kuka

Wanted arm functionalities:

  1. go_to_pose
  2. grasp
  3. release
  4. push
  5. <something_else?>

ROS 2 robot interface:

Change robot state:

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

Command robot pose:

  • msg: geometry_msgs/msg/PoseStamped.msg

Command cartesian path:

  • msg: arm_api2_msgs/msg/CartesianWaypoints.msg

Get current end effector pose:

  • msg: geometry_msgs/msg/PoseStamped.msg

Available robot states

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

Build:

Build in ROS 2 workspace. Build just one package with:

colcon build --packages-select arm_api2

Build with the compile commands (enable autocomplete):

colcon build --symlink-install --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

Building with --symlink-install causes it to fail often because of already built ROS 2 packages, you can run:

colcon build --symlink-install --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON --continue-on-error

Full verbose build command:

colcon build --symlink-install --packages-select moveit2_tutorials --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_VERBOSE_MAKEFILE=ON

Aliases

Copy to ~/.bashrc and source it.

alias cbp="colcon build --symlink-install --packages-select" 
alias panda_sim="ros2 launch panda gz.launch.py"
alias kinova_sim="ros2 launch kortex_bringup kortex_sim_control.launch.py dof:=7 use_sim_time:=true launch_rviz:=false" 

Build arm_api2 package as:

cbp arm_api2

Start franka with:

franka_sim

Start kinova with:

kinova_sim

Change state

In order to change state call following command:

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

Launch

Launch ign simulation with following command:

ros2 launch panda ign.launch.py

How to use?

You can run kinova in simulation by executing following commands:

ros2 launch kortex_bringup kortex_sim_control.launch.py dof:=7 use_sim_time:=true launch_rviz:=false

or

kinova_sim

if alias has been added.

After that run move_group node as follows:

ros2 launch kinova_gen3_7dof_robotiq_2f_85_moveit_config sim.launch.py

After that run arm_api2 moveit2_iface node as follows:

ros2 launch arm_api2 moveit2_iface.launch.py 

Kinova

How to setup kinova here.

Dev help

You can add RvizVisualToolsGui with Add New Panel in the RVIZ2.

Arm interfaces

Status

TODO:

  • Test with real robot manipulators
  • Create standardized joystick class [full]
  • Discuss potential SW patterns that can be used
  • Update and fix documentation

Useful learning links