Skip to content

end_effector_teleoperation_control_en

Juan Rojas edited this page Dec 2, 2016 · 1 revision

<< back to Mainpage

EN | 中文

#Demo 4 - End_effector Teleoperation Control



#####Navigation

  1. Summary
  2. Video
  3. Quickstart
  4. Structure
  5. FAQ




###Summary


end_effector_teleoperation_control is a package to teleoperate the end_point of baxter using keyboard and marker.
So far this node has been tested on ROS Indigo powered by Ubuntu 14.04 only. If you got any problem with the code, please contact us.
#####Files Location:

  • ./demos/end_effector_teleoperation_control/src/end_effector_marker_control.cpp
  • ./demos/end_effector_teleoperation_control/scripts/control_command_subscriber.py
  • ./demos/end_effector_teleoperation_control/scripts/end_effector_command_solver.py
  • ./demos/end_effector_teleoperation_control/scripts/end_effector_trajectory_client.py
  • ./demos/end_effector_teleoperation_control/scripts/keyboard_control.py
  • ./demos/end_effector_teleoperation_control/launch/end_effector_marker_control.launch

#####Subscriptions:

######In keyboard mode:

######node:end_effector_trajectory_client.py

  • /robot/limb/right/endpoint_state
  • /robot/limb/left/endpoint_state
  • /robot/state
  • /robot/joint_states
  • /end_effector_command_solution

######node:contorl_command_subscriber.py

  • /end_effector_command

######In marker mode:

######mode:end_effector_trajectory_client.py

  • /robot/limb/right/endpoint_state
  • /robot/limb/left/endpoint_state
  • /robot/state
  • /robot/joint_states
  • /end_effector_command_solution

######mode:end_effecor_command_solver.py

  • /end_effector_command_position
  • /robot/joint_states
  • /robot/limb/right(left)/endpoint_state

#####Publications:

######In keyboard mode:

######node:end_effector_trajectory_client.py

  • /robot/limb/right(left)/joint_command
  • /robot/set_super_enable

######node:contorl_command_subscriber.py

  • /end_effector_command_solution

######node:keyboard_control.py

  • /end_effector_command

######In marker mode:

######node:end_effector_trajectory_client.py

  • /robot/set_super_enable
  • /robot/limb/left/joint_command
  • /robot/limb/right/joint_command

######node:end_effector_marker_control.cpp

  • /end_effector_command_position

######node:end_effecor_command_solver.py

  • /robot/limb/right(left)/joint_command
  • /end_effector_command_solution


###Video


IMAGE ALT TEXT

###Quickstart


Beofore you run this package, please make sure your computer have been connected to the baxter. And launch:

(keyboard  control mode)
$ roslaunch end_effector_teleoperation_control end_effector_marker_control.launch keyboard:=true

or

(marker control mode)
$ roslaunch end_effector_teleoperation_control end_effector_marker_control.launch keyboard:=true

To read more detail or find the solutions to some problems, please refer to FAQ part below.


Keys

The following keys are used to move a limb:

  • keyboard_binding["w"] = "up"
  • keyboard_binding["s"] = "down"
  • keyboard_binding["a"] = "left"
  • keyboard_binding["d"] = "right"
  • keyboard_binding["q"] = "backward"
  • keyboard_binding["e"] = "forward"
  • keyboard_binding["f"] = "switch limb to "
  • keyboard_binding["z"] = "orientation_x"
  • keyboard_binding[" "] = "keep"
  • keyboard_binding["k"] = "further"
  • keyboard_binding["l"] = "closer"

###Structure


  1. If you choose keboard control, then when you fire up the launch file above, it will start running the following three nodes.
    node 1:end_effector_trajectory_client.py

node 2:contorl_command_subscriber.py

node 3:keyboard_control.py

  1. If you choose marker control, then when you fire up the launch file above, it will start running the following four nodes.
    node 1:end_effector_trajectory_client.py

node 2:end_effector_marker_control.cpp

node 3:end_effecor_command_solver.py

node 4:rviz




###FAQ


Q1. Why baxter is motionless after pressing the button in the way of keyboard control sometimes?
A1. Because the arm of baxter is limited at this time, and you can continue to control by moving the arm into proper position.

Q2. Why the position of end_point is improper or the arm is stucked in the way of marker control?
A2. Because the calculated result isn't suitable in reality and the arm can't move into the desired pose. And at this time, you just need to give a proper command then the baxter can be controled again.

Q3. Why I got "RobotEnable: Failed to retrieve robot version from rosparam: rethink/software_version" and process abort?
A3. Ensure you can connect to the baxter and you type:

$ ./baxter.sh

And be ensure the current directory is /baxter_ws.