Bring back the gazebo plugins (#1063)

The models and meshes are not included. We will need
to find an alternate way to reintegrate these and use them.

* Add simulation/gz_msgs back, and build with Gradle.

* Add back in the frc simulation plugins for gazebo.

* Add a new shared library, halsim_gazebo.

This library will become the interface between the
HAL sim layer and gazebo.

* Preserve the first channel number used in created Encoders in the Sim MockData.

This allows us to use the DIO channel number to connect with simulated encoders.

* Have the HAL Simulator set the reverse direction on creation.

This enables a simulator to be aware of the direction.

* Add a drive_motor plugin.

This is a bit of a 'magic' motor, which allows us to build robot
models that drive in a more realistic fashion.  It does this
by apply forces directly to the chassis, rather than relying on
the complex motion dynamics of a driven wheel.

This in turn allows the model to reduce wheel friction,
reducing scrub, and allowing for a more natural driving experience.
This commit is contained in:
Jeremy White
2018-06-30 02:45:21 -05:00
committed by Peter Johnson
parent 70960b0251
commit ebd41fe0bb
60 changed files with 5278 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
/* This was originally auto generated by cmake.
However, it changes infrequently enough that it makes
sense to simply revise it by hand any time we change
the protobuf messages expressed in the .proto files */
#ifndef _FRC_MSGS_H_
#define _FRC_MSGS_H_
#ifdef _WIN32
//include this before anything else includes windows.h
//putting this here saves putting it in more files
#include <Winsock2.h>
#endif
#include "simulation/gz_msgs/bool.pb.h"
#include "simulation/gz_msgs/driver-station.pb.h"
#include "simulation/gz_msgs/float64.pb.h"
#include "simulation/gz_msgs/frc_joystick.pb.h"
#include <gazebo/msgs/msgs.hh>
#include <boost/shared_ptr.hpp>
namespace gazebo {
namespace msgs {
typedef GzString String;
typedef boost::shared_ptr< gazebo::msgs::String > StringPtr;
typedef const boost::shared_ptr< const gazebo::msgs::String > ConstStringPtr;
typedef boost::shared_ptr< msgs::Float64 > Float64Ptr;
typedef const boost::shared_ptr< const msgs::Float64 > ConstFloat64Ptr;
typedef boost::shared_ptr< msgs::Bool > BoolPtr;
typedef const boost::shared_ptr< const msgs::Bool > ConstBoolPtr;
typedef boost::shared_ptr< msgs::FRCJoystick > FRCJoystickPtr;
typedef const boost::shared_ptr< const msgs::FRCJoystick > ConstFRCJoystickPtr;
typedef boost::shared_ptr< msgs::DriverStation > DriverStationPtr;
typedef const boost::shared_ptr< const msgs::DriverStation > ConstDriverStationPtr;
}
}
#endif /* _FRC_MSGS_H_ */

View File

@@ -0,0 +1,15 @@
package gazebo.msgs;
/// \ingroup gazebo_msgs
/// \interface Bool
/// \brief A message for boolean data
/// \verbatim
option java_outer_classname = "GzBool";
message Bool
{
required bool data = 1;
}
/// \endverbatim

View File

@@ -0,0 +1,21 @@
package gazebo.msgs;
/// \ingroup gazebo_msgs
/// \interface DriverStation
/// \brief A message for DriverStation data
/// \verbatim
option java_outer_classname = "GzDriverStation";
message DriverStation
{
required bool enabled = 1;
enum State {
AUTO = 0;
TELEOP = 1;
TEST = 2;
}
required State state = 2;
}
/// \endverbatim

View File

@@ -0,0 +1,15 @@
package gazebo.msgs;
/// \ingroup gazebo_msgs
/// \interface Float64
/// \brief A message for floating point data
/// \verbatim
option java_outer_classname = "GzFloat64";
message Float64
{
required double data = 1;
}
/// \endverbatim

View File

@@ -0,0 +1,16 @@
package gazebo.msgs;
/// \ingroup gazebo_msgs
/// \interface Joystick
/// \brief A message for joystick data
/// \verbatim
option java_outer_classname = "GzFRCJoystick";
message FRCJoystick
{
repeated double axes = 1;
repeated bool buttons = 2;
}
/// \endverbatim