添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
强健的回锅肉  ·  Css for input ...·  5 月前    · 
任性的菠菜  ·  Python - ...·  5 月前    · 
  • Gazebo Simulation Configuration
  • ROS Controllers Configuration
  • MoveIt Motion Planning Configuration
  • Perception Pipeline Configuration
  • Navigation Stack Configuration
  • MoveIt Interface and API
  • Python Demos
  • Joystick Control
    • Overview
    • Structure
    • Usage
      • Base Control Mode
      • Arm Control Mode
      • Both Modes
      • Overview

        This package can be used to control the movements of any rover in the Interbotix X-Series LoCoBot Family using a SONY PS3 or PS4 controller via Bluetooth. In this demo, the 'arm' (if equipped) and 'pan/tilt' servos work in 'position' control mode, the gripper operates in 'PWM' mode, and the mobile base operates in 'velocity' control mode. Refer to the joystick button map below to see how to operate the robot. Specifically, some of the joystick controls manipulate individual joints while others are used to perform 'inverse kinematics' on all the joints to get the end-effector of the robot (defined at 'ee_gripper_link') to move as if it's in Cartesian space. This is done using the modern_robotics code library offered by Northwestern University.

        Structure

        As shown above, the interbotix_xslocobot_joy package builds on top of the interbotix_xslocobot_control package. To get familiar with the nodes in the interbotix_xslocobot_control package, please look at its README. The other nodes are described below:

      • joy - a ROS driver for a generic Linux joystick; it reads data from a SONY PS3 or PS4 controller joystick over Bluetooth and publishes sensor_msgs/Joy messages to the /<robot_name>/commands/joy_raw topic
      • xslocobot_joy - responsible for reading in raw sensor_msgs/Joy messages from the /<robot_name>/commands/joy_raw topic and converting them into LocobotJoy messages; this makes the code more readable and allows users to remap buttons very easily later. The new messages are then published on the /<robot_name>/commands/joy_processed topic .
      • xslocobot_robot - responsible for reading in LocobotJoy messages from the /<robot_name>/commands/joy_processed topic and publishing joint, gripper, and pan/tilt commands to the xs_sdk node; while the 'waist' joint is directly controlled via the PS3/PS4 joystick, other buttons allow position-ik to be performed using all the arm joints. It also publishes velocity commands to the mobile base.
      • Usage

        After pairing your Bluetooth joystick controller using the Pairing Your Controller Guide, type the following in a terminal (let's say to control the locobot_wx200 robot with no lidar):

        $ roslaunch interbotix_xslocobot_joy xslocobot_joy.launch robot_model:=locobot_wx200
        

        A red error message might appear in the screen saying Couldn't open joystick force feedback!. This is normal and will not affect the joystick operation. To further customize the launch file at run-time, look at the table below:

        robot_model model type of the Interbotix LoCoBot such as 'locobot_base' or 'locobot_wx250s' robot_name name of the robot (could be anything but defaults to 'locobot') "locobot" use_rviz launches RViz; if you are SSH'd into the robot, DON'T set this to true false rviz_frame fixed frame in RViz; this should be changed to map or <robot_name>/odom if mapping or using local odometry respectively $(arg robot_name)/odom use_base if true, the base ROS nodes are launched use_lidar if true, the RPLidar node is launched false show_lidar set to true if the lidar is installed on the robot; this will load the lidar related links to the 'robot_description' parameter $(arg use_lidar) use_camera if true, the RealSense D435 camera nodes are launched false threshold value from 0 to 1 defining joystick sensitivity; a larger number means the joystick should be less sensitive controller type of PlayStation controller ('ps3' or 'ps4') mode_configs the file path to the 'mode config' YAML file refer to xslocobot_joy.launch use_sim if true, the DYNAMIXEL simulator node is run; use RViz to visualize the robot's motion; if false, the real DYNAMIXEL driver node is run false

        To understand how the joystick buttons map to controlling the robot, look at the diagram and table below:

        Base Control Mode

        SELECT/SHARE Reset the odometry of the base to an 'x', 'y', and 'theta' of 0 (the base chirps as well) Right stick Up/Down tilt the RealSense camera Up/Down Right stick Left/Right pan the RealSense camera Left/Right START/OPTIONS move the pan/tilt servo to '0' radians stick Up/Down move the end-effector (defined at 'ee_gripper_link') vertically in Cartesian space stick Left/Right move the end-effector (defined at 'ee_gripper_link') horizontally in Cartesian space reverses the Left stick Left/Right control if the arm has 6dof, this moves the end-effector in a negative direction along its own 'y' axis if the arm has 6dof, this moves the end-effector in a positive direction along its own 'y' axis
  •