ROS and programming api

Hi, I am searching for the instructions on how to use the programming api via ROS.
I have loaded the Gazebo environment but instructions are unclear on executing an api via the command line.

The xarm-ros readme lists multiple ros services.
For example: rosservice call /xarm/motion_ctrl 8 1
On this I have a few questions:

  1. Are there any more services I can find online?
  2. Are all these rosservice calls functional in simulation?
  3. Are rosservices the only way to interface ROS with the api?
  4. Has anyone gone further than services for usecases (using smach or other task architecture)?
    Please help put me in the right direction.

As I am planning on using ROS, I cannot find sufficient documentation for ROS on the Xarm,
and your responses will help greatly.

Thank you

Hi,Thomas
We is researching your problem ,and we will reply you tommorow.
Thanks.

Hi,Thomas,
Please check this.

Are there any more services I can find online?
You can find more provided services after calling “roslaunch xarm_bringup xarm7_server.launch robot_ip:=xxx.xxx.xxx.xxx” and then “rosservice list | grep xarm”, meaning of the services can be looked up at xarm_msgs/srv

Are all these rosservice calls functional in simulation?
No, these xarm_api service calls are for real xArm control, an IP address of robot controller is needed.

Are rosservices the only way to interface ROS with the api?
If to use API, yes. However, moveit can be used to control both simulated xArm in gazebo and real xArm hardware. Check: https://github.com/xArm-Developer/xarm_ros#55-xarm7_moveit_config

Has anyone gone further than services for usecases (using smach or other task architecture)?
Not yet. For now, simulation can be done by Moveit/Rviz. Real arm control can be done by both ros_service and Moveit.