Giter VIP home page Giter VIP logo

arm_api2's Introduction

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

arm_api2's People

Contributors

fzoric8 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.