Skip to content

ROS Repository for the robot description and gazebo simulation of the Nexus 4WD Mecanum wheel robot

License

Notifications You must be signed in to change notification settings

Big-Brain-Crew/nexus_4wd_mecanum_simulator

 
 

Repository files navigation

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)

About

ROS Repository for the robot description and gazebo simulation of the Nexus 4WD Mecanum wheel robot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 88.8%
  • CMake 11.2%