No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSDv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-mobile-robots/diffbot.git
VCS Type git
VCS Version noetic-devel
Last Updated 2023-09-04
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The diffbot_base package

Additional Links

No additional links.

Maintainers

  • Franz Pucher

Authors

No additional authors.
CHANGELOG

Changelog for package diffbot_base

1.1.0 (2022-03-28)

  • fix: missing subscriber initialization (#54)
  • feat: warn if eStop() is called on mcu
  • Change base config: switch motor pins
  • feat: add callbacks for low level pids on mcu #54 For MCU firmware - Add subscribers for left and right motor pid controllers using diffbot_msgs::PIDStamped custom message

    • Update debug logging message (different formatting)

    - Update PID controller interface (provide proportional_, integral_ and derivative_ values)

  • fix: missing diffbot namespace in test

  • fix: test_encoders.cpp include name

  • feat: add documentation link for unity

  • Merge pull request #42 from joeuser846/motor-defines Use MOTOR_LEFT/RIGHT from diffbot_base_config.h instead of hardcoding pin numbers

  • Fix filenames

  • Use MOTOR_LEFT/RIGHT instead of hardcoding pin numbers

  • Contributors: Franz Pucher, Joe User

1.0.0 (2021-08-13)

  • clean CMakeLists.txt: remove dependency
  • add dependency diffbot_msgs_generate_messages_cpp to build diffbot_msgs before diffbot_base package
  • Refactor: Update interface - Exchange jointStates between high hw intf and low level base controller - Add measured_joint_state publisher in base controller to let high level hw intf subscribe to it

    • Remove encoder publisher (todo consider publishing at low rate)
    • Update docstrings of BaseController
    • Extend interface of diffbot::Encoder class to read jointStates
  • refactor: renamed methods due to interface change: jointStates

  • use new jointState intf between high and low level base

  • make use of diffbot namespace

  • Update base_controller documentation

    • Update BaseController class
    • Add E_STOP_COMMAND_RECEIVED_DURATION define in diffbot_base_config
  • update diffbot_base

    • add diffbot namespace to base_controller library classes
    • update docstrings
    • run rosdoc_lite
    • fix some rosdoc_lite warnings
  • add diffbot_base launch arg to choose robot model (for remo and diffbot)

  • add AngularVelocitiesStamped.h for rosserial

  • remove measured_vel_ publisher in rosserial

  • add low level pid

    • Add pid lib for arduino code
    • make use of pid in base_controller.h
    • update debug logging
    • use ros::time in encoder lib
  • set motor_constant=1 (gain trim model)

  • make use of new diffbot_msgs in hardware interface and base_controller

  • feat: add debug parameter to parameter server add option to enable/disable debug logging of the hw interface

  • refactor base_controller: use ros time instead of millis

  • refactor main.cpp: add base_controller class

    • add base_controller.h with BaseController template class
    • use class publisher and subscriber
    • use BaseController instead of global variables
    • read parameters from parameter server in BaseController
  • add encoder resolution to config header and getter/setter

  • add include guards to encoder.h

  • add base_controller rosserial code using rates

  • fix vector assignment of command velocity in hw intf

  • add tests for motor controllers

  • add compiled rosserial diffbot_msgs

  • add adafruit_feather_wing motor controller class header

  • moved adafruit_feather_wing.cpp to subfolder

  • add adafruit_feather_wing motor controller class

  • add author comment

  • add abstract MotorControllerInterface class

  • remove test_motors.cpp

  • update encoder lib for rosserial

    • add doc strings to encoder.h
    • add ticksToAngle method
    • add angularVelocity method
  • feature: update diffbot_hw_interface

    • add angular wheel joint velocity publisher
    • add new WheelCmd.msg in diffbot_msgs

    - load new hardware related parameters from diffbot_base/config/base.yaml - get hardware related parameters from parameter server in diffbot_hw_interface - add gain trim parameters to dynamic reconfigure cfg

  • refactor diffbot_msgs

    • rename Encoder.msg to Encoders.msg
    • update diffbot_pase includes and method signatures
    • update arduino script
    • change diffbot_msgs license to BSDv3
  • add base_controller mcu scripts including tests

  • Update package.xml change license and add rosserial to exec dependencies

  • Contributors: Franz Pucher

0.0.2 (2021-04-30)

  • fix #30: reset encoders after each new launch of hardware interface
  • call reset in encoders setup()
  • add method to check if encoder ticks are published
  • update logging in encoders.ino
  • initialize encoder_ticks_ in hw interface initialize values in encoder_ticks_ member array of hardware interface to zero because receiving meaningful tick values from the microcontroller might take some time. Alleviates problems in #30
  • fix zero time period at control loop start (#30)
  • Contributors: Franz Pucher

0.0.1 (2020-12-22)

  • update diffbot_base to use Encoder msg
  • set control loop rate to 10 Hz
  • add diffbot_msgs as dependency to diffbot_base
  • use queue_size of 10
  • update info output in write() method
  • update initial fpid parameters and adjust their range
  • update info messages with individual pid errors
  • update diffbot_base/launch file to use new diffbot.urdf.xacro
  • add dynamic reconfigure to pid class for f,p,i,d,i_max/min and antiwindup
  • add pid i_max/min and antiwindup to Parameters.cfg
  • add boost to CMakeLists.txt
  • update CMakeLists.txt using dynamic reconfigure
  • add dynamic_reconfigure to package.xml
  • add Parameters.cfg for feed forward gain
  • reset pid error and cmd values in case setpoint and p_error is zero: avoids non-vanishing i_error
  • tune pid and feed forward gains
  • fix major bug: prev_time not updated
  • refactor pid to enable dynamic reconfigure for both motors
  • add debug output logging messages to pid class and enable dynamic reconfigure - needs param for more than one pid
  • let PID inherit from control_toolbox::Pid
  • add pid controller for motors from ros control toolbox
  • add pid.cpp in cmake
  • Update version, mail and license
  • fix compile error and runtime errors due to dynamic reconfigure using initPid instead of setGains and tune PID values (P=10.0)
  • Update README.md and add comments to code
  • move packages from ros/src to repository toplevel folder
  • Contributors: Franz Pucher

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/diffbot.launch
    • https://github.com/ros-controls/ros_controllers/tree/kinetic-devel/diff_drive_controller/test
      • model [default: diffbot] — model type [diffbot, remo]
      • description_package [default: $(eval find(arg('model') + '_description'))]
      • urdf_file [default: $(find xacro)/xacro '$(arg description_package)/urdf/$(arg model).urdf.xacro']
  • launch/controllers.launch

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged diffbot_base at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.