Skip to content

gdut-robocon/rc_control

Repository files navigation



rc_control

This project provides a comprehensive robotics control framework for real-time sensor processing, hardware abstraction, and simulation integration. Built on ROS, it supports IMU filtering, CAN bus communication, GPIO control, and RC input handling. Key features include sensor fusion, hardware interfacing for actuators and laser sensors, Gazebo simulation plugins, and real-time control loops. Designed for modular deployment in robotic systems, it enables precise control, state estimation, and simulation for applications like mobile robots or robotic arms.
Explore the docs »

Contributors Forks Stargazers Issues License

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

📖 About The Project

This project provides a comprehensive robotics control framework for real-time sensor processing, hardware abstraction, and simulation integration. Built on ROS (Robot Operating System), it supports IMU filtering, CAN bus communication, GPIO control, and RC input handling. Key features include sensor fusion, hardware interfacing for actuators and laser sensors, Gazebo simulation plugins, and real-time control loops. Designed for modular deployment in robotic systems, it enables precise control, state estimation, and simulation for applications like mobile robots or robotic arms.

Key Features

  • Robot Control Framework: Modular architecture for integration with various robotic platforms.
  • Sensor Fusion Filters: Implements complementary filters, Kalman filters, and adaptive filtering for IMU data.
  • Real-time Hardware Interface: Supports CAN bus communication, GPIO control, and serial device integration.
  • ROS Integration: Full compatibility with ROS ecosystem including message types, launch files, and control interfaces.
  • Gazebo Simulation Support: Custom plugins for simulating hardware components in Gazebo.

(back to top)

Built With

  • ROS
  • Gazebo
  • C++

(back to top)

📁 Project Structure

Click to expand project structure
rc_control/
├── .clang-format
├── .clang-tidy
├── .pre-commit-config.yaml
├── rc_common/
├── rc_gazebo/
├── rc_hw/
├── rc_ibus/
├── rc_msgs/

(back to top)

🚀 Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple steps.

Prerequisites

  • ROS (Noetic or later)
  • Gazebo
  • C++14 or higher
  • CMake
  • Git

Installation

  1. Clone the repo

    git clone https://github.com/gdut-robocon/rc_control.git
  2. Build with Catkin

    cd rc_control
    catkin_make
  3. Source the workspace

    source devel/setup.bash

Configuration

  • Modify hardware configuration in rc_hw/config/hw_config_template.yaml
  • Adjust IMU filter parameters in rc_common/include/rc_common/filters/
  • Update CAN bus settings in rc_hw/src/hardware_interface/can_bus.cpp

(back to top)

💻 Usage

To launch the hardware interface:

roslaunch rc_hw rc_hw.launch

To run the Gazebo simulation:

roslaunch rc_gazebo field_rc23.launch

To interface with RC input:

roslaunch rc_ibus rc_ibus.launch

For more detailed usage, refer to the documentation linked in the introduction.

(back to top)

🗺️ Roadmap

  • v1.0 - Initial release with core framework and hardware interface
  • v1.1 - Added Gazebo simulation plugins and IMU filtering
  • v1.2 - Introduced CAN bus support and GPIO control
  • v2.0 - Enhanced real-time capabilities and added advanced filtering techniques
  • v2.1 - Improved documentation and modular structure for easier integration

See the open issues for a full list of proposed features (and known issues).

(back to top)

🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Top contributors:

contrib.rocks image

🎗 License

Copyright © 2024-2025 rc_control.
Released under the MIT license.

(back to top)

📧 Contact

Email: jialonglongliu@gmail.com

Project Link: https://github.com/gdut-robocon/rc_control

(back to top)

REFERENCE LINKS

rm_control

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •