Giter Club home page Giter Club logo

nexus_4wd_mecanum_simulator's Introduction

Nexus 4WD Mecanum Simulator

ROS Repository for the robot description and gazebo simulation of the 4WD Mecanum wheel robot from Nexus Robot: https://www.nexusrobot.com/product/4wd-mecanum-wheel-mobile-arduino-robotics-car-10011.html

Disclaimer:

I'm not affiliated in any way with Nexus Robotics. I just use one of their robot and wanted to write a Gazebo simulation for it.

Usage

Run the simulation for one nexus robot by using the following command line:

roslaunch nexus_4wd_mecanum_gazebo nexus_4wd_mecanum_world.launch

To launch two nexus robots, use the following launch file:

roslaunch nexus_4wd_mecanum_gazebo nexus_4wd_mecanum_multi.launch

Dependencies

  • Gazebo7 or Gazebo9
  • robot_state_publisher
  • urdf
  • tf

Packages

  • nexus_4wd_mecanum_description
  • nexus_4wd_mecanum_gazebo

nexus_4wd_mecanum_description

Robot model description packages. Includes the URDF and the meshes of the robot.

Launch files

  • nexus_4wd_mecanum_description.launch: Loads the nexus 4WD mecanum robot description parameter and the robot state publisher.

  • nexus_4wd_mecanum_rviz.launch: Loads the nexus 4WD mecanum robot description parameter and a RViz session.

nexus_4wd_mecanum_gazebo

Includes Gazebo plugin for simulating a velocity controller and launch files for running the simulation.

Launch files

  • nexus_4wd_mecanum_world.launch: Launches Gazebo and spawn one nexus robot.

    • use_sim_time Tells ROS nodes asking for time to get the Gazebo-published simulation time, published over the ROS topic /clock. Default: true.

    • gui Launch the user interface window of Gazebo. Default: true.

    • headless Enable gazebo state log recording. Default: false.

  • nexus_4wd_mecanum_multi.launch: Launches Gazebo and spawn two nexus robots with their namespace. This launch file aims to provide an example for multi-robot simulation.

    • use_sim_time Tells ROS nodes asking for time to get the Gazebo-published simulation time, published over the ROS topic /clock. Default: true.

    • gui Launch the user interface window of Gazebo. Default: true.

    • headless Enable gazebo state log recording. Default: false.

  • spawn_one_nexus_4wd_mecanum.launch: To be included in a launch file to spawn a nexus robot.

    • robot_name Robot name used as namespace for the spawned robot. Default: nexus0.

    • pose_x x coordinate (in m) of the robot spawn pose. Default: 0.

    • pose_y y coordinate (in m) of the robot spawn pose. Default: 0.

Gazebo plugin

  • nexus_ros_force_based_move:

    Outputs a force and a torque on the base link of a robot, using a velocity command as input and a proportional controller. Includes check for both Gazebo7 and Gazebo9 compatibility.

    • Subscribed topic

      • /cmd_vel (geometry_msgs/Twist)

        Receives velocity command as a Twist message. The plugin will only process the linear velocity on the x and y-axis and the angular velocity on the z-axis

    • Published Topics

      • /odom (nav_msgs/Odometry)

        Odometry from Gazebo model pose and velocity.

      • /front_sensor (sensor_msgs/Range)

        Front ultrasonic range sensor distance

      • /left_sensor (sensor_msgs/Range)

        Left ultrasonic range sensor distance

      • /rear_sensor (sensor_msgs/Range)

        Rear ultrasonic range sensor distance

      • /right_sensor (sensor_msgs/Range)

        Right ultrasonic range sensor distance

To do

  • Add wheel velocity controller (only for visual feedback)

nexus_4wd_mecanum_simulator's People

Contributors

rbinsonb avatar

Stargazers

helloE 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.