[Documentation] [TitleIndex] [WordIndex

  Show EOL distros: 

rsv_balance_simulator: rsv_balance_gazebo

Package Summary

Gazebo's specific packages for RoboSavvy's balance platform.

rsv_balance_simulator: rsv_balance_gazebo

Package Summary

Gazebo's specific packages for RoboSavvy's balance platform.

Description

This package provides all the necessary URDF model extensions, worlds and launch files for successfully simulating RoboSavvy's self-balance platform.

On rsv_balance_gazebo package we have available 3 worlds:

  1. empty.world - Empty world with only the robot.

     roslaunch rsv_balance_gazebo simulation_empty.launch
  2. ramp.world - Robot on inclined, flat terrain.

     roslaunch rsv_balance_gazebo simulation_ramp.launch
  3. terrain.world - Robot on bumpy terrain.

     roslaunch rsv_balance_gazebo simulation_terrain.launch

As you can understand from the spawned robot, the demo model includes a dummy, spherical, 5kg load at about 1m height from the center of the platform.

simulation_tutorial1.png

It also provides RVIZ configured launchfile:

roslaunch rsv_balance_gazebo view.launch

Gazebo plugin node

The Gazebo model plugin was developed to expose the same ROS interface of topics and services as the real platform.

libgazebo_rsv_balance.so

Gazebo plugin for RoboSavvy's self-balance platform

Subscribed Topics

/cmd_vel (geometry_msgs/Twist) /tilt_equilibrium (std_msgs/Float64)

Published Topics

/odom (nav_msgs/Odometry) /state (rsv_balance_msgs/State) /joint_states (sensor_msgs/JointState) /tf (tf2_msgs/TFMessage)

Services Called

/set_mode (rsv_balance_msgs/SetMode) /set_input (rsv_balance_msgs/SetInput) /reset_odom (std_srvs/Empty) /reset_override (std_srvs/Empty)

Plugin parameters

Example configuration to include in your URDF model.

   1 <plugin name="rsv_balance_controller" filename="libgazebo_rsv_balance.so">
   2   <rosDebugLevel>Debug</rosDebugLevel>
   3   <!--<robotNamespace></robotNamespace>-->
   4   <commandTopic>cmd_vel</commandTopic>
   5   <baseFrameId>base_link</baseFrameId>
   6   <publishOdomTF>true</publishOdomTF>
   7   <odomFrameId>odom</odomFrameId>
   8   <odomSource>world</odomSource>
   9   <odomTopic>odom</odomTopic>
  10   <publishWheelJointState>true</publishWheelJointState>
  11   <!-- Platform specific configurations -->
  12   <startMode>balance</startMode>
  13   <publishState>true</publishState>
  14   <publishStateRate>1</publishStateRate>
  15   <publishDiagnosticsRate>1</publishDiagnosticsRate>
  16   <wheelSeparation>${base_width+2.*wheel_width/2.}</wheelSeparation>
  17   <wheelRadius>${wheel_radius}</wheelRadius>
  18   <leftJoint>base_to_left_wheel</leftJoint>
  19   <rightJoint>base_to_right_wheel</rightJoint>   
  20   <!-- Control specific configurations -->
  21   <updateRate>100</updateRate>
  22 </plugin>

Parameters

robotNamespace (str, default: "") commandTopic (str, default: "cmd_vel") publishOdomTF (bool, default: false) baseFrameId (str, default: "base_link") odomFrameId (str, default: "odom") odomSource (str, default: "world") odomTopic (str, default: "odom") publishWheelJointState (bool, default: false) startMode (str, default: "balance") publishState (bool, default: false) publishStateRate (int, default: 1) updateRate (int, default: 50)

2019-12-07 13:06