2020-03-24 updates
leo_firmware
added GPS module support
The feature has been tested on Waveshare UART GPS NEO-6M
module, but should work with any UART GPS module that supports NMEA protocol. The port on which the device is connected can be adjusted by setting GPS_HSENS variable in params.h
file and the feature can be toggled by publishing on core2/set_gps
topic. Upon receiving each GPGGA message, a new NavSatFix will be published on gps_fix
topic.
added ROS logging
The firmware now publishes log messages (on different verbosity levels) to the ROS network via rosserial. To enable debug level logging, send true
on core2/set_debug
topic.
added ROS parameters
All of the parameters regarding motors, servos and differential drive controller are now loaded at runtime from ROS Parameter Server. A complete list of the parameters and their description can be found on the ROS API
section of the README file.
added angular_velocity_multiplier
parameter
This parameter was added to account for a difference between a two-wheel robot model and the real robot (check the README for more info). The wheel odometry should now be closer to the real velocity.
added frame_id
parameters for IMU and GPS
The core2/imu_frame_id
and core2/gps_frame_id
parameters specify the tf frame ids associated with IMU and GPS modules.
leo_bringup
fixed leo_system shutdown command
Previously, the leo_system node performed a reboot on /system/shutdown
command. This has been fixed and now the RPi properly shuts down upon receiving the shutdown command.
added configuration files for camera and core2 firmware
The launch file now loads the parameters for the raspicam_node
and leo_firmware from the YAML files located in the config/
directory. The firmware parameters are required starting from the v1.0.0
version of leo_firmware
. For the camera node, the ISO, contrast and saturation parameters have been slightly adjusted to work better in darker environments.
added motors_model
argument to the launch file
The argument specifies the motor parameters to load for the leo_firmware
. The supported values are buehler
(default) and pololu
. The argument can be set either by passing the value to the launch file or by setting the LEO_MOTORS
environment variable.