Skip to content

Latest commit

 

History

History
23 lines (20 loc) · 2.97 KB

README.md

File metadata and controls

23 lines (20 loc) · 2.97 KB

akros2_firmware

GitHub License X (formerly Twitter) Follow

Firmware and libraries for the akros2 robot, based on linorobot2_hardware repository and the MECANUM config. Using a Teensy 4.1 with an expansion board from Tindie. I'm using the same libraries as linorobot2, but have added/changed a few things to the firmware:

  • Option for native ethernet transport (UDP4).
  • Option to set ROS_DOMAIN_ID.
  • Neopixel status and mode indicator using FastLED.
  • Compiling/uploading using Arduino IDE and modified micro_ros_arduino libraries instead of PlatformIO.
  • Mode subscriber with custom akros2_msgs/Mode type.
  • Joint State publishers to publish the measured and required joint states (velocities and positions) as separate sensor_msgs/JointState messages.
  • Parameter server reads the following:
    • Gain values (kp, ki, kd, scale) which are set on the ROS2 host, used for PID tuning.
      • Parameters are initialized using values defined in the configuration. These values are also used during re-initialization (when agent is reconnected)
      • Config needs to be updated and then the firmware needs to be recompiled with the tuned PID gains.
      • scale value is limited to the range [0.0, 1.0] with a step size of 0.01.
    • Boolean value ned_to_enu which is used to convert IMU representation from NED (North-East-Down) to ENU (East-North-Up) convention according to REP-103, if needed. The parameter value is passed down to the IMU interface, which does the conversion. Defaults to false, as the sensor already provides measurements in ENU convention.
  • TODO - Refactoring: Calibration sketch updated and moved to a separate repo arduino_sketchbook_ros.
    • Reports max RPMs (revolutions per minute) using pre-defined CPRs (counts per revolution), instead of the other way around.
    • Also reports the calculated CPRs and its deviation from the pre-defined CPRs.

Generic linorobot2 installation and setup instructions can be found on the galactic branch.