# multi_input_control **Repository Path**: robot_workspace/multi_input_control ## Basic Information - **Project Name**: multi_input_control - **Description**: Ros Robot 多种控制方式,包含键盘、UI、PS手柄控制等 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-20 - **Last Updated**: 2025-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # multi_input_control ## Project Overview `multi_input_control` is a ROS-based multi-input control package that enables users to control robot motion via keyboard. It supports multiple control modes, including velocity and direction control, and offers both a graphical user interface (GUI) and a command-line interface. ## Key Features - Keyboard-based robot motion control (linear and angular velocities). - Smooth control for more stable robot movement. - Graphical User Interface (GUI) for intuitive operation. - Supports publishing both Ackermann and Twist type control commands. ## Main Components - `keyboard_control.py`: Core control logic, including velocity calculation and smoothing. - `keyboard_control_node.py`: ROS node that captures keyboard input and controls the robot. - `keyboard_ctrl_tk.py`: GUI module providing a Tkinter-based user interface. - `keyboard_ctrl_tk_node.py`: GUI control node handling user input and publishing control commands. - Launch files: Used to start keyboard control nodes and GUI nodes. ## Installation Instructions 1. Ensure that a ROS environment is installed (e.g., ROS Noetic or Melodic). 2. Clone this repository into the `src` directory of your ROS workspace: ```bash cd ~/catkin_ws/src git clone https://gitee.com/ros1_robot/multi_input_control.git ``` 3. Navigate back to the root of your workspace and compile: ```bash cd .. catkin_make install ``` 4. Source the setup environment: ```bash source install/setup.bash ``` ## Usage ### Launch Keyboard Control Node Run the following command to start the keyboard control node: ```bash roslaunch multi_input_control keyboard_control.launch ``` ### Launch Graphical Interface Control Run the following command to start the GUI-based keyboard control: ```bash roslaunch multi_input_control keyboard_ctrl_tk.launch ``` Run the following command to launch purely GUI-based robot motion control: ```bash roslaunch multi_input_control robot_motion_control.launch ``` ### Launch PS3 Joystick Control Run the following command to start the PS3 joystick control node: ```bash roslaunch multi_input_control joystick_control.launch ``` ### Use Default Twist Control Run the following command to use ROS's built-in keyboard teleoperation for Twist messages: ```bash roslaunch multi_input_control teleop_twist_keyboard.launch ``` ## Contribution Guidelines Contributions and suggestions for improvements are welcome! Please follow these steps: 1. Fork this repository. 2. Create a new feature branch. 3. Commit your changes. 4. Submit a Pull Request.