No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/xArm-Developer/xarm_ros.git
VCS Type git
VCS Version master
Last Updated 2024-04-12
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The xarm_api package

Additional Links

No additional links.

Maintainers

  • Jason Peng

Authors

No additional authors.

xarm_api services description

Services

  The services of xarm_api is the interface encapsulation of C++ SDK, which may be a single interface call or multiple interface calls.   Note: The service path prefix (xarm/) used by rosservice is related to the startup parameters. The default xarm series is xarm/, and the Lite series is ufactory/. The following example uses xarm/, the actual use is modified according to the actual situation.

C++ SDK DOCS

  • ### Init
    • ##### motion_ctrl
    • SDK API
      • motion_enable
    • rosservice
      # id: 1~7 means joint1~joint7, 8 means all joints
      # enable: 1 means enable, 0 means disable
      rosservice call /xarm/motion_ctrl ${enable} ${id}

  • ##### set_mode
    • SDK API:
      • set_mode
    • rosservice:
      # mode: 
      #   0: position mode
      #   1: servo motion mode
      #   2: joint teaching mode
      #   4: joint velocity mode
      #   5: cartesian velocity mode
      #   6: joint online trajectory planning mode
      #   7: cartesian online trajectory planning mode
      rosservice call /xarm/set_mode ${mode}

  • ##### set_state
    • SDK API:
      • set_state
    • rosservice:
      # state:
      #   0: motion state
      #   3: pause state
      #   4: stop state
      rosservice call /xarm/set_state ${state}

  • ##### clear_err
    • SDK API:
      • (if gripper added) clean_gripper_error
      • clean_error
      • clean_warn
      • motion_enable
    • rosservice:
      rosservice call /xarm/clear_err

  • ##### moveit_clear_err
    • SDK API:
      • (if gripper added) clean_gripper_error
      • clean_error
      • clean_warn
      • motion_enable
      • set_mode
      • set_state
    • rosservice:
      rosservice call /xarm/moveit_clear_err

  • ### Motion
    • ##### go_home
    • SDK API:
      • move_gohome
    • rosservice:
      # mvvelo: speed (rad/s)
      # mvacc: acceleration (rad/s^2)
      rosservice call /xarm/go_home [] ${mvvelo} ${mvacc} 0 0

  • ##### move_joint
    • SDK API:
      • set_servo_angle
    • rosservice:
      # angles: [joint1-rad, ..., joint${dof}-rad]
      # mvvelo: speed (rad/s)
      # mvacc: acceleration (rad/s^2)
      rosservice call /xarm/move_joint ${angles} ${mvvelo} ${mvacc} 0 0

  • ##### move_jointb
    • SDK API:
      • set_servo_angle
    • rosservice:
      # angles: [joint1-rad, ..., joint${dof}-rad]
      # mvvelo: speed (rad/s)
      # mvacc: acceleration (rad/s^2)
      # radius: the blending radius between 2 straight path trajectories, 0 for no blend.
      rosservice call /xarm/move_jointb ${angles} ${mvvelo} ${mvacc} 0 ${radius}

  • ##### move_line
    • SDK API:
      • set_position
    • rosservice:
      # pose: [x(mm), y(mm), z(mm), roll(rad), pitch(rad), yaw(rad)]
      # mvvelo: speed (mm/s)
      # mvacc: acceleration (mm/s^2)
      rosservice call /xarm/move_line ${pose} ${mvvelo} ${mvacc} 0 0

  • ##### move_lineb
    • SDK API:
      • set_position
    • rosservice:
      # pose: [x(mm), y(mm), z(mm), roll(rad), pitch(rad), yaw(rad)]
      # mvvelo: speed (mm/s)
      # mvacc: acceleration (mm/s^2)
      # radius: the blending radius between 2 straight path trajectories, 0 for no blend.
      rosservice call /xarm/move_lineb ${pose} ${mvvelo} ${mvacc} 0 ${radius}

  • ##### move_line_tool
    • SDK API:
      • set_tool_position
    • rosservice:
      # pose: [x(mm), y(mm), z(mm), roll(rad), pitch(rad), yaw(rad)]
      # mvvelo: speed (mm/s)
      # mvacc: acceleration (mm/s^2)
      rosservice call /xarm/move_line_tool ${pose} ${mvvelo} ${mvacc} 0 0

  • ##### move_servoj
    • SDK API:
      • set_servo_angle_j
    • rosservice:
      # angles: [joint1-rad, ..., joint${dof}-rad]
      # mvvelo: speed (rad/s)
      # mvacc: acceleration (rad/s^2)
      rosservice call /xarm/move_servoj ${angles} ${mvvelo} ${mvacc} 0 0

  • ##### move_servo_cart
    • SDK API:
      • set_servo_cartesian
    • rosservice:
      # pose: [x(mm), y(mm), z(mm), roll(rad), pitch(rad), yaw(rad)]
      # mvvelo: speed (mm/s)
      # mvacc: acceleration (mm/s^2)
      # coord: motion coordinate system indicator, base (0) or tool(1) coordinate
      rosservice call /xarm/move_servo_cart ${pose} ${mvvelo} ${mvacc} ${coord} 0

  • ##### move_line_aa
    • SDK API:
      • set_position_aa
    • rosservice:
      # pose: [x(mm), y(mm), z(mm), roll(rad), pitch(rad), yaw(rad)]
      # mvvelo: speed (mm/s)
      # mvacc: acceleration (mm/s^2)
      # coord: motion coordinate system indicator, base (0) or tool(1) coordinate
      # relative: indicator of given target is relative (1) or not (0, absolute)
      rosservice call /xarm/move_line_aa ${pose} ${mvvelo} ${mvacc} 0 ${coord} ${relative}

  • ##### move_servo_cart_aa
    • SDK API:
      • set_servo_cartesian_aa
    • rosservice:
      # pose: [x(mm), y(mm), z(mm), roll(rad), pitch(rad), yaw(rad)]
      # mvvelo: speed (mm/s)
      # mvacc: acceleration (mm/s^2)
      # coord: motion coordinate system indicator, base (0) or tool(1) coordinate
      # relative: indicator of given target is relative (1) or not (0, absolute)
      rosservice call /xarm/move_servo_cart_aa ${pose} ${mvvelo} ${mvacc} 0 ${coord} ${relative}

  • ##### velo_move_joint
    • SDK API:
      • vc_set_joint_velocity
    • rosservice:
      # velocities: [joint1-velo(rad/s), ..., joint${dof}-velo(rad/s)]
      # jnt_sync: whether all joints accelerate and decelerate synchronously, 1 for yes, 0 for no
      rosservice call /xarm/velo_move_joint ${velocities} ${jnt_sync} 0

  • ##### velo_move_line
    • SDK API:
      • vc_set_cartesian_velocity
    • rosservice:
      # velocities: [velo-x(mm/s), velo-y(mm/s), velo-z(mm/s), velo-roll(rad/s), velo-pitch(rad/s), velo-yaw(rad/s)]
      # coord: whether motion is in tool coordinate(1) or not(0)
      rosservice call /xarm/velo_move_joint ${velocities} 0 ${coord}

  • ##### velo_move_joint_timed
    • SDK API:
      • vc_set_joint_velocity
    • rosservice:
      # velocities: [joint1-velo(rad/s), ..., joint${dof}-velo(rad/s)]
      # is_sync: whether all joints accelerate and decelerate synchronously, 1 for yes, 0 for no
      # duration: the maximum duration of the speed, over this time will automatically set the speed to 0
      rosservice call /xarm/velo_move_joint_timed ${velocities} ${is_sync} 0 ${duration}

  • ##### velo_move_line_timed
    • SDK API:
      • vc_set_cartesian_velocity
    • rosservice:
      # velocities: [velo-x(mm/s), velo-y(mm/s), velo-z(mm/s), velo-roll(rad/s), velo-pitch(rad/s), velo-yaw(rad/s)]
      # is_tool_coord: whether motion is in tool coordinate(1) or not(0)
      # duration: the maximum duration of the speed, over this time will automatically set the speed to 0
      rosservice call /xarm/velo_move_line_timed ${velocities} 0 ${is_tool_coord} {duration}

  • ### Tool GPIO (ionum from 1 to 2)
    • ##### set_digital_out
    • SDK API:
      • set_tgpio_digital
    • rosservice:
      # io_num: io num, 1: DO0, 2: DO1
      # value: 0/1
      rosservice call /xarm/set_digital_out ${io_num} ${value}

  • ##### get_digital_in
    • SDK API:
      • get_tgpio_digital
    • rosservice:
      rosservice call /xarm/get_digital_in

  • ##### get_analog_in
    • SDK API:
      • get_tgpio_analog
    • rosservice:
      # io_num: io num, 1: AI0, 2: AI1
      rosservice call /xarm/get_analog_in ${io_num}

  • ### Controller GPIO (ionum from 1 to 16)
    • ##### set_controller_dout
    • SDK API:
      • set_cgpio_digital
    • rosservice:
      # io_num: io num, 1 ~ 16, (1: CO0, 9: DO0)
      # value: 0/1
      rosservice call /xarm/set_controller_dout ${io_num} ${value}

  • ##### get_controller_din
    • SDK API:
      • get_cgpio_digital
    • rosservice:
      # io_num: io num, 1 ~ 16, (1: CI0, 9: DI0)
      rosservice call /xarm/get_controller_din ${io_num}

  • ##### set_controller_aout
    • SDK API:
      • set_cgpio_analog
    • rosservice:
      # io_num: io num, 1: AO0, 2: AO1
      # value: value
      rosservice call /xarm/set_controller_aout ${io_num} ${value}

  • ##### get_controller_ain
    • SDK API:
      • get_cgpio_analog
    • rosservice:
      # io_num: io num, 1: AI0, 2: AI1
      rosservice call /xarm/get_controller_ain ${io_num}

  • ### XArm Gripper
    • ##### gripper_config
    • SDK API:
      • set_gripper_mode
      • set_gripper_enable
      • set_gripper_speed
    • rosservice:
      # velocity: pulse velocity, 1 ~ 5000
      rosservice call /xarm/gripper_config ${velocity}

  • ##### gripper_move
    • SDK API:
      • set_gripper_position
    • rosservice:
      # pos: pulse pos, -100 ~ 850
      rosservice call /xarm/gripper_move ${pos}

  • ##### gripper_state
    • SDK API:
      • get_gripper_err_code
      • get_gripper_position
    • rosservice:
      rosservice call /xarm/gripper_state 

  • ### XArm Vacuum Gripper
    • ##### vacuum_gripper_set
    • SDK API:
      • set_vacuum_gripper
    • rosservice:
      # on: 1: open, 0: close
      rosservice call /xarm/vacuum_gripper_set ${on}

  • ### Lite Gripper
    • ##### open_lite6_gripper
    • SDK API:
      • open_lite6_gripper
    • rosservice:
      rosservice call /xarm/open_lite6_gripper

  • ##### close_lite6_gripper
    • SDK API:
      • close_lite6_gripper
    • rosservice:
      rosservice call /xarm/close_lite6_gripper

  • ##### stop_lite6_gripper
    • SDK API:
      • stop_lite6_gripper
    • rosservice:
      rosservice call /xarm/stop_lite6_gripper

  • ### Force torque Sensor
    • ##### ft_sensor_enable
    • SDK API:
      • ft_sensor_enable
    • rosservice:
      # enable: 1: enable, 0: disable
      rosservice call /xarm/ft_sensor_enable ${enable}

  • ##### ft_sensor_app_set
    • SDK API:
      • ft_sensor_app_set
    • rosservice:
      # app_code
      #   0: non-force mode
      #   1: impendance control
      #   2: force control
      rosservice call /xarm/ft_sensor_app_set ${app_code}

  • ##### ft_sensor_set_zero
    • SDK API:
      • ft_sensor_set_zero
    • rosservice:
      rosservice call /xarm/ft_sensor_set_zero

  • ##### ft_sensor_cali_load
    • SDK API:
      • ft_sensor_cali_load
      • save_conf
    • rosservice:
      # data: iden load result
      # association_setting_tcp_load: association setting tcp load or not
      rosservice call /xarm/ft_sensor_cali_load ${data} ${association_setting_tcp_load}

  • ##### ft_sensor_iden_load
    • SDK API:
      • ft_sensor_iden_load
    • rosservice:
      rosservice call /xarm/ft_sensor_iden_load

  • ##### get_ft_sensor_error
    • SDK API:
      • get_ft_sensor_error
    • rosservice:
      rosservice call /xarm/get_ft_sensor_error

  • ### Tool Modbus
    • ##### config_tool_modbus
    • SDK API:
      • set_state
      • set_tgpio_modbus_baudrate
      • set_tgpio_modbus_timeout
    • rosservice:
      # baudrate: baudrate
      # timeout_ms: timeout(ms)
      rosservice call /xarm/config_tool_modbus ${baudrate} ${timeout_ms}

  • ##### set_tool_modbus
    • SDK API:
      • getset_tgpio_modbus_data
    • rosservice:
      # send_data: modbus data
      # respond_len: the length of the response modbus data
      rosservice call /xarm/getset_tgpio_modbus_data ${send_data} ${respond_len}

  • ##### get_tgpio_modbus_baudrate
    • SDK API:
      • get_tgpio_modbus_baudrate
    • rosservice:
      rosservice call /xarm/get_tgpio_modbus_baudrate

  • ##### set_tgpio_modbus_timeout
    • SDK API:
      • set_tgpio_modbus_timeout
    • rosservice:
      # timeout_ms: timeout(ms)
      # is_transparent_transmission: is transparent transmission or not
      rosservice call /xarm/set_tgpio_modbus_timeout ${timeout_ms} ${is_transparent_transmission}

  • ##### getset_tgpio_modbus_data
    • SDK API:
      • getset_tgpio_modbus_data
    • rosservice:
      # send_data: modbus data
      # respond_len: the length of the response modbus data
      # host_id: host id, 9: END RS485, 10: Controller RS485
      # is_transparent_transmission: is transparent transmission or not
      # use_503_port: whether to use port 503 for communication
      rosservice call /xarm/getset_tgpio_modbus_data ${send_data} ${respond_len} ${host_id} ${is_transparent_transmission} ${use_503_port}

  • ### Get
    • ##### get_servo_angle
    • SDK API:
      • get_servo_angle
    • rosservice:
      rosservice call /xarm/get_servo_angle

  • ##### get_position_rpy
    • SDK API:
      • get_position
    • rosservice:
      rosservice call /xarm/get_position_rpy

  • ##### get_position_axis_angle
    • SDK API:
      • get_position_aa
    • rosservice:
      rosservice call /xarm/get_position_axis_angle

  • ### Set
    • ##### set_tcp_offset
    • SDK API:
      • set_tcp_offset
      • save_conf
    • rosservice
      # x/y/z: mm
      # roll/pitch/yaw: rad
      rosservice call /xarm/set_tcp_offset ${x} ${y} ${z} ${roll} ${pitch} ${yaw}

  • ##### set_load
    • SDK API:
      • set_tcp_load
      • save_conf
    • rosservice
      # mass: kg
      # xc: x center of mass (mm)
      # yc: y center of mass (mm)
      # zc: z center of mass (mm)
      rosservice call /xarm/set_load ${mass} ${xc} ${yc} ${zc}

  • ##### set_max_acc_joint
    • SDK API:
      • set_joint_maxacc
    • rosservice
      # maxacc: joint max acc, rad/s^2, 0 ~ 20
      rosservice call /xarm/set_max_acc_joint ${maxacc}

  • ##### set_max_acc_line
    • SDK API:
      • set_tcp_maxacc
    • rosservice
      # maxacc: tcp max acc, mm/s^2, 0 ~ 50000
      rosservice call /xarm/set_max_acc_line ${maxacc}

  • ##### set_collision_rebound
    • SDK API:
      • set_collision_rebound
    • rosservice
      # on: 1: on, 0: off
      rosservice call /xarm/set_collision_rebound ${on}

  • ##### set_collision_sensitivity
    • SDK API:
      • set_collision_sensitivity
    • rosservice
      # sens: collision sensitivity, 0 ~ 5
      rosservice call /xarm/set_collision_sensitivity ${sens}

  • ##### set_teach_sensitivity
    • SDK API:
      • set_teach_sensitivity
    • rosservice
      # sens: teach sensitivity, 1 ~ 5
      rosservice call /xarm/set_teach_sensitivity ${sens}

  • ##### set_world_offset
    • SDK API:
      • set_world_offset
      • save_conf
    • rosservice
      # x/y/z: mm
      # roll/pitch/yaw: rad
      rosservice call /xarm/set_world_offset ${x} ${y} ${z} ${roll} ${pitch} ${yaw}

  • ##### set_fence_mode
    • SDK API:
      • set_fence_mode
    • rosservice
      # on: 1: on, 0: off
      rosservice call /xarm/set_fence_mode ${on}

  • ##### set_reduced_mode
    • SDK API:
      • set_reduced_mode
    • rosservice
      # on: 1: on, 0: off
      rosservice call /xarm/set_reduced_mode ${on}

  • ##### set_tcp_jerk
    • SDK API:
      • set_tcp_jerk
    • rosservice
      # jerk: tcp max acc, mm/s^3
      rosservice call /xarm/set_tcp_jerk ${jerk}

  • ##### set_joint_jerk
    • SDK API:
      • set_joint_jerk
    • rosservice
      # jerk: joint jerk, rad/s^3
      rosservice call /xarm/set_joint_jerk ${jerk}

  • ### Trajectory
    • ##### set_recording
    • SDK API:
      • start_record_trajectory or stop_record_trajectory
    • rosservice
      # on: 1: start, 0: stop
      rosservice call /xarm/set_recording ${on}

  • ##### save_traj
    • SDK API:
      • save_record_trajectory
    • rosservice
      # filename: the trajectory filename to save
      # timeout: save timeout (second)
      rosservice call /xarm/save_traj ${filename} ${timeout}

  • ##### play_traj
    • SDK API:
      • playback_trajectory
    • rosservice
      # filename: the trajectory filename to playback
      # times: repeat times
      # speed_factor: speed factor, 1/2/4
      rosservice call /xarm/play_traj ${filename} ${times} ${speed_factor}

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged xarm_api at Robotics Stack Exchange

No version for distro melodic. Known supported distros are highlighted in the buttons above.