GithubHelp home page GithubHelp logo

nat9dai / teeterbot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robustify/teeterbot

0.0 0.0 0.0 49 KB

Self-balancing robot simulation model for ROS / Gazebo

License: BSD 2-Clause "Simplified" License

C++ 91.88% Python 3.20% CMake 4.92%

teeterbot's Introduction

TeeterBot

TeeterBot is a self-balancing robot simulation model for ROS / Gazebo. The dimensions and mass of each component are easily configured using launch file arguments, so it is easy to adjust physical parameters to test robustness of control algorithms.

Launch Files

There are two launch files in the teeterbot_gazebo package.

teeterbot_robot.launch

This launch file spawns TeeterBot in Gazebo. The arguments of this launch file control the dimensions, mass, and behavior of the simulation:

  • Name and spawn pose: These arguments set the name and initial position and heading of Teeterbot in Gazebo world frame. The start_z parameter should be equal to the wheel radius, as the origin of TeeterBot's base frame is at the focal point of its rotation.
  • Physical properties: These arguments specify the dimensions and masses of the wheels and body of TeeterBot.
    • training_wheels: Set true to spawn two invisible, frictionless spheres that prevent the robot from tipping over.
  • Simulation behavior settings:
    • pub_gound_truth: set true to broadcast a TF transform from Gazebo world frame to TeeterBot's base_footprint frame.
    • auto_reset_orientation: set true, and the Gazebo plugin will detect when TeeterBot falls down and automatically reset it to vertical orientation.
    • auto_reset_delay: amount of time between detecting a fallen-over Teeterbot and when the automatic reset is performed.
  • Control mode: Switches the control interface to TeeterBot's motors. Set only one of these to true
    • voltage_mode: User directly controls the voltage applied to the motor
    • torque_mode: User issues a torque command to each motor, and the simulator internally regulates the motor current to achieve that torque.
    • speed_mode: User issues angular velocity commands to each motor and the simulator regulates the motor voltage inputs to achieve that command.

teeterbot_empty_world.launch

This launch file serves as an example of how to start Gazebo, include teeterbot_robot.launch, and set its arguments to configure the simulation.

Input Topics

To control TeeterBot, a separate std_msgs/Float64 topic is advertised for each wheel. The topics are advertised in the namespace of the particular robot name specified in the robot_name launch file argument. However, the names of these topics are different for each control mode:

  • Voltage mode: <robot name>/left_motor_voltage and <robot name>/right_motor_voltage
  • Torque mode: <robot name>/left_torque_cmd and <robot name>/right_torque_cmd
  • Speed mode: <robot name>/left_speed_cmd and <robot name>/right_speed_cmd

teeterbot's People

Contributors

robustify avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.