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.
- 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.
- TODO: Parameter server reads gain values (
kp
,ki
,kd
,scale
) set on the ROS2 host, and reacts to these values when they change. 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.
- TODO: Fuse encoder and IMU measurements.
Generic linorobot2 installation and setup instructions can be found on the galactic branch.